mirror of
https://github.com/tooot-app/app
synced 2025-06-05 22:19:13 +02:00
Add admin notifications besides push #535
This commit is contained in:
@ -136,6 +136,11 @@ const instancesMigration = {
|
||||
return {
|
||||
...instance,
|
||||
mePage: { ...instance.mePage, followedTags: { shown: false } },
|
||||
notifications_filter: {
|
||||
...instance.notifications_filter,
|
||||
'admin.sign_up': true,
|
||||
'admin.report': true
|
||||
},
|
||||
push: {
|
||||
...instance.push,
|
||||
global: instance.push.global.value,
|
||||
|
@ -29,6 +29,8 @@ export type InstanceV11 = {
|
||||
poll: boolean
|
||||
status: boolean
|
||||
update: boolean
|
||||
'admin.sign_up': boolean
|
||||
'admin.report': boolean
|
||||
}
|
||||
push: {
|
||||
global: boolean
|
||||
|
@ -136,7 +136,10 @@ export type TabPublicStackParamList = {
|
||||
|
||||
export type TabNotificationsStackParamList = {
|
||||
'Tab-Notifications-Root': undefined
|
||||
'Tab-Notifications-Filters': undefined
|
||||
} & TabSharedStackParamList
|
||||
export type TabNotificationsStackScreenProps<T extends keyof TabNotificationsStackParamList> =
|
||||
NativeStackScreenProps<TabNotificationsStackParamList, T>
|
||||
|
||||
export type TabMeStackParamList = {
|
||||
'Tab-Me-Root': undefined
|
||||
|
@ -87,7 +87,9 @@ const addInstance = createAsyncThunk(
|
||||
mention: true,
|
||||
poll: true,
|
||||
status: true,
|
||||
update: true
|
||||
update: true,
|
||||
'admin.sign_up': true,
|
||||
'admin.report': true
|
||||
},
|
||||
push: {
|
||||
global: false,
|
||||
|
@ -1,4 +1,8 @@
|
||||
import { PERMISSION_MANAGE_REPORTS, PERMISSION_MANAGE_USERS } from '@helpers/permissions'
|
||||
import {
|
||||
checkPermission,
|
||||
PERMISSION_MANAGE_REPORTS,
|
||||
PERMISSION_MANAGE_USERS
|
||||
} from '@helpers/permissions'
|
||||
import queryClient from '@helpers/queryClient'
|
||||
import i18n from '@root/i18n/i18n'
|
||||
import { InstanceLatest } from '@utils/migrations/instances/migration'
|
||||
@ -20,16 +24,6 @@ export const PUSH_ADMIN: { type: 'admin.sign_up' | 'admin.report'; permission: n
|
||||
{ type: 'admin.report', permission: PERMISSION_MANAGE_REPORTS }
|
||||
]
|
||||
|
||||
export const checkPushAdminPermission = (
|
||||
permission: number,
|
||||
permissions?: string | number
|
||||
): boolean =>
|
||||
permissions
|
||||
? !!(
|
||||
(typeof permissions === 'string' ? parseInt(permissions || '0') : permissions) & permission
|
||||
)
|
||||
: false
|
||||
|
||||
export const setChannels = async (instance: InstanceLatest) => {
|
||||
const account = `@${instance.account.acct}@${instance.uri}`
|
||||
|
||||
@ -68,7 +62,7 @@ export const setChannels = async (instance: InstanceLatest) => {
|
||||
await setChannel(push)
|
||||
}
|
||||
for (const { type, permission } of PUSH_ADMIN) {
|
||||
if (checkPushAdminPermission(permission, profileQuery.role?.permissions)) {
|
||||
if (checkPermission(permission, profileQuery.role?.permissions)) {
|
||||
await setChannel(type)
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,6 @@ export const updateInstancePushAlert = createAsyncThunk(
|
||||
async ({
|
||||
alerts
|
||||
}: {
|
||||
changed: keyof InstanceLatest['push']['alerts']
|
||||
alerts: InstanceLatest['push']['alerts']
|
||||
}): Promise<InstanceLatest['push']['alerts']> => {
|
||||
const formData = new FormData()
|
||||
|
Reference in New Issue
Block a user