1
0
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:
xmflsct
2022-12-10 22:43:37 +01:00
parent bdbacf579e
commit 213328ef1a
17 changed files with 244 additions and 234 deletions

View File

@ -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,

View File

@ -29,6 +29,8 @@ export type InstanceV11 = {
poll: boolean
status: boolean
update: boolean
'admin.sign_up': boolean
'admin.report': boolean
}
push: {
global: boolean

View File

@ -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

View File

@ -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,

View File

@ -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)
}
}

View File

@ -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()