import useLocalStorage from "@saleor/hooks/useLocalStorage"; import { useEffect } from "react"; import { AppListViewSettings, defaultListSettings } from "./../config"; import { ListSettings, ListViews } from "./../types"; export interface UseListSettings { settings: ListSettings; updateListSettings: (key: keyof ListSettings, value: any) => void; } export default function useListSettings( listName: ListViews ): UseListSettings { const [settings, setListSettings] = useLocalStorage( "listConfig", defaultListSettings ); useEffect(() => { if (settings[listName] === undefined) { setListSettings(settings => ({ ...settings, [listName]: defaultListSettings[listName] })); } }, []); const updateListSettings = (key: keyof ListSettings, value: any) => setListSettings(settings => ({ ...settings, [listName]: { ...settings[listName], [key]: value } })); return { settings: settings[listName] as ListSettings, updateListSettings }; }