Skip to content

feat(design): default sort, click a section to edit it, and the logo in Brand - #839

Closed
mortondev wants to merge 4 commits into
feat/portal-design-v2-phase2-headerfrom
feat/portal-design-v2-phase2-finish
Closed

mortondev wants to merge 4 commits into
feat/portal-design-v2-phase2-headerfrom
feat/portal-design-v2-phase2-finish

Conversation

@mortondev

@mortondev mortondev commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

The seventh of the stack that builds a new design engine for the portal, and the last of phase 2. It adds the feed's default sort to the design, lets an admin click a section in the Appearance preview to edit it, and shows the workspace logo in Brand. Behind the portalDesignV2 Labs switch; with it off, nothing changes.

Default sort

On the design engine the feedback page sorts by the design's default (trending, top or new) until the visitor picks one. The loader, the feed, its loading state and the container all read it, and clearing a search returns to it. A legacy portal sorts by trending as before. Appearance sets it under Sections › Feed, and the preview loads with the draft's sort.

Click a section to edit it

The header, the band, the welcome message, the feed and the filter panel are marked with data-qb-section. While a design is previewed, the frame outlines the innermost section under the pointer. A click that is not on one of the section's links, buttons or fields tells Appearance which section it is, and Appearance opens Sections at that section's controls. The code lives in the preview frame's design channel, which loads only in the preview, so the live portal and the legacy settings preview are untouched.

The logo

The logo belongs to the workspace: Settings › General sets it for the portal, the admin and email, and the portal header reads it there. Brand shows the current logo with a link to change it, so there is one place to edit it.

Verification

  • Typecheck, lint, the production build and the server-function manifest check pass.
  • The perf bench passes locally on this branch, apart from the email settings page's HTML size, which fails locally on main too. The sort tiles are drawn rather than loading three icon chunks onto the settings page.
  • New tests: the default sort helper, the review labels for page changes, section picking in the frame (links and buttons excluded, nothing until a design is previewed), and opening the picked section in the view.

On the design engine the feedback page sorts by the design's default
(trending, top or new) until the visitor picks one: the loader, the feed,
its loading state and the container all read it, and clearing a search
returns to it. A legacy portal sorts by trending as before. Appearance sets
it under Sections › Feed, and the preview loads with the draft's sort.

Review and publish names the page's changes as the controls do: the
headline, the subtitle, the welcome message and its text.
The header, the band, the welcome message, the feed and the filter panel are
marked with data-qb-section. While a design is previewed, the frame outlines
the innermost section under the pointer and, on a click that is not on one
of its links, buttons or fields, tells Appearance which section it is.
Appearance then opens Sections at that section's controls. The legacy
settings preview and the live portal are untouched.
The logo belongs to the workspace: Settings › General sets it for the
portal, the admin and email, and the portal header reads it there. Brand
shows the current logo with a link to change it, so there is one place to
edit it rather than a second copy in the design.
The sort tiles used three icons, and since Appearance is part of the
Settings › Portal route, every visit to that page loaded their chunks. They
are drawn like the other tiles: bars rising for trending, falling for top,
and a dot on the newest.
@mortondev
mortondev added this pull request to stack #833 October 30, 2026 21:17
@mortondev mortondev changed the title feat/portal design v2 phase2 finish feat(design): default sort, click a section to edit it, and the logo in Brand Oct 30, 2026
@mortondev

Copy link
Copy Markdown
Member Author

Condensed into #878. The stack is now five PRs, #878 to #882; this branch is kept as it was.

@mortondev mortondev closed this Nov 1, 2026
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