feat: upgrade toolchain and soften sync recovery after network blips
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.
This commit is contained in:
82
docs/handoff/features/room-nav/HANDOFF.md
Normal file
82
docs/handoff/features/room-nav/HANDOFF.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# Room nav — handoff
|
||||
|
||||
## Summary
|
||||
|
||||
Room nav components render individual channel rows in sidebars and space channel lists: room items, category buttons, call participant indicators, sub-room actions, and unjoined sub-room join prompts.
|
||||
|
||||
## User-facing behavior
|
||||
|
||||
- Room row: name, avatar, unread badge, active highlight
|
||||
- Context menu: add sub-room, room actions
|
||||
- Call participants indicator when call active in room
|
||||
- Unjoined sub-room row with join button
|
||||
- Category headers with collapse
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
features/room-nav/
|
||||
RoomNavItem → per-room row + menus
|
||||
RoomNavCategoryButton → section headers
|
||||
UnjoinedSubRoomItem → join flow
|
||||
CallParticipantsIndicator → active call badge
|
||||
Used by Home.tsx, space sidebars, forum sidebars
|
||||
```
|
||||
|
||||
## Key files
|
||||
|
||||
| Path | Role |
|
||||
|------|------|
|
||||
| `cinny/src/app/features/room-nav/RoomNavItem.tsx` | Main room row |
|
||||
| `cinny/src/app/features/room-nav/RoomNavCategoryButton.tsx` | Category header |
|
||||
| `cinny/src/app/features/room-nav/UnjoinedSubRoomItem.tsx` | Unjoined sub-room |
|
||||
| `cinny/src/app/features/room-nav/CallParticipantsIndicator.tsx` | In-call indicator |
|
||||
| `cinny/src/app/features/room-nav/styles.css.ts` | Nav styles |
|
||||
|
||||
## Data model
|
||||
|
||||
Uses room state, unread atoms, `im.paarrot.sub_rooms` permissions — no own persistence.
|
||||
|
||||
## Dependencies
|
||||
|
||||
- `usePermission` for sub-room create
|
||||
- `useOpenCreateSubRoomModal` from state hooks
|
||||
|
||||
## Integration points
|
||||
|
||||
- **sub-rooms**: Add Sub-Room menu action
|
||||
- **voice-calls**: participant indicator
|
||||
- **create-flows**: opens create room modal with parent id
|
||||
- **home-and-sidebar**: primary consumer
|
||||
|
||||
## Testing
|
||||
|
||||
### Manual
|
||||
|
||||
1. Right-click/context menu on room row.
|
||||
2. Add sub-room when permitted / disabled when not.
|
||||
3. Active call shows participant indicator.
|
||||
4. Unjoined sub-room join navigates correctly.
|
||||
|
||||
### Automated
|
||||
|
||||
- None
|
||||
|
||||
## Known issues & gotchas
|
||||
|
||||
- Depth indentation for sub-rooms passed as prop — styling in CSS
|
||||
- `canAddSubRoom` checks `StateEvent.PaarrotSubRooms` power level
|
||||
|
||||
## Future work
|
||||
|
||||
- Consolidate with forum sidebar items if duplicated
|
||||
|
||||
## Related docs
|
||||
|
||||
- [sub-rooms HANDOFF](../sub-rooms/HANDOFF.md)
|
||||
- [home-and-sidebar HANDOFF](../home-and-sidebar/HANDOFF.md)
|
||||
- [voice-calls HANDOFF](../voice-calls/HANDOFF.md)
|
||||
|
||||
## Add your extra things here
|
||||
|
||||
- Export barrel: `features/room-nav/index.ts`
|
||||
Reference in New Issue
Block a user