feat(enclave): remove landing menu; sidebar + create-chat, invite-search to settings #352

Merged
nrupard merged 1 commit from feat/lc-336-remove-enclave-landing-menu into main 2026-06-18 16:42:54 +02:00
Owner

What

Removes the enclave landing menu (GET /enclave/{id}) and splits its features across the sidebar, settings, and the empty-state pane. The landing menu only ever appeared when an enclave had no openable rooms, was a separate surface from settings, and dead-ended once the user entered a chat.

  • Sidebar + create-chat. The "ROOMS" header now renders a + popover whenever in an enclave context. It holds the full create-room form (name + text/voice + public/private) and posts to the unchanged POST /enclave/{id}/rooms. Gated on the existing per-enclave manage check (can_manage_sidebar_categories, which is enclave_can_manage(...) for the current enclave). In an enclave the header renders even with zero rooms, so the first chat is creatable from the sidebar.
  • Invite-by-search to settings. The invite typeahead (the one landing-only feature) moves into the settings members section, same hx contract (get_invite_search -> #enclave-invite-results, post_invite).
  • Empty-state placeholder. The no-room fallback renders a small pane (enclave name + "No chats yet" + a manager hint) instead of the two-column menu. The redirect-to-room fast path is unchanged. Enclave settings stays reachable via the switcher-rail gear (LC-143).

Cleanup

The landing-only live regions #lc-enclave-rooms / #lc-enclave-members (LC-170) are gone with the menu: their OOB fragment templates, view structs, and render helper are removed, and the EnclaveRoomAdded/Removed WS arm now refreshes only the enclave-keyed sidebar nav. render_enclave_members now renders only the settings members fragment (#lc-enclave-settings-members, unchanged). EnclavePage is trimmed to the placeholder fields and get_landing drops the now-unused member/room queries. Dead i18n keys removed from both en and es; new keys added to both.

Test

  • ./dev/cargo check, just check (clippy standalone + saas + desktop, fmt) clean.
  • just test and just test-saas both green.
  • No DB/migration changes. No changes to POST /enclave/{id}/rooms, /invite, /invite/search handlers.

Closes LC-336.

## What Removes the enclave landing menu (`GET /enclave/{id}`) and splits its features across the sidebar, settings, and the empty-state pane. The landing menu only ever appeared when an enclave had no openable rooms, was a separate surface from settings, and dead-ended once the user entered a chat. - **Sidebar `+` create-chat.** The "ROOMS" header now renders a `+` popover whenever in an enclave context. It holds the full create-room form (name + text/voice + public/private) and posts to the unchanged `POST /enclave/{id}/rooms`. Gated on the existing per-enclave manage check (`can_manage_sidebar_categories`, which is `enclave_can_manage(...)` for the current enclave). In an enclave the header renders even with zero rooms, so the first chat is creatable from the sidebar. - **Invite-by-search to settings.** The invite typeahead (the one landing-only feature) moves into the settings members section, same hx contract (`get_invite_search` -> `#enclave-invite-results`, `post_invite`). - **Empty-state placeholder.** The no-room fallback renders a small pane (enclave name + "No chats yet" + a manager hint) instead of the two-column menu. The redirect-to-room fast path is unchanged. Enclave settings stays reachable via the switcher-rail gear (LC-143). ## Cleanup The landing-only live regions `#lc-enclave-rooms` / `#lc-enclave-members` (LC-170) are gone with the menu: their OOB fragment templates, view structs, and render helper are removed, and the `EnclaveRoomAdded/Removed` WS arm now refreshes only the enclave-keyed sidebar nav. `render_enclave_members` now renders only the settings members fragment (`#lc-enclave-settings-members`, unchanged). `EnclavePage` is trimmed to the placeholder fields and `get_landing` drops the now-unused member/room queries. Dead i18n keys removed from both en and es; new keys added to both. ## Test - `./dev/cargo check`, `just check` (clippy standalone + saas + desktop, fmt) clean. - `just test` and `just test-saas` both green. - No DB/migration changes. No changes to `POST /enclave/{id}/rooms`, `/invite`, `/invite/search` handlers. Closes LC-336.
feat(enclave): remove landing menu; sidebar + create-chat, invite-search to settings
All checks were successful
check-secrets / Nosey parker (push) Successful in 3s
check-secrets / Kingfisher (push) Successful in 4s
check-secrets / TruffleHog (push) Successful in 5s
check-secrets / Kingfisher (pull_request) Successful in 4s
check-secrets / Nosey parker (pull_request) Successful in 5s
check-secrets / TruffleHog (pull_request) Successful in 5s
Check / clippy + fmt + tests (pull_request) Successful in 2m17s
Create release / Create release from merged PR (pull_request) Has been skipped
927ea7c0eb
The enclave landing menu (GET /enclave/{id}) only ever showed when an enclave had no openable rooms, was distinct from settings, and dead-ended once the user entered a chat. Remove it and split its features: create-chat moves to a new + popover beside the sidebar ROOMS label (gated on the existing enclave-manage check, full name/kind/visibility form posting to the unchanged POST /enclave/{id}/rooms), the invite-by-search typeahead moves into the settings members section, and the no-room fallback renders a small placeholder pane instead of the two-column menu. Settings stays reachable via the switcher-rail gear (LC-143).

Remove the now-dead landing live-render path: the #lc-enclave-rooms / #lc-enclave-members OOB fragments (LC-170), their view structs and render helper, and the EnclaveRoomAdded/Removed arm's landing render (it now refreshes only the enclave-keyed sidebar nav). The settings members live region (#lc-enclave-settings-members) is unchanged. Trim EnclavePage to the placeholder fields and drop the unused member/room queries in get_landing.

#LC-336

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
nrupard deleted branch feat/lc-336-remove-enclave-landing-menu 2026-06-18 16:42:54 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!352
No description provided.