Skip to content

Feature: Space home / sitemap view (space selected, no room) #124

@mjkatgithub

Description

@mjkatgithub

Goal

Introduce a Space home view (sitemap / room overview) for the state: user is in a Matrix Space but no channel/room is selected — similar to Element’s “Willkommen bei {space}” screen.

This is a general navigation surface, not a leave-room feature. Leaving a space channel may use this view later, but the primary entry is selecting a space without picking a room.

User stories

  • Click a space icon in the left space rail → main pane shows that space’s overview (not the global Home onboarding, not a stale channel from another context).
  • From the overview, open a channel, invite, or space settings.
  • Home rail entry (HOME_SPACE_ID) keeps today’s Home onboarding when no room is selected.

Context

  • Today selectSpace() in useChatPageShell only sets selectedSpaceId; it does not clear selectedRoomId, so the main pane can still show a room timeline while the sidebar lists another space’s channels.
  • When selectedRoomId === null, chat.vue always shows ChatOnboardingPanel — there is no space-specific empty state.
  • Element reference: space welcome header, joined rooms list, invite/settings actions (see design discussion in Feature: Space home / sitemap view (space selected, no room) #124 comments / screenshots).
  • Related: #94 leave-room currently redirects all leaves to Home onboarding; once this issue ships, leaving a channel inside a space should land here (space still selected, room cleared) instead of Home.

Scope

  • New main-pane view when selectedSpaceId !== HOME_SPACE_ID and selectedRoomId === null
  • Space header: name, avatar, privacy/member summary (minimal v1)
  • Joined channels (and optionally subspaces) listed for the active space; click → selectRoom
  • Wire space rail selectSpace: set space, clear room selection, show space home (respect suppressAutoRoomSelect only where leave-flow needs it)
  • i18n EN + DE

Out of scope (v1):

  • Bulk remove / “mark as not suggested” (Element extras)
  • Leaving the space itself
  • Replacing the left channel sidebar (overview is main pane, sidebar stays)

Branch

feature/space-home-view

Acceptance Criteria

  • Clicking a space in the left rail selects that space and shows space home in the main pane (no channel timeline)
  • Clicking Home in the rail with no room shows existing Home onboarding (unchanged)
  • Space home lists joined rooms/channels for the selected space; selecting one opens the channel
  • Space home exposes entry points aligned with existing flows (e.g. invite, space settings) where permissions allow
  • No stuck or cross-space timeline (room from space A must not display when space B is selected)

Test Checklist

Unit

  • Space-home component renders rooms from hierarchy helpers for a given selectedSpaceId
  • selectSpace clears selectedRoomId (or equivalent shell helper)

Manual

  • Rail: Space A → overview; pick channel → timeline; rail Space B → overview for B
  • Rail: Home → Home onboarding when no room selected
  • Leave channel inside a space (after Feature: Leave Matrix rooms from chat UI #94 polish): lands on space home, not Home onboarding

E2E (optional)

  • Select space from rail → overview visible → open channel from list

Notes

  • Shipped: SpaceHomePanel.vue, useChatPageShell.selectSpace clears room + suppresses auto-pick, leave-in-space lands on space home, E2E @space_home + updated @leave_room space scenario.
  • Docs: docs/architecture.md cheat sheet updated.
  • Likely files: chat.vue, useChatPageShell.ts (selectSpace), new components/Chat/SpaceHomePanel.vue (name TBD), useChatRoomSidebar / spaceRoomCategories for room lists.
  • useChatSpaceRail auto-select watcher: ensure space-home state (selectedRoomId === null in a space) is not overridden by auto-pick unless intended.
  • Milestone: Phase 3 or next chat-navigation milestone (TBD).

Metadata

Metadata

Assignees

Projects

Status
Done

Relationships

None yet

Development

No branches or pull requests

Issue actions