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.2 KiB
2.2 KiB
Room settings — handoff
Summary
Per-room settings overlay: general info, permissions, members (via common-settings), sub-rooms (Paarrot), and developer tools. Opened from room header/menu without leaving the room.
User-facing behavior
- Edit room name, topic, avatar, address, join rules, encryption
- Permissions and power levels
- Sub-rooms management (Paarrot)
- Member list and moderation actions
Architecture
RoomSettingsRenderer (Router overlay)
→ RoomSettings.tsx — page nav
→ room-settings/general/, permissions/, sub-rooms/
→ delegates to common-settings/ for shared pages
roomSettings.ts atom — which page open
Key files
| Path | Role |
|---|---|
cinny/src/app/features/room-settings/RoomSettings.tsx |
Settings shell |
cinny/src/app/features/room-settings/general/ |
General tab |
cinny/src/app/features/room-settings/permissions/ |
Permissions |
cinny/src/app/features/room-settings/sub-rooms/SubRooms.tsx |
Sub-rooms (Paarrot) |
cinny/src/app/state/roomSettings.ts |
Modal/page state |
cinny/src/app/state/hooks/roomSettings.ts |
Open/close hooks |
cinny/src/app/features/common-settings/ |
Shared setting pages |
Data model
Standard Matrix room state events (m.room.name, m.room.power_levels, etc.) plus im.paarrot.sub_rooms.
Dependencies
useRoomPermissions,usePowerLevels- common-settings components
Integration points
- sub-rooms: Paarrot-specific tab
- common-settings: members, emojis, developer tools reuse
- embed-filters:
EmbedFilters.tsxin common-settings general
Testing
Manual
- Open room settings from ⋮ menu.
- Change topic; verify state event.
- Sub-rooms tab: reorder children.
- Permissions: change power level.
Automated
- None
Known issues & gotchas
- Overlay vs full page on mobile — check ScreenSize branches
RoomSettingsRenderermust stay mounted in Router for deep links
Future work
- Room settings deep link URL
Related docs
Add your extra things here
SubRoomsPageenum inroomSettings.ts