Bump Vite 8, matrix-js-sdk, and related deps; fix immer/vanilla-extract imports for new majors. Replace blocking sync error dialog with background recovery on wake/offline, and disable Vite auto-open in dev. Add feature handoff documentation index.
2.4 KiB
2.4 KiB
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
- Open members from room settings; invite user.
- Set embed filter pattern as admin.
- Developer tools: send test state event (staging only).
Automated
- None
Known issues & gotchas
DevelopToolsnaming typo inherited from upstream- Encryption enable is irreversible — UI must warn
Future work
- Extract embed filters to own settings section
Related docs
Add your extra things here
PermissionGroups.tsx— grouped permission UI