diff --git a/apps/edr-freight-web/backoffice/src/components/filters/FilterBar.tsx b/apps/edr-freight-web/backoffice/src/components/filters/FilterBar.tsx index 154ce3155..a712d189e 100644 --- a/apps/edr-freight-web/backoffice/src/components/filters/FilterBar.tsx +++ b/apps/edr-freight-web/backoffice/src/components/filters/FilterBar.tsx @@ -65,13 +65,17 @@ export function FilterBar({ /> )} - {/* Two independent flex zones, not one big wrapping Group: the left side - (search + pills + more filters + clear) wraps to as many lines as it - needs; the right side (sort) stays put on the first line — `nowrap` + - `flexShrink: 0` on the right zone stop it from ever getting pushed - down when the left side overflows. */} -
- + {/* + Two independent zones on wide screens — left (search + pills + more + filters + clear) wraps to as many lines as it needs, right (sort + + save) stays pinned on the first line via `sm:flex-nowrap` + + `sm:shrink-0`. `nowrap` unconditionally (the old inline style) forced + that same two-column layout on a phone too: neither zone had room and + both got squeezed/clipped. Below the `sm` breakpoint this stacks to a + single column instead — full-width left row, full-width right row. + */} +
+ {showSearch && ( controls.setSearchText(e.currentTarget.value)} size="xs" radius="lg" - style={{ minWidth: 220 }} + style={{ minWidth: 160, flex: "1 1 160px" }} /> )} @@ -119,7 +123,13 @@ export function FilterBar({ {/* Sorting is a different kind of control (view order, not scope) — cut off from the filter pills by a vertical divider and pinned to the right, independent of how the left side wraps. */} - + {/* + Plain div, not : Group's `wrap` prop sets an inline + flex-wrap style, which always beats a Tailwind class regardless of + breakpoint — `sm:flex-nowrap` would never win against `wrap="wrap"`. + Wrap on mobile (own row, room is tight), pinned nowrap from `sm` up. + */} +
{children} {sortOptions && sortOptions.length > 0 && ( <> @@ -133,7 +143,7 @@ export function FilterBar({ )} - +
); diff --git a/apps/edr-freight-web/backoffice/src/components/filters/SavedViewCards.tsx b/apps/edr-freight-web/backoffice/src/components/filters/SavedViewCards.tsx index bce4c235e..9cf8c40be 100644 --- a/apps/edr-freight-web/backoffice/src/components/filters/SavedViewCards.tsx +++ b/apps/edr-freight-web/backoffice/src/components/filters/SavedViewCards.tsx @@ -21,7 +21,10 @@ export function SavedViewCards({ defs, views, activeQuery, applyQueryString, onR if (views.length === 0) return null; return ( - + // base: 1 — a phone-width viewport forcing 2 columns is what clipped + // card text and overflowed the row; one full-width card per row until + // there's actually room for more. + {views.map((v) => { const active = v.query === activeQuery; const label = describeQuery(defs, v.query);