Commit Graph
12 Commits
Author SHA1 Message Date
ancsemi f8b1b2fd3f Chrome layout: the row mic sits after the channel options button, so it no longer slides away when the row is hovered 2026-10-09 20:33:23 -04:00
ancsemi ffb27a6463 Chrome layout: show menu labels in the user's language where Haven has them (#5681)
The + menu, the home server menu, the DM dock button, the row voice buttons
and the temporary channel prompt now use Haven's existing translations, and
build their buttons with text instead of HTML. Labels Haven has no string
for yet stay in English.
2026-10-05 18:17:01 -04:00
ancsemi bbf3065e9e Chrome layout: People button uses Haven's panel toggle, drop a retired event (#5681)
The People dock button called a function Haven does not have and fell back
to collapsing the panel directly, which Haven did not remember and which
switching layouts never undid. It now presses Haven's own panel toggle and
its pressed state follows the panel however it is toggled. The listener for
haven:layout-effect is removed: nothing sends that event any more, the
Layout picker calls _engage and _disengage directly.
2026-10-05 18:17:01 -04:00
ancsemi 4ab441c671 Chrome layout: open the Join and Create sections without leaving inline styles (#5681)
The + menu wrote inline styles on the Join and Create sections and on the
create form's container, and none of them were undone when switching
layouts. It now opens a collapsed section through Haven's own section
toggle and leaves the create form's visibility to Haven, which already
shows it to everyone allowed to create channels.
2026-10-05 18:17:01 -04:00
ancsemi 9b35ad0f0a Chrome layout: leave the saved DM list collapse alone (#5681)
Opening and closing the DM drawer wrote Haven's own DM collapse setting, and
a click on the DM header also ran Haven's collapse, so the DM list could
stay collapsed after switching back to Original. The drawer now shows the
list with a style rule, the header click only closes the drawer, and the
layout saves nothing about the DM list. Also replaces the empty catches
there and around saving the layout choice with a logged warning.
2026-10-05 18:17:01 -04:00
ancsemi 00256443bb Chrome layout: stop hiding the update banner (#5681)
The layout hid the banner that tells admins a new Haven version is out.
2026-10-05 18:17:01 -04:00
ancsemi 4fcdcbc288 Chrome layout: show the real DM unread badge on the dock button (#5681)
The layout added a second element with the DM badge's id, but Haven keeps
the first one up to date, and that one sits in the DM header the layout
hides, so the dock never showed unread DMs. The layout now moves Haven's
own badge onto the dock button and puts it back when switching layouts.
2026-10-05 18:17:01 -04:00
ancsemi a0e1309d2d Chrome layout: keep the Settings button and make the home menu open Settings (#5681)
The layout hid the panel holding the only Settings button on desktop, and
its home server menu called a Settings function Haven does not have, so
Settings could not be opened at all. The Settings button stays visible,
the menu opens Settings through that button, Server Settings then switches
to the Admin tab, and that item only shows for people who can use it.
2026-10-05 18:17:01 -04:00
ancsemi 134c4d3814 Chrome layout: the mic on a channel row joins voice in that channel (#5681)
Haven's voice join takes no channel and joins the one being viewed, so the
mic on another channel's row joined voice where you already were. The
button now opens that channel first and then joins, the same way
double-clicking a channel row does.
2026-10-05 18:17:01 -04:00
ancsemi c6eb65d77c Chrome layout: find channel rows by data-code so the voice buttons appear (#5681)
Haven tags each channel row with data-code, but the layout looked for
data-channel-code, so no row ever got its join voice button.
2026-10-05 18:17:01 -04:00
ancsemi de70950745 Chrome layout: stop redrawing the channel voice buttons on every frame (#5681)
Each pass rewrote every voice button inside the channel list, which the
layout's own observer saw as a change and answered with another pass, so
the buttons were redrawn on every animation frame while the layout was on.
A button is now only rewritten when its join or leave state flips.
2026-10-05 18:17:01 -04:00
Amnibro a388655e12 feat(layout): ship Chrome Layout as standalone layout plugin (#5681)
- Package sidebar condensation into plugins/ChromeLayout.plugin.js
- Promotes channel creation, joining, and temp channels to prominent header action menu
- Docks DMs and People in footer with unread badges and sliding drawer
- Equips channel rows with voice controls (join/leave)
- Adds quick settings menu to home server icon
- Full height channel section with category group dividers
- Conforms to the Layout picker contract in docs/theme-authoring.md
- Adds test suite in test/chromeLayout.test.js and entry in GUIDE.md
2026-10-05 17:59:08 -04:00