Remove dayjs and convert existing to Temporal

This commit is contained in:
Ben Grant 2023-05-28 18:00:28 +10:00
parent a74fee9318
commit d2bee83db4
15 changed files with 103 additions and 213 deletions

View file

@ -1,4 +1,4 @@
import { ColorMap } from 'hue-map/dist/maps'
import { MapKey } from 'hue-map/dist/maps'
import { create } from 'zustand'
import { persist } from 'zustand/middleware'
@ -6,17 +6,18 @@ type TimeFormat = '12h' | '24h'
type Theme = 'System' | 'Light' | 'Dark'
interface SettingsStore {
/** 0: Monday, 1: Sunday */
weekStart: 0 | 1
timeFormat: TimeFormat
theme: Theme
highlight: boolean
colormap: 'crabfit' | ColorMap
colormap: 'crabfit' | MapKey
setWeekStart: (weekStart: 0 | 1) => void
setTimeFormat: (timeFormat: TimeFormat) => void
setTheme: (theme: Theme) => void
setHighlight: (highlight: boolean) => void
setColormap: (colormap: 'crabfit' | ColorMap) => void
setColormap: (colormap: 'crabfit' | MapKey) => void
}
const useSettingsStore = create<SettingsStore>()(persist(
@ -33,7 +34,18 @@ const useSettingsStore = create<SettingsStore>()(persist(
setHighlight: highlight => set({ highlight }),
setColormap: colormap => set({ colormap }),
}),
{ name: 'crabfit-settings' },
{
name: 'crabfit-settings',
version: 1,
migrate: (persistedState, version) => {
if (version === 0) {
// Weekstart used to be 0 for Sunday, but now it's been swapped
(persistedState as SettingsStore).weekStart = (persistedState as SettingsStore).weekStart === 1 ? 0 : 1
return persistedState as SettingsStore
}
return persistedState as SettingsStore
},
},
))
export default useSettingsStore