diff --git a/src/components/hooks/useTimeUnit.ts b/src/components/hooks/useTimeUnit.ts index e5f69cb07..dbbe21edd 100644 --- a/src/components/hooks/useTimeUnit.ts +++ b/src/components/hooks/useTimeUnit.ts @@ -1,19 +1,31 @@ +import { DEFAULT_TIME_UNIT, TIME_UNIT_CONFIG } from 'lib/constants'; import { TimeUnit } from 'lib/types'; +import { getItem, setItem } from 'next-basics'; import { useState } from 'react'; +import useStore, { setTimeUnit } from 'store/app'; -export function useTimeUnit(): { - currentTimeUnit: TimeUnit; - timeUnitOptions: TimeUnit[]; - saveTimeUnit: (value: TimeUnit) => void; -} { - const [timeUnit, setTimeUnit] = useState('hour'); +const selector = (state: { timeUnit: string }) => state.timeUnit; + +export function useTimeUnit() { + const storeTimeUnit = useStore(selector) || getItem(TIME_UNIT_CONFIG) || DEFAULT_TIME_UNIT; + const [tempTimeUnit, setTempTimeUnit] = useState(storeTimeUnit); const timeUnitOptions = ['hour', 'day', 'week', 'month', 'year']; - function saveTimeUnit(value: TimeUnit) { - setTimeUnit(value); + function updateTimeUnit(value: TimeUnit) { + setTempTimeUnit(value); } - return { currentTimeUnit: timeUnit, timeUnitOptions, saveTimeUnit }; + function saveTimeUnit() { + setTimeUnit(tempTimeUnit); + setItem(TIME_UNIT_CONFIG, tempTimeUnit); + } + + return { + timeUnit: tempTimeUnit, + timeUnitOptions, + updateTimeUnit, + saveTimeUnit, + }; } export default useTimeUnit;