From 78299f688e05282d8faf575d928f206344f4ba6d Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sun, 9 Aug 2026 20:54:53 +0100 Subject: [PATCH] Add sort functionality to various dashboard components - Introduced SortSidebarButton to enable sorting in Invoices, Payments, TaxRecords, and Inventory components. - Integrated useSortSidebarVisibility hook to manage sort sidebar visibility state. - Updated relevant components to include sorting capabilities, enhancing user experience and data management. --- assets/icons/sortcirclefilledicon.svg | 7 ++ assets/icons/sortcircleicon.svg | 9 ++ src/components/Dashboard/Finance/Invoices.jsx | 10 ++ src/components/Dashboard/Finance/Payments.jsx | 10 ++ .../Dashboard/Finance/TaxRecords.jsx | 10 ++ .../Dashboard/Inventory/FilamentStocks.jsx | 10 ++ .../Dashboard/Inventory/OrderItems.jsx | 10 ++ .../Dashboard/Inventory/PartStocks.jsx | 10 ++ .../Dashboard/Inventory/ProductStocks.jsx | 10 ++ .../Dashboard/Inventory/PurchaseOrders.jsx | 10 ++ .../Dashboard/Inventory/Shipments.jsx | 10 ++ .../Dashboard/Inventory/StockAudits.jsx | 10 ++ .../Dashboard/Inventory/StockEvents.jsx | 10 ++ .../Dashboard/Inventory/StockLocations.jsx | 10 ++ .../Dashboard/Inventory/StockTransfers.jsx | 10 ++ .../Dashboard/Management/AppPasswords.jsx | 10 ++ .../Dashboard/Management/AuditLogs.jsx | 10 ++ .../Dashboard/Management/CourierServices.jsx | 10 ++ .../Dashboard/Management/Couriers.jsx | 10 ++ .../Dashboard/Management/DocumentJobs.jsx | 10 ++ .../Dashboard/Management/DocumentPrinters.jsx | 10 ++ .../Dashboard/Management/DocumentSizes.jsx | 10 ++ .../Management/DocumentTemplates.jsx | 10 ++ .../Dashboard/Management/FilamentSkus.jsx | 10 ++ .../Dashboard/Management/Filaments.jsx | 10 ++ src/components/Dashboard/Management/Files.jsx | 10 ++ src/components/Dashboard/Management/Hosts.jsx | 10 ++ .../Dashboard/Management/Materials.jsx | 10 ++ .../Dashboard/Management/NoteTypes.jsx | 10 ++ .../Dashboard/Management/PartSkus.jsx | 10 ++ src/components/Dashboard/Management/Parts.jsx | 10 ++ .../Management/ProductCategories.jsx | 10 ++ .../Dashboard/Management/ProductSkus.jsx | 10 ++ .../Dashboard/Management/Products.jsx | 10 ++ .../Dashboard/Management/TaxRates.jsx | 10 ++ src/components/Dashboard/Management/Users.jsx | 10 ++ .../Dashboard/Management/Vendors.jsx | 10 ++ .../Dashboard/Production/FilamentProfiles.jsx | 10 ++ .../Dashboard/Production/GCodeFiles.jsx | 10 ++ src/components/Dashboard/Production/Jobs.jsx | 10 ++ .../Dashboard/Production/PrinterProfiles.jsx | 10 ++ .../Dashboard/Production/Printers.jsx | 10 ++ .../Dashboard/Production/SubJobs.jsx | 10 ++ src/components/Dashboard/Sales/Clients.jsx | 10 ++ src/components/Dashboard/Sales/Listings.jsx | 10 ++ .../Dashboard/Sales/Marketplaces.jsx | 10 ++ .../Dashboard/Sales/SalesOrders.jsx | 10 ++ .../Dashboard/common/FilterSidebar.jsx | 2 +- .../Dashboard/common/ObjectTable.jsx | 65 ++++++++++-- .../Dashboard/common/SortSidebar.jsx | 100 ++++++++++++++++++ .../Dashboard/common/SortSidebarButton.jsx | 27 +++++ .../Dashboard/context/ApiServerContext.jsx | 4 + .../hooks/useSortSidebarVisibility.jsx | 23 ++++ src/components/Icons/SortCircleFilledIcon.jsx | 8 ++ src/components/Icons/SortCircleIcon.jsx | 6 ++ 55 files changed, 690 insertions(+), 11 deletions(-) create mode 100644 assets/icons/sortcirclefilledicon.svg create mode 100644 assets/icons/sortcircleicon.svg create mode 100644 src/components/Dashboard/common/SortSidebar.jsx create mode 100644 src/components/Dashboard/common/SortSidebarButton.jsx create mode 100644 src/components/Dashboard/hooks/useSortSidebarVisibility.jsx create mode 100644 src/components/Icons/SortCircleFilledIcon.jsx create mode 100644 src/components/Icons/SortCircleIcon.jsx diff --git a/assets/icons/sortcirclefilledicon.svg b/assets/icons/sortcirclefilledicon.svg new file mode 100644 index 0000000..dfe1d1a --- /dev/null +++ b/assets/icons/sortcirclefilledicon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/sortcircleicon.svg b/assets/icons/sortcircleicon.svg new file mode 100644 index 0000000..6c36d5c --- /dev/null +++ b/assets/icons/sortcircleicon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/components/Dashboard/Finance/Invoices.jsx b/src/components/Dashboard/Finance/Invoices.jsx index b6366fc..5c4feb0 100644 --- a/src/components/Dashboard/Finance/Invoices.jsx +++ b/src/components/Dashboard/Finance/Invoices.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const Invoices = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Invoices') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Invoices') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const Invoices = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const Invoices = () => { type='invoice' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Finance/Payments.jsx b/src/components/Dashboard/Finance/Payments.jsx index 03ada21..7d37958 100644 --- a/src/components/Dashboard/Finance/Payments.jsx +++ b/src/components/Dashboard/Finance/Payments.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const Payments = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Payments') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Payments') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const Payments = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const Payments = () => { type='payment' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Finance/TaxRecords.jsx b/src/components/Dashboard/Finance/TaxRecords.jsx index 56ceea8..9895bde 100644 --- a/src/components/Dashboard/Finance/TaxRecords.jsx +++ b/src/components/Dashboard/Finance/TaxRecords.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const TaxRecords = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('TaxRecords') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('TaxRecords') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const TaxRecords = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const TaxRecords = () => { type='taxRecord' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Inventory/FilamentStocks.jsx b/src/components/Dashboard/Inventory/FilamentStocks.jsx index 91460c9..a6b8979 100644 --- a/src/components/Dashboard/Inventory/FilamentStocks.jsx +++ b/src/components/Dashboard/Inventory/FilamentStocks.jsx @@ -11,8 +11,10 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -29,6 +31,9 @@ const FilamentStocks = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('FilamentStocks') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('FilamentStocks') + const actionItems = { items: [ { @@ -69,6 +74,10 @@ const FilamentStocks = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -86,6 +95,7 @@ const FilamentStocks = () => { type='filamentStock' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Inventory/OrderItems.jsx b/src/components/Dashboard/Inventory/OrderItems.jsx index a1cb772..6db3551 100644 --- a/src/components/Dashboard/Inventory/OrderItems.jsx +++ b/src/components/Dashboard/Inventory/OrderItems.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const OrderItems = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('OrderItems') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('OrderItems') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const OrderItems = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const OrderItems = () => { type='orderItem' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Inventory/PartStocks.jsx b/src/components/Dashboard/Inventory/PartStocks.jsx index 32f675b..88dda98 100644 --- a/src/components/Dashboard/Inventory/PartStocks.jsx +++ b/src/components/Dashboard/Inventory/PartStocks.jsx @@ -11,8 +11,10 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -29,6 +31,9 @@ const PartStocks = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('PartStocks') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('PartStocks') + const actionItems = { items: [ { @@ -69,6 +74,10 @@ const PartStocks = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -86,6 +95,7 @@ const PartStocks = () => { type='partStock' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Inventory/ProductStocks.jsx b/src/components/Dashboard/Inventory/ProductStocks.jsx index 649541c..db5731a 100644 --- a/src/components/Dashboard/Inventory/ProductStocks.jsx +++ b/src/components/Dashboard/Inventory/ProductStocks.jsx @@ -12,8 +12,10 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -30,6 +32,9 @@ const ProductStocks = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('ProductStocks') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('ProductStocks') + const actionItems = { items: [ { @@ -70,6 +75,10 @@ const ProductStocks = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -87,6 +96,7 @@ const ProductStocks = () => { type='productStock' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Inventory/PurchaseOrders.jsx b/src/components/Dashboard/Inventory/PurchaseOrders.jsx index 2cbff6e..84b8c51 100644 --- a/src/components/Dashboard/Inventory/PurchaseOrders.jsx +++ b/src/components/Dashboard/Inventory/PurchaseOrders.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const PurchaseOrders = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('PurchaseOrders') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('PurchaseOrders') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const PurchaseOrders = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const PurchaseOrders = () => { type='purchaseOrder' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Inventory/Shipments.jsx b/src/components/Dashboard/Inventory/Shipments.jsx index ac743dc..fb48b71 100644 --- a/src/components/Dashboard/Inventory/Shipments.jsx +++ b/src/components/Dashboard/Inventory/Shipments.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const Shipments = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Shipments') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Shipments') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const Shipments = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const Shipments = () => { type='shipment' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Inventory/StockAudits.jsx b/src/components/Dashboard/Inventory/StockAudits.jsx index d7b781e..fe1fef8 100644 --- a/src/components/Dashboard/Inventory/StockAudits.jsx +++ b/src/components/Dashboard/Inventory/StockAudits.jsx @@ -11,8 +11,10 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -29,6 +31,9 @@ const StockAudits = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('StockAudits') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('StockAudits') + const actionItems = { items: [ { @@ -69,6 +74,10 @@ const StockAudits = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -86,6 +95,7 @@ const StockAudits = () => { type='stockAudit' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Inventory/StockEvents.jsx b/src/components/Dashboard/Inventory/StockEvents.jsx index 883b8be..eee995c 100644 --- a/src/components/Dashboard/Inventory/StockEvents.jsx +++ b/src/components/Dashboard/Inventory/StockEvents.jsx @@ -4,8 +4,10 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' import ReloadIcon from '../../Icons/ReloadIcon' @@ -20,6 +22,9 @@ const StockEvents = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('StockEvents') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('StockEvents') + const actionItems = { items: [ { @@ -52,6 +57,10 @@ const StockEvents = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -69,6 +78,7 @@ const StockEvents = () => { type='stockEvent' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Inventory/StockLocations.jsx b/src/components/Dashboard/Inventory/StockLocations.jsx index 96add8d..cf6b7aa 100644 --- a/src/components/Dashboard/Inventory/StockLocations.jsx +++ b/src/components/Dashboard/Inventory/StockLocations.jsx @@ -9,8 +9,10 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -27,6 +29,9 @@ const StockLocations = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('StockLocations') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('StockLocations') + const actionItems = { items: [ { @@ -67,6 +72,10 @@ const StockLocations = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -84,6 +93,7 @@ const StockLocations = () => { type='stockLocation' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Inventory/StockTransfers.jsx b/src/components/Dashboard/Inventory/StockTransfers.jsx index cafb3e1..3a71640 100644 --- a/src/components/Dashboard/Inventory/StockTransfers.jsx +++ b/src/components/Dashboard/Inventory/StockTransfers.jsx @@ -9,8 +9,10 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -27,6 +29,9 @@ const StockTransfers = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('StockTransfers') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('StockTransfers') + const actionItems = { items: [ { @@ -67,6 +72,10 @@ const StockTransfers = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -84,6 +93,7 @@ const StockTransfers = () => { type='stockTransfer' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/AppPasswords.jsx b/src/components/Dashboard/Management/AppPasswords.jsx index 462bcec..fe200ed 100644 --- a/src/components/Dashboard/Management/AppPasswords.jsx +++ b/src/components/Dashboard/Management/AppPasswords.jsx @@ -8,8 +8,10 @@ import PlusIcon from '../../Icons/PlusIcon' import ReloadIcon from '../../Icons/ReloadIcon' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ExportListButton from '../common/ExportListButton' const AppPasswords = () => { @@ -23,6 +25,9 @@ const AppPasswords = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('AppPasswords') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('AppPasswords') + const actionItems = { items: [ { @@ -63,6 +68,10 @@ const AppPasswords = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const AppPasswords = () => { cards={viewMode === 'cards'} visibleColumns={columnVisibility} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/AuditLogs.jsx b/src/components/Dashboard/Management/AuditLogs.jsx index 482c84e..3b714f5 100644 --- a/src/components/Dashboard/Management/AuditLogs.jsx +++ b/src/components/Dashboard/Management/AuditLogs.jsx @@ -4,8 +4,10 @@ import { Button, Flex, Space, Dropdown } from 'antd' import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ObjectTable from '../common/ObjectTable' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -18,6 +20,9 @@ const AuditLogs = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('AuditLogs') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('AuditLogs') + const actionItems = { items: [ { @@ -50,6 +55,10 @@ const AuditLogs = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -62,6 +71,7 @@ const AuditLogs = () => { visibleColumns={columnVisibility} type='auditLog' showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/CourierServices.jsx b/src/components/Dashboard/Management/CourierServices.jsx index c6191ec..bd4b9e6 100644 --- a/src/components/Dashboard/Management/CourierServices.jsx +++ b/src/components/Dashboard/Management/CourierServices.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const CourierServices = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('CourierServices') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('CourierServices') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const CourierServices = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const CourierServices = () => { type='courierService' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/Couriers.jsx b/src/components/Dashboard/Management/Couriers.jsx index 39184de..b26a050 100644 --- a/src/components/Dashboard/Management/Couriers.jsx +++ b/src/components/Dashboard/Management/Couriers.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -23,6 +25,9 @@ const Couriers = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Couriers') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Couriers') + const actionItems = { items: [ { @@ -63,6 +68,10 @@ const Couriers = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -79,6 +88,7 @@ const Couriers = () => { type='courier' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/DocumentJobs.jsx b/src/components/Dashboard/Management/DocumentJobs.jsx index c47b604..40a4ddd 100644 --- a/src/components/Dashboard/Management/DocumentJobs.jsx +++ b/src/components/Dashboard/Management/DocumentJobs.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const DocumentJobs = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('DocumentJobs') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('DocumentJobs') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const DocumentJobs = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const DocumentJobs = () => { type='documentJob' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/DocumentPrinters.jsx b/src/components/Dashboard/Management/DocumentPrinters.jsx index aa56da8..e759c50 100644 --- a/src/components/Dashboard/Management/DocumentPrinters.jsx +++ b/src/components/Dashboard/Management/DocumentPrinters.jsx @@ -6,8 +6,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' import NewDocumentPrinter from './DocumentPrinters/NewDocumentPrinter' @@ -23,6 +25,9 @@ const DocumentPrinters = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('DocumentPrinters') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('DocumentPrinters') + const actionItems = { items: [ { @@ -63,6 +68,10 @@ const DocumentPrinters = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -79,6 +88,7 @@ const DocumentPrinters = () => { type='documentPrinter' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/DocumentSizes.jsx b/src/components/Dashboard/Management/DocumentSizes.jsx index d951c11..8a81945 100644 --- a/src/components/Dashboard/Management/DocumentSizes.jsx +++ b/src/components/Dashboard/Management/DocumentSizes.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -22,6 +24,9 @@ const DocumentSizes = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('DocumentSizes') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('DocumentSizes') + const actionItems = { items: [ { @@ -62,6 +67,10 @@ const DocumentSizes = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -78,6 +87,7 @@ const DocumentSizes = () => { type='documentSize' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/DocumentTemplates.jsx b/src/components/Dashboard/Management/DocumentTemplates.jsx index b42e1b5..1d57f12 100644 --- a/src/components/Dashboard/Management/DocumentTemplates.jsx +++ b/src/components/Dashboard/Management/DocumentTemplates.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const DocumentTemplates = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('DocumentTemplates') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('DocumentTemplates') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const DocumentTemplates = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const DocumentTemplates = () => { type='documentTemplate' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/FilamentSkus.jsx b/src/components/Dashboard/Management/FilamentSkus.jsx index b020e65..c7090f9 100644 --- a/src/components/Dashboard/Management/FilamentSkus.jsx +++ b/src/components/Dashboard/Management/FilamentSkus.jsx @@ -9,8 +9,10 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -27,6 +29,9 @@ const FilamentSkus = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('FilamentSkus') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('FilamentSkus') + const actionItems = { items: [ { @@ -67,6 +72,10 @@ const FilamentSkus = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -84,6 +93,7 @@ const FilamentSkus = () => { type='filamentSku' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/Filaments.jsx b/src/components/Dashboard/Management/Filaments.jsx index 13e054d..2825cd3 100644 --- a/src/components/Dashboard/Management/Filaments.jsx +++ b/src/components/Dashboard/Management/Filaments.jsx @@ -13,8 +13,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useViewMode from '../hooks/useViewMode' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import ExportListButton from '../common/ExportListButton' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' const Filaments = () => { const [newFilamentOpen, setNewFilamentOpen] = useState(false) @@ -29,6 +31,9 @@ const Filaments = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Filaments') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Filaments') + const actionItems = { items: [ { @@ -69,6 +74,10 @@ const Filaments = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -86,6 +95,7 @@ const Filaments = () => { cards={viewMode === 'cards'} visibleColumns={columnVisibility} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/Files.jsx b/src/components/Dashboard/Management/Files.jsx index e79593f..0e07edf 100644 --- a/src/components/Dashboard/Management/Files.jsx +++ b/src/components/Dashboard/Management/Files.jsx @@ -5,8 +5,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -20,6 +22,9 @@ const Files = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Files') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Files') + const actionItems = { items: [ { @@ -52,6 +57,10 @@ const Files = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -68,6 +77,7 @@ const Files = () => { type='file' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/Hosts.jsx b/src/components/Dashboard/Management/Hosts.jsx index a4d1804..2416a36 100644 --- a/src/components/Dashboard/Management/Hosts.jsx +++ b/src/components/Dashboard/Management/Hosts.jsx @@ -14,7 +14,9 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useViewMode from '../hooks/useViewMode' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' const Hosts = () => { const [newHostOpen, setNewHostOpen] = useState(false) @@ -28,6 +30,9 @@ const Hosts = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Hosts') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Hosts') + const actionItems = { items: [ { @@ -68,6 +73,10 @@ const Hosts = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -85,6 +94,7 @@ const Hosts = () => { cards={viewMode === 'cards'} visibleColumns={columnVisibility} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/Materials.jsx b/src/components/Dashboard/Management/Materials.jsx index d3fd478..e9c93e4 100644 --- a/src/components/Dashboard/Management/Materials.jsx +++ b/src/components/Dashboard/Management/Materials.jsx @@ -10,8 +10,10 @@ import PlusIcon from '../../Icons/PlusIcon' import ReloadIcon from '../../Icons/ReloadIcon' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ExportListButton from '../common/ExportListButton' const Materials = () => { @@ -26,6 +28,9 @@ const Materials = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Materials') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Materials') + const actionItems = { items: [ { @@ -66,6 +71,10 @@ const Materials = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -83,6 +92,7 @@ const Materials = () => { cards={viewMode === 'cards'} visibleColumns={columnVisibility} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/NoteTypes.jsx b/src/components/Dashboard/Management/NoteTypes.jsx index 10c0307..184e997 100644 --- a/src/components/Dashboard/Management/NoteTypes.jsx +++ b/src/components/Dashboard/Management/NoteTypes.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const NoteTypes = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('NoteTypes') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('NoteTypes') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const NoteTypes = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const NoteTypes = () => { type='noteType' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/PartSkus.jsx b/src/components/Dashboard/Management/PartSkus.jsx index 2d0e371..236313b 100644 --- a/src/components/Dashboard/Management/PartSkus.jsx +++ b/src/components/Dashboard/Management/PartSkus.jsx @@ -9,8 +9,10 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -26,6 +28,9 @@ const PartSkus = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('PartSkus') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('PartSkus') + const actionItems = { items: [ { @@ -66,6 +71,10 @@ const PartSkus = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -83,6 +92,7 @@ const PartSkus = () => { type='partSku' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/Parts.jsx b/src/components/Dashboard/Management/Parts.jsx index 72791bc..7d4bb03 100644 --- a/src/components/Dashboard/Management/Parts.jsx +++ b/src/components/Dashboard/Management/Parts.jsx @@ -14,7 +14,9 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import useViewMode from '../hooks/useViewMode' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -28,6 +30,9 @@ const Parts = (filter) => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Parts') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Parts') + const actionItems = { items: [ { @@ -68,6 +73,10 @@ const Parts = (filter) => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -85,6 +94,7 @@ const Parts = (filter) => { cards={viewMode === 'cards'} filter={filter} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/ProductCategories.jsx b/src/components/Dashboard/Management/ProductCategories.jsx index 89d23c4..da952c1 100644 --- a/src/components/Dashboard/Management/ProductCategories.jsx +++ b/src/components/Dashboard/Management/ProductCategories.jsx @@ -10,8 +10,10 @@ import PlusIcon from '../../Icons/PlusIcon' import ReloadIcon from '../../Icons/ReloadIcon' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ExportListButton from '../common/ExportListButton' const ProductCategories = () => { @@ -26,6 +28,9 @@ const ProductCategories = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('ProductCategories') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('ProductCategories') + const actionItems = { items: [ { @@ -66,6 +71,10 @@ const ProductCategories = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -83,6 +92,7 @@ const ProductCategories = () => { cards={viewMode === 'cards'} visibleColumns={columnVisibility} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/ProductSkus.jsx b/src/components/Dashboard/Management/ProductSkus.jsx index d8cb56e..d316f76 100644 --- a/src/components/Dashboard/Management/ProductSkus.jsx +++ b/src/components/Dashboard/Management/ProductSkus.jsx @@ -9,8 +9,10 @@ import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -27,6 +29,9 @@ const ProductSkus = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('ProductSkus') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('ProductSkus') + const actionItems = { items: [ { @@ -67,6 +72,10 @@ const ProductSkus = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -84,6 +93,7 @@ const ProductSkus = () => { type='productSku' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/Products.jsx b/src/components/Dashboard/Management/Products.jsx index be5eae6..b0c4d24 100644 --- a/src/components/Dashboard/Management/Products.jsx +++ b/src/components/Dashboard/Management/Products.jsx @@ -27,8 +27,10 @@ import CheckIcon from '../../Icons/CheckIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ExportListButton from '../common/ExportListButton' const Products = () => { @@ -239,6 +241,9 @@ const Products = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Products') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Products') + const actionItems = { items: [ { @@ -340,6 +345,10 @@ const Products = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -355,6 +364,7 @@ const Products = () => { type={'product'} cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/TaxRates.jsx b/src/components/Dashboard/Management/TaxRates.jsx index 304c4a5..4ad0a88 100644 --- a/src/components/Dashboard/Management/TaxRates.jsx +++ b/src/components/Dashboard/Management/TaxRates.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -23,6 +25,9 @@ const TaxRates = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('TaxRates') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('TaxRates') + const actionItems = { items: [ { @@ -63,6 +68,10 @@ const TaxRates = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -79,6 +88,7 @@ const TaxRates = () => { type='taxRate' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/Users.jsx b/src/components/Dashboard/Management/Users.jsx index 6b7f775..803a6bf 100644 --- a/src/components/Dashboard/Management/Users.jsx +++ b/src/components/Dashboard/Management/Users.jsx @@ -5,8 +5,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -20,6 +22,9 @@ const Users = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Users') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Users') + const actionItems = { items: [ { @@ -51,6 +56,10 @@ const Users = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -67,6 +76,7 @@ const Users = () => { visibleColumns={columnVisibility} cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Management/Vendors.jsx b/src/components/Dashboard/Management/Vendors.jsx index b2a550b..7378927 100644 --- a/src/components/Dashboard/Management/Vendors.jsx +++ b/src/components/Dashboard/Management/Vendors.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -23,6 +25,9 @@ const Vendors = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Vendors') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Vendors') + const actionItems = { items: [ { @@ -63,6 +68,10 @@ const Vendors = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -79,6 +88,7 @@ const Vendors = () => { type='vendor' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Production/FilamentProfiles.jsx b/src/components/Dashboard/Production/FilamentProfiles.jsx index ea73617..2b93e04 100644 --- a/src/components/Dashboard/Production/FilamentProfiles.jsx +++ b/src/components/Dashboard/Production/FilamentProfiles.jsx @@ -4,12 +4,14 @@ import NewFilamentProfile from './FilamentProfiles/NewFilamentProfile' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import PlusIcon from '../../Icons/PlusIcon' import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import useViewMode from '../hooks/useViewMode' const FilamentProfiles = () => { @@ -21,6 +23,9 @@ const FilamentProfiles = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('FilamentProfiles') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('FilamentProfiles') + const actionItems = { items: [ { @@ -60,6 +65,10 @@ const FilamentProfiles = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -77,6 +86,7 @@ const FilamentProfiles = () => { cards={viewMode === 'cards'} visibleColumns={columnVisibility} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Production/GCodeFiles.jsx b/src/components/Dashboard/Production/GCodeFiles.jsx index ac03ed3..5549bb4 100644 --- a/src/components/Dashboard/Production/GCodeFiles.jsx +++ b/src/components/Dashboard/Production/GCodeFiles.jsx @@ -9,8 +9,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -26,6 +28,9 @@ const GCodeFiles = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('GCodeFiles') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('GCodeFiles') + const actionItems = { items: [ { @@ -66,6 +71,10 @@ const GCodeFiles = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -82,6 +91,7 @@ const GCodeFiles = () => { cards={viewMode === 'cards'} visibleColumns={columnVisibility} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Production/Jobs.jsx b/src/components/Dashboard/Production/Jobs.jsx index 85a3e74..cd3d98d 100644 --- a/src/components/Dashboard/Production/Jobs.jsx +++ b/src/components/Dashboard/Production/Jobs.jsx @@ -10,8 +10,10 @@ import ObjectTable from '../common/ObjectTable.jsx' import useViewMode from '../hooks/useViewMode.jsx' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import ColumnViewButton from '../common/ColumnViewButton.jsx' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility.jsx' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ExportListButton from '../common/ExportListButton.jsx' const Jobs = () => { @@ -24,6 +26,9 @@ const Jobs = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Jobs') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Jobs') + const actionItems = { items: [ { @@ -69,6 +74,10 @@ const Jobs = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -86,6 +95,7 @@ const Jobs = () => { visibleColumns={columnVisibility} cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Production/PrinterProfiles.jsx b/src/components/Dashboard/Production/PrinterProfiles.jsx index 8d34d26..79fbde6 100644 --- a/src/components/Dashboard/Production/PrinterProfiles.jsx +++ b/src/components/Dashboard/Production/PrinterProfiles.jsx @@ -4,12 +4,14 @@ import NewPrinterProfile from './PrinterProfiles/NewPrinterProfile' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import ObjectTable from '../common/ObjectTable' import ObjectTableViewButton from '../common/ObjectTableViewButton' import PlusIcon from '../../Icons/PlusIcon' import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import useViewMode from '../hooks/useViewMode' const PrinterProfiles = () => { const [newProfileOpen, setNewProfileOpen] = useState(false) @@ -20,6 +22,9 @@ const PrinterProfiles = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('PrinterProfiles') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('PrinterProfiles') + const actionItems = { items: [ { @@ -59,6 +64,10 @@ const PrinterProfiles = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -76,6 +85,7 @@ const PrinterProfiles = () => { cards={viewMode === 'cards'} visibleColumns={columnVisibility} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Production/Printers.jsx b/src/components/Dashboard/Production/Printers.jsx index 9d3d1e5..815d5b3 100644 --- a/src/components/Dashboard/Production/Printers.jsx +++ b/src/components/Dashboard/Production/Printers.jsx @@ -11,9 +11,11 @@ import ExportListButton from '../common/ExportListButton' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useColumnVisibility from '../hooks/useColumnVisibility' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' const Printers = () => { const [newPrinterOpen, setNewPrinterOpen] = useState(false) @@ -29,6 +31,9 @@ const Printers = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Printers') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Printers') + const actionItems = { items: [ { @@ -69,6 +74,10 @@ const Printers = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -84,6 +93,7 @@ const Printers = () => { ref={tableRef} type='printer' showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} cards={viewMode === 'cards'} visibleColumns={columnVisibility} expandHeight={true} diff --git a/src/components/Dashboard/Production/SubJobs.jsx b/src/components/Dashboard/Production/SubJobs.jsx index 6851489..712eb4c 100644 --- a/src/components/Dashboard/Production/SubJobs.jsx +++ b/src/components/Dashboard/Production/SubJobs.jsx @@ -8,8 +8,10 @@ import ObjectTable from '../common/ObjectTable.jsx' import useViewMode from '../hooks/useViewMode.jsx' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import ColumnViewButton from '../common/ColumnViewButton.jsx' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility.jsx' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ExportListButton from '../common/ExportListButton.jsx' const SubJobs = () => { @@ -21,6 +23,9 @@ const SubJobs = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('SubJobs') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('SubJobs') + const actionItems = { items: [ { @@ -54,6 +59,10 @@ const SubJobs = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -71,6 +80,7 @@ const SubJobs = () => { visibleColumns={columnVisibility} cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Sales/Clients.jsx b/src/components/Dashboard/Sales/Clients.jsx index 7531f46..bbedf0f 100644 --- a/src/components/Dashboard/Sales/Clients.jsx +++ b/src/components/Dashboard/Sales/Clients.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -23,6 +25,9 @@ const Clients = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Clients') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Clients') + const actionItems = { items: [ { @@ -63,6 +68,10 @@ const Clients = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -79,6 +88,7 @@ const Clients = () => { type='client' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Sales/Listings.jsx b/src/components/Dashboard/Sales/Listings.jsx index 51d4889..817a4fd 100644 --- a/src/components/Dashboard/Sales/Listings.jsx +++ b/src/components/Dashboard/Sales/Listings.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const Listings = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Listings') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Listings') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const Listings = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const Listings = () => { type='listing' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Sales/Marketplaces.jsx b/src/components/Dashboard/Sales/Marketplaces.jsx index 2b58e8d..409deb0 100644 --- a/src/components/Dashboard/Sales/Marketplaces.jsx +++ b/src/components/Dashboard/Sales/Marketplaces.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const Marketplaces = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('Marketplaces') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('Marketplaces') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const Marketplaces = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const Marketplaces = () => { type='marketplace' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/Sales/SalesOrders.jsx b/src/components/Dashboard/Sales/SalesOrders.jsx index a6a6527..1402033 100644 --- a/src/components/Dashboard/Sales/SalesOrders.jsx +++ b/src/components/Dashboard/Sales/SalesOrders.jsx @@ -7,8 +7,10 @@ import ReloadIcon from '../../Icons/ReloadIcon' import useColumnVisibility from '../hooks/useColumnVisibility' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' +import SortSidebarButton from '../common/SortSidebarButton' import useViewMode from '../hooks/useViewMode' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' +import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' @@ -24,6 +26,9 @@ const SalesOrders = () => { const [showFilterSidebar, setShowFilterSidebar] = useFilterSidebarVisibility('SalesOrders') + const [showSortSidebar, setShowSortSidebar] = + useSortSidebarVisibility('SalesOrders') + const actionItems = { items: [ { @@ -64,6 +69,10 @@ const SalesOrders = () => { + setShowSortSidebar(!showSortSidebar)} + /> setShowFilterSidebar(!showFilterSidebar)} @@ -80,6 +89,7 @@ const SalesOrders = () => { type='salesOrder' cards={viewMode === 'cards'} showFilterSidebar={showFilterSidebar} + showSortSidebar={showSortSidebar} expandHeight={true} saveFilterInSession={true} saveFilterInUrl={true} diff --git a/src/components/Dashboard/common/FilterSidebar.jsx b/src/components/Dashboard/common/FilterSidebar.jsx index 0f3a092..ec7df4a 100644 --- a/src/components/Dashboard/common/FilterSidebar.jsx +++ b/src/components/Dashboard/common/FilterSidebar.jsx @@ -136,7 +136,7 @@ const FilterSidebar = ({ } return ( - + diff --git a/src/components/Dashboard/common/ObjectTable.jsx b/src/components/Dashboard/common/ObjectTable.jsx index 6d3f666..a36655f 100644 --- a/src/components/Dashboard/common/ObjectTable.jsx +++ b/src/components/Dashboard/common/ObjectTable.jsx @@ -37,6 +37,7 @@ import { import ObjectProperty from './ObjectProperty' import ObjectCard from './ObjectCard' import FilterSidebar from './FilterSidebar' +import SortSidebar from './SortSidebar' import XMarkIcon from '../../Icons/XMarkIcon' import CheckIcon from '../../Icons/CheckIcon' import { useLocation } from 'react-router-dom' @@ -120,6 +121,7 @@ const ObjectTable = forwardRef( size = 'middle', onStateChange, showFilterSidebar = false, + showSortSidebar = false, expandHeight = false, showActions = true, saveFilterInSession = false, @@ -156,6 +158,7 @@ const ObjectTable = forwardRef( getPersistedFilter, getPersistedSorter, persistFilter, + persistSort, persistTableState, registerPageFilter } = useTableStatePersistence({ @@ -948,9 +951,32 @@ const ObjectTable = forwardRef( persistFilter(newSidebarFilter) setPages([]) setLoading(true) - loadPage(initialPage, getActiveFilterValues(newSidebarFilter)) + loadPage( + initialPage, + getActiveFilterValues(newSidebarFilter), + tableSorter.field ? tableSorter : null + ) }, - [initialPage, loadPage, persistFilter] + [initialPage, loadPage, persistFilter, tableSorter] + ) + + const handleSidebarSortChange = useCallback( + (newSorter) => { + const nextSorter = newSorter?.field + ? { field: newSorter.field, order: newSorter.order } + : {} + setTableSorter(nextSorter) + tableSorterRef.current = nextSorter + persistSort(nextSorter) + setPages([]) + setLoading(true) + loadPage( + initialPage, + getActiveFilterValues(sidebarFilter), + nextSorter.field ? nextSorter : null + ) + }, + [initialPage, loadPage, persistSort, sidebarFilter] ) const modelProperties = getModelProperties(type) @@ -1161,7 +1187,7 @@ const ObjectTable = forwardRef( useLayoutEffect(() => { if (!cards) return measureCardColSpan() - }, [cards, showFilterSidebar, measureCardColSpan]) + }, [cards, showFilterSidebar, showSortSidebar, measureCardColSpan]) useEffect(() => { return () => cardsResizeObserverRef.current?.disconnect() @@ -1322,14 +1348,32 @@ const ObjectTable = forwardRef( /> )} - {showFilterSidebar && ( + {(showSortSidebar || showFilterSidebar) && ( - + + {showSortSidebar && ( + + )} + {showFilterSidebar && ( + + + + )} + )} @@ -1355,6 +1399,7 @@ ObjectTable.propTypes = { size: PropTypes.string, onStateChange: PropTypes.func, showFilterSidebar: PropTypes.bool, + showSortSidebar: PropTypes.bool, expandHeight: PropTypes.bool, showActions: PropTypes.bool, saveFilterInSession: PropTypes.bool, diff --git a/src/components/Dashboard/common/SortSidebar.jsx b/src/components/Dashboard/common/SortSidebar.jsx new file mode 100644 index 0000000..8d2d62f --- /dev/null +++ b/src/components/Dashboard/common/SortSidebar.jsx @@ -0,0 +1,100 @@ +import { useMemo } from 'react' +import { Card, Select, Button, Flex, Dropdown } from 'antd' +import PropTypes from 'prop-types' +import { + getModelByName, + getModelProperties +} from '../../../database/ObjectModels' +import BinIcon from '../../Icons/BinIcon' + +const DIRECTION_OPTIONS = [ + { label: 'Ascending', value: 'ascend' }, + { label: 'Descending', value: 'descend' } +] + +const SortSidebar = ({ + type, + sorter = {}, + onSortChange, + stretchHeight = false +}) => { + const model = getModelByName(type) + const modelProps = getModelProperties(type) + + const propertyOptions = useMemo(() => { + if (!model.sorters) return [] + return model.sorters + .map((name) => modelProps.find((p) => p.name === name)) + .filter(Boolean) + .map((prop) => ({ + label: prop.label, + value: prop.name + })) + }, [model.sorters, modelProps]) + + const menuItems = { + items: [ + { + key: 'clearSort', + label: 'Clear sort', + danger: true, + icon: , + onClick: () => onSortChange({}) + } + ] + } + + const changeProperty = (field) => { + if (!field) { + onSortChange({}) + return + } + onSortChange({ + field, + order: sorter.order || 'ascend' + }) + } + + const changeDirection = (order) => { + if (!sorter.field) return + onSortChange({ field: sorter.field, order }) + } + + return ( + + + + + + + + + + + ) +} + +SortSidebar.propTypes = { + type: PropTypes.string.isRequired, + sorter: PropTypes.object, + onSortChange: PropTypes.func.isRequired, + stretchHeight: PropTypes.bool +} + +export default SortSidebar diff --git a/src/components/Dashboard/common/SortSidebarButton.jsx b/src/components/Dashboard/common/SortSidebarButton.jsx new file mode 100644 index 0000000..4d561b5 --- /dev/null +++ b/src/components/Dashboard/common/SortSidebarButton.jsx @@ -0,0 +1,27 @@ +import PropTypes from 'prop-types' +import { Button } from 'antd' +import SortCircleFilledIcon from '../../Icons/SortCircleFilledIcon' +import SortCircleIcon from '../../Icons/SortCircleIcon' + +const SortSidebarButton = ({ active, onClick, ...buttonProps }) => ( +