import { toValue, type Ref } from 'vue' import type { DataOptions, DataTableHeaders } from './types' import { LocalStorageUtility } from '@/utils/localStorageUtility' export type TableOptions = { options?: Partial headers?: DataTableHeaders[] columnWidths?: Record } export default function useStoredOptions({ key, saveState, }: { key: Ref saveState: Ref }): { storedOptions: TableOptions storeOptions: (options: TableOptions) => void } { const localStorageUtility = new LocalStorageUtility() const storedOptions: TableOptions = (saveState.value ? localStorageUtility.getItem(toValue(key)) : {}) || {} function storeOptions(options: TableOptions): void { if (saveState.value) { localStorageUtility.setItem(toValue(key), options) } } return { storedOptions, storeOptions, } }