From 3835d1058e8d7f74609cae7f69930baa9a9599ad Mon Sep 17 00:00:00 2001 From: Yousif Yassi Date: Fri, 2 Sep 2022 10:33:29 -0400 Subject: [PATCH] fix: DEV-3315: Custom column order needs to be different for different tabs --- src/components/Common/Table/Table.js | 9 +++++++-- src/components/Common/TableOld/Table.js | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/components/Common/Table/Table.js b/src/components/Common/Table/Table.js index f46ecc91..ebb062aa 100644 --- a/src/components/Common/Table/Table.js +++ b/src/components/Common/Table/Table.js @@ -105,14 +105,19 @@ export const Table = observer( ...props }) => { const colOrderKey = 'dm:columnorder'; + const tabColOrderKey = `dm:${window.DM.viewsStore.selected.id}:columnorder`; + const defaultOrder = localStorage.getItem(tabColOrderKey) ?? localStorage.getItem(colOrderKey); const tableHead = useRef(); - const [colOrder, setColOrder] = useState(JSON.parse(localStorage.getItem(colOrderKey)) ?? {}); + const [colOrder, setColOrder] = useState(defaultOrder ? JSON.parse(defaultOrder) : {}); const columns = prepareColumns(props.columns, props.hiddenColumns); const Decoration = useMemo(() => Decorator(decoration), [decoration]); const { api } = useSDK(); useEffect(() => { - localStorage.setItem(colOrderKey, JSON.stringify(colOrder)); + const stringifiedColOrder = JSON.stringify(colOrder); + + localStorage.setItem(colOrderKey, stringifiedColOrder); + localStorage.setItem(tabColOrderKey, stringifiedColOrder); }, [colOrder]); if (props.onSelectAll && props.onSelectRow) { diff --git a/src/components/Common/TableOld/Table.js b/src/components/Common/TableOld/Table.js index f9424e52..90191a49 100644 --- a/src/components/Common/TableOld/Table.js +++ b/src/components/Common/TableOld/Table.js @@ -61,15 +61,20 @@ export const Table = observer( ...props }) => { const colOrderKey = 'dm:columnorder'; + const tabColOrderKey = `dm:${window.DM.viewsStore.selected.id}:columnorder`; + const defaultOrder = localStorage.getItem(tabColOrderKey) ?? localStorage.getItem(colOrderKey); const tableHead = useRef(); - const [colOrder, setColOrder] = useState(JSON.parse(localStorage.getItem(colOrderKey)) ?? {}); + const [colOrder, setColOrder] = useState(defaultOrder ? JSON.parse(defaultOrder) : {}); const listRef = useRef(); const columns = prepareColumns(props.columns, props.hiddenColumns); const Decoration = useMemo(() => Decorator(decoration), [decoration]); const { api } = useSDK(); useEffect(() => { - localStorage.setItem(colOrderKey, JSON.stringify(colOrder)); + const stringifiedColOrder = JSON.stringify(colOrder); + + localStorage.setItem(colOrderKey, stringifiedColOrder); + localStorage.setItem(tabColOrderKey, stringifiedColOrder); }, [colOrder]); if (props.onSelectAll && props.onSelectRow) {