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.
1.9 KiB
1.9 KiB
Join before navigate — handoff
Summary
When a user opens a room link for a room they have not joined, this preview page shows room info (name, topic, member count) and offers join before entering the timeline.
User-facing behavior
- matrix.to / internal join links land here if not member
- Room card preview with topic
- Join button → membership then navigate to room/space
- Back navigation on mobile
Architecture
JoinBeforeNavigate.tsx
→ RoomSummaryLoader for preview data
→ useRoomNavigate after join
Route: _JOIN_PATH in Router.tsx
Key files
| Path | Role |
|---|---|
cinny/src/app/features/join-before-navigate/JoinBeforeNavigate.tsx |
Preview + join UI |
cinny/src/app/components/RoomSummaryLoader.tsx |
Fetch room preview |
cinny/src/app/hooks/useRoomNavigate.ts |
Post-join navigation |
cinny/src/app/state/joiningProgress.ts |
Join in progress UX |
Data model
Preview from /summary API or peek room state. No local persistence.
Dependencies
- matrix-js-sdk
joinRoom viaservers param for federated joins
Integration points
- routing-and-navigation: join route with
roomIdOrAlias,viaServers - explore: similar preview patterns
- electron-shell:
paarrot://deep links may target join flow
Testing
Manual
- Open link to unjoined public room.
- Preview shows name/topic.
- Join succeeds; lands in timeline.
- Space link navigates to space not room.
Automated
- None
Known issues & gotchas
- Private rooms without peek show limited preview
viaServersrequired for some federated aliasesisSpacecheck routes to space navigation after join
Future work
- Knock rooms support
- Invite-only room messaging
Related docs
Add your extra things here
- Props:
roomIdOrAlias, optionaleventId,viaServers[]