From af063f7acc0f20fc7fd0dd4d38131f2e7a5802a3 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Fri, 13 Mar 2026 22:51:32 +0000 Subject: [PATCH] Implemented filter sidebar. --- assets/icons/filtercirclefilledicon.svg | 7 + assets/icons/filtercircleicon.svg | 8 + assets/icons/filtericon.svg | 9 + assets/stylesheets/App.css | 12 ++ src/components/Dashboard/Finance/Invoices.jsx | 23 ++- src/components/Dashboard/Finance/Payments.jsx | 23 ++- .../Dashboard/Inventory/FilamentStocks.jsx | 23 ++- .../Dashboard/Inventory/OrderItems.jsx | 23 ++- .../Dashboard/Inventory/PartStocks.jsx | 23 ++- .../Dashboard/Inventory/ProductStocks.jsx | 23 ++- .../Dashboard/Inventory/PurchaseOrders.jsx | 23 ++- .../Dashboard/Inventory/Shipments.jsx | 23 ++- .../Dashboard/Inventory/StockAudits.jsx | 23 ++- .../Dashboard/Inventory/StockEvents.jsx | 23 ++- .../Dashboard/Management/AppPasswords.jsx | 23 ++- .../Dashboard/Management/AuditLogs.jsx | 14 +- .../Dashboard/Management/CourierServices.jsx | 23 ++- .../Dashboard/Management/Couriers.jsx | 23 ++- .../Dashboard/Management/DocumentJobs.jsx | 23 ++- .../Dashboard/Management/DocumentPrinters.jsx | 23 ++- .../Dashboard/Management/DocumentSizes.jsx | 23 ++- .../Management/DocumentTemplates.jsx | 23 ++- .../Dashboard/Management/FilamentSkus.jsx | 23 ++- .../Dashboard/Management/Filaments.jsx | 23 ++- src/components/Dashboard/Management/Files.jsx | 23 ++- src/components/Dashboard/Management/Hosts.jsx | 23 ++- .../Dashboard/Management/Materials.jsx | 23 ++- .../Dashboard/Management/NoteTypes.jsx | 23 ++- .../Dashboard/Management/PartSkus.jsx | 23 ++- src/components/Dashboard/Management/Parts.jsx | 23 ++- .../Dashboard/Management/ProductSkus.jsx | 23 ++- .../Dashboard/Management/Products.jsx | 23 ++- .../Dashboard/Management/TaxRates.jsx | 23 ++- .../Dashboard/Management/TaxRecords.jsx | 23 ++- src/components/Dashboard/Management/Users.jsx | 21 +- .../Dashboard/Management/Vendors.jsx | 23 ++- .../Dashboard/Production/GCodeFiles.jsx | 23 ++- src/components/Dashboard/Production/Jobs.jsx | 23 ++- .../Dashboard/Production/Printers.jsx | 23 ++- .../Dashboard/Production/SubJobs.jsx | 23 ++- src/components/Dashboard/Sales/Clients.jsx | 23 ++- .../Dashboard/Sales/SalesOrders.jsx | 23 ++- .../Dashboard/common/FilterSidebar.jsx | 193 ++++++++++++++++++ .../Dashboard/common/FilterSidebarButton.jsx | 27 +++ .../Dashboard/common/ObjectTable.jsx | 74 +++++-- .../common/ObjectTableViewButton.jsx | 20 ++ .../hooks/useFilterSidebarVisibility.jsx | 21 ++ .../Icons/FilterCircleFilledIcon.jsx | 6 + src/components/Icons/FilterCircleIcon.jsx | 6 + src/components/Icons/FilterIcon.jsx | 6 + 50 files changed, 944 insertions(+), 308 deletions(-) create mode 100644 assets/icons/filtercirclefilledicon.svg create mode 100644 assets/icons/filtercircleicon.svg create mode 100644 assets/icons/filtericon.svg create mode 100644 src/components/Dashboard/common/FilterSidebar.jsx create mode 100644 src/components/Dashboard/common/FilterSidebarButton.jsx create mode 100644 src/components/Dashboard/common/ObjectTableViewButton.jsx create mode 100644 src/components/Dashboard/hooks/useFilterSidebarVisibility.jsx create mode 100644 src/components/Icons/FilterCircleFilledIcon.jsx create mode 100644 src/components/Icons/FilterCircleIcon.jsx create mode 100644 src/components/Icons/FilterIcon.jsx diff --git a/assets/icons/filtercirclefilledicon.svg b/assets/icons/filtercirclefilledicon.svg new file mode 100644 index 0000000..0ced6cc --- /dev/null +++ b/assets/icons/filtercirclefilledicon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/filtercircleicon.svg b/assets/icons/filtercircleicon.svg new file mode 100644 index 0000000..6bafa21 --- /dev/null +++ b/assets/icons/filtercircleicon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/icons/filtericon.svg b/assets/icons/filtericon.svg new file mode 100644 index 0000000..f25e149 --- /dev/null +++ b/assets/icons/filtericon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/stylesheets/App.css b/assets/stylesheets/App.css index 7f8d807..f7ff927 100644 --- a/assets/stylesheets/App.css +++ b/assets/stylesheets/App.css @@ -584,3 +584,15 @@ body { .markdown-code-editor .cm-editor .cm-gutters { background-color: transparent; } + +.h-100 { + height: 100%; +} + +.ant-table.ant-table-middle .ant-table-filter-trigger { + height: 20px; +} + +.ant-table-wrapper .ant-table-filter-column { + align-items: center; +} diff --git a/src/components/Dashboard/Finance/Invoices.jsx b/src/components/Dashboard/Finance/Invoices.jsx index 43dba5a..efb0be1 100644 --- a/src/components/Dashboard/Finance/Invoices.jsx +++ b/src/components/Dashboard/Finance/Invoices.jsx @@ -5,9 +5,10 @@ import ObjectTable from '../common/ObjectTable' import PlusIcon from '../../Icons/PlusIcon' import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' -import GridIcon from '../../Icons/GridIcon' -import ListIcon from '../../Icons/ListIcon' +import ObjectTableViewButton from '../common/ObjectTableViewButton' +import FilterSidebarButton from '../common/FilterSidebarButton' import useViewMode from '../hooks/useViewMode' +import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -20,6 +21,9 @@ const Invoices = () => { const [columnVisibility, setColumnVisibility] = useColumnVisibility('invoices') + const [showFilterSidebar, setShowFilterSidebar] = + useFilterSidebarVisibility('Invoices') + const actionItems = { items: [ { @@ -45,7 +49,7 @@ const Invoices = () => { return ( <> - + @@ -60,11 +64,13 @@ const Invoices = () => { - + +