fix: storage key conflict across stages

This commit is contained in:
Carlos Valente
2025-08-15 20:28:36 +02:00
committed by Carlos Valente
parent efceb930e5
commit 617da68ab5
5 changed files with 25 additions and 8 deletions
@@ -4,21 +4,29 @@ import { ColumnDef } from '@tanstack/react-table';
import { OntimeEntry } from 'ontime-types';
import { debounce } from '../../../common/utils/debounce';
import { makeStageKey } from '../../../common/utils/localStorage';
const tableSizesKey = makeStageKey('cuesheet-sizes');
const tableHiddenKey = makeStageKey('cuesheet-hidden');
const tableOrderKey = makeStageKey('cuesheet-order');
const saveSizesToStorage = debounce((sizes: Record<string, number>) => {
localStorage.setItem('table-sizes', JSON.stringify(sizes));
localStorage.setItem(tableSizesKey, JSON.stringify(sizes));
}, 500);
export default function useColumnManager(columns: ColumnDef<OntimeEntry>[]) {
const [columnVisibility, setColumnVisibility] = useLocalStorage({ key: 'table-hidden', defaultValue: {} });
const [columnVisibility, setColumnVisibility] = useLocalStorage({
key: tableHiddenKey,
defaultValue: {},
});
const [columnOrder, saveColumnOrder] = useLocalStorage<string[]>({
key: 'table-order',
key: tableOrderKey,
defaultValue: columns.map((col) => col.id as string),
});
const [columnSizing, setColumnSizingState] = useState(() => {
try {
const stored = localStorage.getItem('table-sizes');
const stored = localStorage.getItem(tableSizesKey);
return stored ? JSON.parse(stored) : {};
} catch {
return {};