From 41c3b84e6578cad5b1b358ec6e2f284e8b454593 Mon Sep 17 00:00:00 2001 From: rustmailer Date: Sun, 21 Jun 2026 12:50:21 +0800 Subject: [PATCH] feat(ui): persist account table sorting to localStorage --- web/src/features/accounts/components/table.tsx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/web/src/features/accounts/components/table.tsx b/web/src/features/accounts/components/table.tsx index c2ba385..3ff597e 100644 --- a/web/src/features/accounts/components/table.tsx +++ b/web/src/features/accounts/components/table.tsx @@ -17,7 +17,7 @@ // along with this program. If not, see . -import { useState } from 'react' +import { useEffect, useRef, useState } from 'react' import { ColumnDef, ColumnFiltersState, @@ -64,7 +64,19 @@ export function AccountTable({ columns, data }: DataTableProps) { const [rowSelection, setRowSelection] = useState({}) const [columnVisibility, setColumnVisibility] = useState({}) const [columnFilters, setColumnFilters] = useState([]) - const [sorting, setSorting] = useState([]) + const [sorting, setSorting] = useState(() => { + const saved = localStorage.getItem('bichon_accounts_sorting'); + return saved ? JSON.parse(saved) : []; + }) + + // Persist sorting state to localStorage + const prevSortingRef = useRef(sorting); + useEffect(() => { + if (prevSortingRef.current !== sorting) { + localStorage.setItem('bichon_accounts_sorting', JSON.stringify(sorting)); + prevSortingRef.current = sorting; + } + }, [sorting]); const table = useReactTable({ data,