From 79780d07d114dca9e1cc80e1dc785b7d2faedb28 Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Sun, 19 Apr 2026 22:23:40 +0700 Subject: [PATCH] =?UTF-8?q?fix:=20column=20visibility=20UX=20=E2=80=94=20c?= =?UTF-8?q?ount=20badge,=20wider=20popover,=20lower=20search=20threshold?= =?UTF-8?q?=20(#778)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Views/Main/Child/MainStatusBarView.swift | 3 ++- .../Views/Results/ColumnVisibilityPopover.swift | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/TablePro/Views/Main/Child/MainStatusBarView.swift b/TablePro/Views/Main/Child/MainStatusBarView.swift index 44e2f80aa..f61e1b622 100644 --- a/TablePro/Views/Main/Child/MainStatusBarView.swift +++ b/TablePro/Views/Main/Child/MainStatusBarView.swift @@ -119,7 +119,8 @@ struct MainStatusBarView: View { : "eye.circle") Text("Columns") if columnVisibilityManager.hasHiddenColumns { - Text("(\(columnVisibilityManager.hiddenCount) hidden)") + let visible = allColumns.count - columnVisibilityManager.hiddenCount + Text("(\(visible)/\(allColumns.count))") .foregroundStyle(.secondary) } } diff --git a/TablePro/Views/Results/ColumnVisibilityPopover.swift b/TablePro/Views/Results/ColumnVisibilityPopover.swift index 17c5fe7e1..e056c5ec9 100644 --- a/TablePro/Views/Results/ColumnVisibilityPopover.swift +++ b/TablePro/Views/Results/ColumnVisibilityPopover.swift @@ -24,20 +24,28 @@ struct ColumnVisibilityPopover: View { Divider() - if columns.count > 10 { + if columns.count > 5 { searchField Divider() } columnList } - .frame(width: 220) - .frame(maxHeight: 350) + .frame(width: 260) + .frame(maxHeight: 420) + } + + private var headerTitle: String { + let visible = columns.count - columnVisibilityManager.hiddenCount + if columnVisibilityManager.hasHiddenColumns { + return "\(visible) of \(columns.count)" + } + return String(localized: "Columns") } private var header: some View { HStack { - Text("Columns") + Text(headerTitle) .font(.headline) .foregroundStyle(.primary)