From c0487101fec75061d0ee3926d7f0600e510fc053 Mon Sep 17 00:00:00 2001 From: npeter83 Date: Wed, 1 Jul 2026 23:19:06 +0200 Subject: [PATCH] polish(layout): tidy filter header + sync status at higher browser zoom - Filter header: show the active-filter count as a compact number pill instead of '{n} active' text, and keep the action buttons on one line (shrink-0 + nowrap) so nothing truncates or wraps in a narrow / zoomed-in sidebar (e.g. 125% browser zoom). - Sync status: anchor the 'all synced' state with a small check icon so it no longer reads as orphaned text at the top of the nav rail. --- frontend/src/components/Sidebar.tsx | 23 +++++++++++++---------- frontend/src/components/SyncStatus.tsx | 8 ++++++-- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx index c835ef6..0134ec8 100644 --- a/frontend/src/components/Sidebar.tsx +++ b/frontend/src/components/Sidebar.tsx @@ -541,21 +541,24 @@ export default function Sidebar({ > -
- {t("sidebar.filters")} - {activeCount > 0 && ( - - {t("sidebar.activeCount", { count: activeCount })} - - )} -
+ {t("sidebar.filters")} + {activeCount > 0 && ( + // Compact count pill (not "{n} active" text) so it never truncates or forces the + // action buttons to wrap in a narrow / zoomed-in sidebar. + + {activeCount} + + )} -
+
{!editing && ( diff --git a/frontend/src/components/SyncStatus.tsx b/frontend/src/components/SyncStatus.tsx index 54ad51f..435d70d 100644 --- a/frontend/src/components/SyncStatus.tsx +++ b/frontend/src/components/SyncStatus.tsx @@ -1,6 +1,6 @@ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { useTranslation } from "react-i18next"; -import { Clock, Database, History, Loader2, Pause, Play } from "lucide-react"; +import { CheckCircle2, Clock, Database, History, Loader2, Pause, Play } from "lucide-react"; import { api, type MyStatus } from "../lib/api"; import { formatViews } from "../lib/format"; import Tooltip from "./Tooltip"; @@ -75,7 +75,11 @@ export default function SyncStatus({ {t("header.sync.recentQueued", { count: syncing })} ) : ( - {t("header.sync.allSynced")} + // A small check anchors the "all synced" state so it doesn't read as orphaned text. + + + {t("header.sync.allSynced")} + ); const pauseBtn = isAdmin && (data.paused || syncing > 0 || notFull > 0) && (