feat: Add a scrollable prop to CategoriesFilter for narrow containers (EXO-88866) - #5915
Open
bmestrallet wants to merge 5 commits into
Open
feat: Add a scrollable prop to CategoriesFilter for narrow containers (EXO-88866)#5915bmestrallet wants to merge 5 commits into
bmestrallet wants to merge 5 commits into
Conversation
The Theme management page's default page background color (used both as the picker's placeholder and normalized when reading an already persisted 6-digit value) had no alpha channel, so the color picker silently dropped its transparency slider. Also stop the gradient from/to parser from garbling non-linear-gradient values (e.g. conic gradients set elsewhere) instead of falling back to solid color.
…delete Add a selection mode to the top-bar notifications drawer, mirroring the email-connector mailbox behaviour: - Per-item checkbox + "Select" entry in the item menu to enter select mode - "Select all" checkbox (with indeterminate state) above the list - Select-mode header showing "N selected" + bulk mark-as-read / delete + cancel (back) button - Selection state shared via the app $root + $root event bus (the extension-registry layer between the list and the item template prevents prop drilling) Backend: add batch REST operations on /notifications/webNotifications - PATCH ?operation=markAsRead&id=... (mark a list of notifications as read) - DELETE ?id=... (hide a list of notifications) Both enforce per-user ownership and skip ids not owned by the caller. Covered by 6 new WebNotificationRestServiceTest cases. UI: transparent checkboxes (no white tile over grey rows), no row tint on selection, no lingering focus/ripple after click, empty-state placeholder left untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…(Sonar javascript:S3516) - EXO-88378 markAsReadMouseDown/markAsReadMouseUp always returned true, which SonarCloud flags as a Blocker (S3516). The return value is ignored by Vue's @mousedown/ @mouseup bindings, so drop it and use a bare early return; behaviour is unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…EXO-88866) Add an additive, default-false `scrollable` prop to CategoriesFilter and CategoryChipsGroup. When set, the filter lays its chips out on one horizontally scrollable row (the existing mobile layout) whatever the viewport width, instead of the desktop card-carousel + "See all" overflow, so the whole set stays reachable in narrow containers such as side drawers. The inner wrapper keeps its content width (flex-shrink-0) so the last chip scrolls into view rather than being clipped, with a thin, subtle scrollbar. Default false, so spaces / activity / other consumers are unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
bmestrallet
force-pushed
the
feat/EXO-88866-scrollable-categories-filter
branch
from
July 26, 2026 12:54
43c0cd8 to
3cb8d80
Compare
|
exo-swf
force-pushed
the
feature/ai-contribution
branch
2 times, most recently
from
July 28, 2026 11:13
102b2fa to
ce9ed1d
Compare
bmestrallet
force-pushed
the
feature/ai-contribution
branch
from
July 28, 2026 12:18
ce9ed1d to
d7293f4
Compare
exo-swf
force-pushed
the
feature/ai-contribution
branch
from
July 28, 2026 13:08
d7293f4 to
266691b
Compare
bmestrallet
force-pushed
the
feature/ai-contribution
branch
from
July 30, 2026 11:49
266691b to
ef3f343
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Add a
scrollableprop toCategoriesFilter(EXO-88866)CategoriesFilter/CategoryChipsGroupcurrently pick their layout from the viewport breakpoint: a horizontally scrollable row on mobile, acard-carousel+ "See all" overflow on desktop. In a narrow container on a desktop viewport — e.g. a side drawer — that means the chips get truncated behind "See all" even though there is nothing mobile about the session.This adds an additive, default-
falsescrollableprop. When set, the filter always uses the mobile-style single horizontally scrollable row, whatever the viewport width:CategoriesFilterapplies the scroll container and forwardsscrollableto the chips group.CategoryChipsGrouprenders the plain scrollablediv(not the carousel), drops the "See all" button, and keeps the inner wrapper at its content width (flex-shrink-0) so the last chip scrolls into view instead of being clipped.scrollbar-width: thin+ slim::-webkit-scrollbar).scrollabledefaults tofalse, so every existing consumer (spaces list, activity stream, …) is unchanged.Why
Consumed by a narrow side-drawer category filter in the eXo email-connector mailbox (EXO-88862), where the four "Inbox" categories must stay on one reachable row.
🤖 Generated with Claude Code