Skip to content

[feat] connect drawer: pinnable tabs + status in header + live Toasts tab + toast routing; expose sessionHost - #45

Merged
AlexZ005 merged 1 commit into
mainfrom
feature/connect-drawer-toasts-roles
Jul 25, 2026
Merged

[feat] connect drawer: pinnable tabs + status in header + live Toasts tab + toast routing; expose sessionHost#45
AlexZ005 merged 1 commit into
mainfrom
feature/connect-drawer-toasts-roles

Conversation

@AlexZ005

Copy link
Copy Markdown
Collaborator

Reworks the connect drawer per the latest UX decisions (pairs with the cloud roles PR).

  • Pin replaces ✕ — keeps the tab bar (+ status) visible when the body is collapsed; drawer renders when open or pinned. Persisted.
  • Status moves out of the pill into the drawer tab-header (left of the pin): dot + Offline/Waiting…/Connected(+N) + a 'N new request' cue. Pill keeps only actions. Removed the pill's dead status markup/deriveds/CSS.
  • Toasts tab = LIVE toasts (approve/reject requests, outbound waiting+cancel, current messages) — the bell keeps history. Routing: viewport toasts hidden via CSS (expiry timers keep running); approvals hide when the drawer is open (surface in the tab + header cue) but always pop when it's closed; info toasts also hide when open or when 'Toasts in drawer only' is on.
  • Settings: two toggles (not checkboxes) — 'Toasts in drawer only' + 'Show Rooms button'.
  • cloudApi sessionHost() so the plugin can make the host the roles admin.

svelte-check 489/72 (under baseline). Verified headless (pin-collapse, header status, live Toasts tab, pill status removed).

…ab + toast routing; expose sessionHost

Reworks the connect drawer per the 2026-07-25 UX decisions.

- PIN replaces the ✕: the pin keeps the tab bar (+ status) visible even when the body
  is collapsed, so it acts as a persistent mini-bar under the pill. The drawer renders
  when open OR pinned (drawerVisible); the body only when open. Persisted
  (connectDrawerPinned).
- CONNECTION STATUS moved OUT of the Connect pill INTO the drawer tab-header (left of
  the pin): a dot + Offline/Waiting…/Connected(+N), plus a "N new request(s)" cue when
  a join request is pending. The pill now carries only actions (Connect/Cancel/
  Disconnect) + invite id + chevron + Rooms. Removed the pill's now-unused status
  markup, host* deriveds, sessionHost import and cx-status/cx-dot CSS.
- TOASTS TAB is now the LIVE toasts (pending connection requests with Approve/Reject,
  outbound Waiting…+Cancel, current messages with their actions) — the top-right bell
  keeps the full HISTORY. Toast ROUTING: viewport containers are hidden via CSS (timers
  keep running) — approval toasts hide when the drawer is OPEN (they surface in the
  Toasts tab + the header cue) but always pop in the viewport when it's closed;
  informational toasts also hide when the drawer is open OR when "Toasts in drawer only"
  is on. New stores connectDrawerPinned + toastsInDrawerOnly.
- SETTINGS: the two connect options are TOGGLES now (not checkboxes) — "Toasts in
  drawer only" (core) + "Show Rooms button" (cloud, gated on the plugin).
- cloudApi gains sessionHost() (v2.1) so the cloud plugin can make the session HOST
  the roles authority (admin) — paired with the cloud roles change.

svelte-check 489/72 (under the 491/72 baseline — the onClose typing + removed
deriveds netted -2). Verified headless via the engine + plugin: tabs + header status +
pin, pin-collapse keeps the tab bar, live Toasts tab, pill status removed, no errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AlexZ005
AlexZ005 merged commit 739f0a3 into main Jul 25, 2026
@AlexZ005
AlexZ005 deleted the feature/connect-drawer-toasts-roles branch August 5, 2026 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant