From bad50e21910149495fce56740a45fd6f9fd794b4 Mon Sep 17 00:00:00 2001 From: Carter Date: Fri, 23 May 2025 13:57:04 -0600 Subject: [PATCH 1/3] saving and loading order and orderBy to and from session storage --- src/pages/Devices.tsx | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/pages/Devices.tsx b/src/pages/Devices.tsx index 09c9ae6..429c296 100644 --- a/src/pages/Devices.tsx +++ b/src/pages/Devices.tsx @@ -92,8 +92,30 @@ export default function Devices() { const [devicesLoading, setDevicesLoading] = useState(false) const [limit, setLimit] = useState(10); const [page, setPage] = useState(0); - const [order, setOrder] = useState<"asc" | "desc">("asc"); - const [orderBy, setOrderBy] = useState("name"); + + const [order, setOrder] = useState<"asc" | "desc">(() => { + // Load from sessionStorage on initial render + const savedOrder = sessionStorage.getItem('order'); + return (savedOrder === "asc" || savedOrder === "desc") ? savedOrder : "asc"; + }); + + // Save to sessionStorage whenever order changes + useEffect(() => { + sessionStorage.setItem('order', order); + }, [order]); + + const [orderBy, setOrderBy] = useState(() => { + // Load from sessionStorage on initial render + const savedOrder = sessionStorage.getItem('orderBy'); + return (savedOrder && savedOrder?.length > 0) ? savedOrder : "name"; + }); + + // Save to sessionStorage whenever order changes + useEffect(() => { + sessionStorage.setItem('orderBy', orderBy); + }, [orderBy]); + + // const [orderBy, setOrderBy] = useState("name"); const [search, setSearch] = useState(""); const [total, setTotal] = useState(0); const [devices, setDevices] = useState([]) From 6f2c6ca255434fc3402e520b3f3e07c9dd7d9ac7 Mon Sep 17 00:00:00 2001 From: Carter Date: Fri, 23 May 2025 14:12:08 -0600 Subject: [PATCH 2/3] clicking new column always starts in ascending, cycling the same column can turn off sorting --- src/common/ResponsiveTable.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/common/ResponsiveTable.tsx b/src/common/ResponsiveTable.tsx index 3f637d3..cd16f01 100644 --- a/src/common/ResponsiveTable.tsx +++ b/src/common/ResponsiveTable.tsx @@ -387,8 +387,21 @@ export default function ResponsiveTable(props: Props) { const columnClick = (column: Column) => { const sortKey = column.sortKey ? column.sortKey : column.title.toLowerCase() // console.log(column.sortKey) - if (setOrderBy) setOrderBy(sortKey) - if (setOrder && order) setOrder(order === "asc" ? "desc" : "asc") + if (setOrderBy) { + if (orderBy === sortKey && setOrder && order) { + console.log(order) + if (order === "desc") { + setOrder("asc") + } else { + setOrderBy("") + } + // setOrder(order === "asc" ? "desc" : "asc") + } else { + if (setOrder) setOrder("desc") + setOrderBy(sortKey) + } + } + // if (setOrder && order) setOrder(order === "asc" ? "desc" : "asc") } const showOrderIcon = (column: Column) => { From 6598c8e14c15aab0950fb2b909b1dba7d4bb26b5 Mon Sep 17 00:00:00 2001 From: Carter Date: Fri, 23 May 2025 14:15:33 -0600 Subject: [PATCH 3/3] git rid of debug output --- src/common/ResponsiveTable.tsx | 1 - src/pages/Devices.tsx | 4 ---- 2 files changed, 5 deletions(-) diff --git a/src/common/ResponsiveTable.tsx b/src/common/ResponsiveTable.tsx index cd16f01..cf8bcc4 100644 --- a/src/common/ResponsiveTable.tsx +++ b/src/common/ResponsiveTable.tsx @@ -389,7 +389,6 @@ export default function ResponsiveTable(props: Props) { // console.log(column.sortKey) if (setOrderBy) { if (orderBy === sortKey && setOrder && order) { - console.log(order) if (order === "desc") { setOrder("asc") } else { diff --git a/src/pages/Devices.tsx b/src/pages/Devices.tsx index 429c296..325af59 100644 --- a/src/pages/Devices.tsx +++ b/src/pages/Devices.tsx @@ -315,10 +315,6 @@ export default function Devices() { if (newValue === "never") openGroupSettings(undefined, "add"); }; - useEffect(() => { - console.log(devices) - }, [devices]) - const columns = (): Column[] => { let columns: Column[] = [ {