diff --git a/src/app/features/common-settings/permissions/PermissionGroups.tsx b/src/app/features/common-settings/permissions/PermissionGroups.tsx index bddd8847..847495fe 100644 --- a/src/app/features/common-settings/permissions/PermissionGroups.tsx +++ b/src/app/features/common-settings/permissions/PermissionGroups.tsx @@ -83,9 +83,6 @@ export function PermissionGroups({ powerLevels, permissionGroups }: PermissionGr applyPermissionPower(draftPowerLevels, location, power) ); - // eslint-disable-next-line no-param-reassign - delete draftPowerLevels['in.cinny.creators']; - return draftPowerLevels; }); await mx.sendStateEvent(room.roomId, StateEvent.RoomPowerLevels as any, editedPowerLevels); diff --git a/src/app/hooks/usePowerLevelTags.ts b/src/app/hooks/usePowerLevelTags.ts index 03ab3706..b7bdd666 100644 --- a/src/app/hooks/usePowerLevelTags.ts +++ b/src/app/hooks/usePowerLevelTags.ts @@ -23,20 +23,21 @@ const powerSortFn = (a: number, b: number) => b - a; const sortPowers = (powers: number[]): number[] => powers.sort(powerSortFn); export const getPowers = (tags: PowerLevelTags): number[] => { - const powers: number[] = Object.keys(tags).map((p) => { - const power = parseInt(p, 10); - if (Number.isNaN(power)) { - return Infinity; - } - return power; - }); + const powers: number[] = Object.keys(tags) + .map((p) => { + const power = parseInt(p, 10); + if (Number.isNaN(power)) { + return undefined; + } + return power; + }) + .filter((power) => typeof power === 'number'); return sortPowers(powers); }; export const getUsedPowers = (powerLevels: IPowerLevels): Set => { const powers: Set = new Set(); - powers.add(Infinity); const findAndAddPower = (data: Record) => { Object.keys(data).forEach((key) => { @@ -58,16 +59,12 @@ export const getUsedPowers = (powerLevels: IPowerLevels): Set => { }; const DEFAULT_TAGS: PowerLevelTags = { - Infinity: { - name: 'Creator', - color: '#ff6a00', - }, 9001: { name: 'Goku', color: '#ff6a00', }, 150: { - name: 'Super Admin', + name: 'Founder', color: '#ff6a7f', }, 101: { diff --git a/src/app/hooks/usePowerLevels.ts b/src/app/hooks/usePowerLevels.ts index c16608bb..e999afe8 100644 --- a/src/app/hooks/usePowerLevels.ts +++ b/src/app/hooks/usePowerLevels.ts @@ -5,7 +5,7 @@ import { useStateEvent } from './useStateEvent'; import { StateEvent } from '../../types/matrix/room'; import { useStateEventCallback } from './useStateEventCallback'; import { useMatrixClient } from './useMatrixClient'; -import { getRoomCreators, getStateEvent } from '../utils/room'; +import { getStateEvent } from '../utils/room'; export type PowerLevelActions = 'invite' | 'redact' | 'kick' | 'ban' | 'historical'; export type PowerLevelNotificationsAction = 'room'; @@ -23,7 +23,6 @@ export type IPowerLevels = { events?: Record; users?: Record; notifications?: Record; - 'in.cinny.creators'?: string[]; }; const DEFAULT_POWER_LEVELS: Required = { @@ -40,7 +39,6 @@ const DEFAULT_POWER_LEVELS: Required = { notifications: { room: 50, }, - 'in.cinny.creators': [], }; const fillMissingPowers = (powerLevels: IPowerLevels): IPowerLevels => @@ -59,27 +57,20 @@ const fillMissingPowers = (powerLevels: IPowerLevels): IPowerLevels => return draftPl; }); -const getPowersLevelFromMatrixEvent = (mEvent?: MatrixEvent, creators?: string[]): IPowerLevels => { +const getPowersLevelFromMatrixEvent = (mEvent?: MatrixEvent): IPowerLevels => { const plContent = mEvent?.getContent(); const powerLevels = !plContent ? DEFAULT_POWER_LEVELS : fillMissingPowers(plContent); - return produce(powerLevels, (draftPl) => { - // eslint-disable-next-line no-param-reassign - draftPl['in.cinny.creators'] = creators; - return draftPl; - }); + return powerLevels; }; export function usePowerLevels(room: Room): IPowerLevels { const powerLevelsEvent = useStateEvent(room, StateEvent.RoomPowerLevels); - const powerLevels: IPowerLevels = useMemo(() => { - const createEvent = getStateEvent(room, StateEvent.RoomCreate); - return getPowersLevelFromMatrixEvent( - powerLevelsEvent, - createEvent ? getRoomCreators(createEvent) : undefined - ); - }, [room, powerLevelsEvent]); + const powerLevels: IPowerLevels = useMemo( + () => getPowersLevelFromMatrixEvent(powerLevelsEvent), + [powerLevelsEvent] + ); return powerLevels; } @@ -101,14 +92,7 @@ export const useRoomsPowerLevels = (rooms: Room[]): Map => rooms.forEach((room) => { const mEvent = getStateEvent(room, StateEvent.RoomPowerLevels, ''); - const createEvent = getStateEvent(room, StateEvent.RoomCreate); - rToPl.set( - room.roomId, - getPowersLevelFromMatrixEvent( - mEvent, - createEvent ? getRoomCreators(createEvent) : undefined - ) - ); + rToPl.set(room.roomId, getPowersLevelFromMatrixEvent(mEvent)); }); return rToPl; @@ -172,11 +156,7 @@ export type ReadPowerLevelAPI = { export const readPowerLevel: ReadPowerLevelAPI = { user: (powerLevels, userId) => { - const { users_default: usersDefault, users, 'in.cinny.creators': creators } = powerLevels; - - if (userId && Array.isArray(creators) && creators.includes(userId)) { - return Infinity; - } + const { users_default: usersDefault, users } = powerLevels; if (userId && users && typeof users[userId] === 'number') { return users[userId];