import { useMemo } from 'react'; import { StateEvent } from '../../../../types/matrix/room'; import { PermissionGroup } from '../../common-settings/permissions'; export const usePermissionGroups = (): PermissionGroup[] => { const groups: PermissionGroup[] = useMemo(() => { const messagesGroup: PermissionGroup = { name: 'Manage', items: [ { location: { state: true, key: StateEvent.SpaceChild, }, name: 'Manage space rooms', }, { location: {}, name: 'Message Events', }, ], }; const moderationGroup: PermissionGroup = { name: 'Moderation', items: [ { location: { action: true, key: 'invite', }, name: 'Invite', }, { location: { action: true, key: 'kick', }, name: 'Kick', }, { location: { action: true, key: 'ban', }, name: 'Ban', }, ], }; const roomOverviewGroup: PermissionGroup = { name: 'Space Overview', items: [ { location: { state: true, key: StateEvent.RoomAvatar, }, name: 'Space Avatar', }, { location: { state: true, key: StateEvent.RoomName, }, name: 'Space Name', }, { location: { state: true, key: StateEvent.RoomTopic, }, name: 'Space Topic', }, ], }; const roomSettingsGroup: PermissionGroup = { name: 'Settings', items: [ { location: { state: true, key: StateEvent.RoomJoinRules, }, name: 'Change Space Access', }, { location: { state: true, key: StateEvent.RoomCanonicalAlias, }, name: 'Publish Address', }, { location: { state: true, key: StateEvent.RoomPowerLevels, }, name: 'Change All Permission', }, { location: { state: true, key: StateEvent.PowerLevelTags, }, name: 'Edit Power Levels', }, { location: { state: true, key: StateEvent.RoomTombstone, }, name: 'Upgrade Space', }, { location: { state: true, }, name: 'Other Settings', }, ], }; const otherSettingsGroup: PermissionGroup = { name: 'Other', items: [ { location: { state: true, key: StateEvent.RoomServerAcl, }, name: 'Change Server ACLs', }, ], }; return [ messagesGroup, moderationGroup, roomOverviewGroup, roomSettingsGroup, otherSettingsGroup, ]; }, []); return groups; };