# Common settings — handoff ## Summary Shared setting pages used by both room and space settings overlays: general (profile, join rules, encryption, embed filters), members, permissions editors, emojis/stickers, and developer tools (raw state events). ## User-facing behavior - Same UI whether editing a room or space context - Members list with kick/ban/invite - Power level editor - Room emoji packs - Developer tools: send custom state events ## Architecture ``` common-settings/ general/ — RoomProfile, RoomJoinRules, RoomEncryption, EmbedFilters members/ — Members.tsx permissions/ — PowersEditor, PermissionGroups emojis-stickers/ developer-tools/ — StateEventEditor, SendRoomEvent Imported by room-settings and space-settings shells ``` ## Key files | Path | Role | |------|------| | `cinny/src/app/features/common-settings/general/RoomProfile.tsx` | Name/topic/avatar | | `cinny/src/app/features/common-settings/general/RoomJoinRules.tsx` | Join rules | | `cinny/src/app/features/common-settings/general/RoomEncryption.tsx` | E2E toggle | | `cinny/src/app/features/common-settings/general/EmbedFilters.tsx` | Room-wide embed filters | | `cinny/src/app/features/common-settings/members/Members.tsx` | Member management | | `cinny/src/app/features/common-settings/permissions/PowersEditor.tsx` | Power levels | | `cinny/src/app/features/common-settings/developer-tools/` | Dev event tools | ## Data model Standard Matrix room/space state events. Embed filters: `im.paarrot.room.embed_filters`. ## Dependencies - Permission hooks, member list hooks ## Integration points - **room-settings** / **space-settings**: parent shells - **embed-filters**: room-wide pattern UI - **emoji-stickers**: room pack management ## Testing ### Manual 1. Open members from room settings; invite user. 2. Set embed filter pattern as admin. 3. Developer tools: send test state event (staging only). ### Automated - None ## Known issues & gotchas - `DevelopTools` naming typo inherited from upstream - Encryption enable is irreversible — UI must warn ## Future work - Extract embed filters to own settings section ## Related docs - [room-settings HANDOFF](../room-settings/HANDOFF.md) - [space-settings HANDOFF](../space-settings/HANDOFF.md) - [embed-filters HANDOFF](../embed-filters/HANDOFF.md) ## Add your extra things here - `PermissionGroups.tsx` — grouped permission UI