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.8 KiB
2.8 KiB
User settings — handoff
Summary
Global user settings modal: general preferences, account profile, notifications, audio devices, sessions/devices, emojis, plugins, developer tools, and about. Accessed from sidebar Settings tab.
User-facing behavior
- General: theme, language, page zoom, emoji style, message spacing
- Account: display name, avatar (with Paarrot metadata), matrix id
- Notifications: push rules, keywords, system permission
- Audio: input/output device selection for calls
- Devices: verify sessions, key backup, cross-signing
- Plugins: see plugins handoff
- About: version info
Architecture
Settings.tsx — tabbed modal
→ general/, account/, notifications/, audio/, devices/, emojis-stickers/, plugins/, developer-tools/, about/
SettingsPages enum
Key files
| Path | Role |
|---|---|
cinny/src/app/features/settings/Settings.tsx |
Settings modal shell |
cinny/src/app/features/settings/general/General.tsx |
General prefs |
cinny/src/app/features/settings/account/Profile.tsx |
Profile + avatar metadata |
cinny/src/app/features/settings/notifications/ |
Notification rules |
cinny/src/app/features/settings/audio/Audio.tsx |
Call audio devices |
cinny/src/app/features/settings/devices/ |
Sessions & verification |
cinny/src/app/features/settings/about/About.tsx |
About page |
cinny/src/app/state/settings.ts |
Settings atom |
cinny/src/app/pages/client/sidebar/SettingsTab.tsx |
Entry point |
Data model
| Key | Storage |
|---|---|
settingsAtom |
localStorage (theme, zoom, emoji style, etc.) |
| Profile | Matrix account data + avatar MXC |
| Push rules | Homeserver account data |
Dependencies
foldsmodal/page components- Notification API, MediaDevices API
Integration points
- avatar-metadata: profile color in avatar upload
- emoji-stickers: emojis tab
- plugins: plugins tab
- e2e-and-devices: devices tab overlaps
- background-notifications: notification settings
- voice-calls: audio device prefs
Testing
Manual
- Change theme; persists reload.
- Page zoom 125%; UI scales.
- Notification keyword add; trigger match.
- Audio device switch during call.
Automated
- None
Known issues & gotchas
- Settings modal vs mobile full-page —
useScreenSizeContext - Logout dialog from settings clears session
Future work
- Settings search
- Export/import settings JSON
Related docs
- avatar-metadata HANDOFF
- emoji-stickers HANDOFF
- plugins HANDOFF
- e2e-and-devices HANDOFF
- themes-and-appearance HANDOFF
Add your extra things here
SettingsPagesenum lists all tabs — add new pages here + menu item