|
|
|
@ -26,6 +26,7 @@ interface AppState { |
|
|
|
rasterSources: RasterSource[]; |
|
|
|
commandPaletteOpen: boolean; |
|
|
|
darkMode: boolean; |
|
|
|
notifications: boolean; |
|
|
|
accent: AccentColor; |
|
|
|
connectDialogOpen: boolean; |
|
|
|
|
|
|
|
@ -38,6 +39,7 @@ interface AppState { |
|
|
|
removeDevice: (deviceId: number) => void; |
|
|
|
setCommandPaletteOpen: (open: boolean) => void; |
|
|
|
setDarkMode: (enabled: boolean) => void; |
|
|
|
setNotifications: (enabled: boolean) => void; |
|
|
|
setAccent: (color: AccentColor) => void; |
|
|
|
setConnectDialogOpen: (open: boolean) => void; |
|
|
|
} |
|
|
|
@ -49,6 +51,7 @@ export const useAppStore = create<AppState>()((set) => ({ |
|
|
|
rasterSources: [], |
|
|
|
commandPaletteOpen: false, |
|
|
|
darkMode: window.matchMedia("(prefers-color-scheme: dark)").matches, |
|
|
|
notifications: true, |
|
|
|
accent: "orange", |
|
|
|
connectDialogOpen: false, |
|
|
|
|
|
|
|
@ -99,6 +102,13 @@ export const useAppStore = create<AppState>()((set) => ({ |
|
|
|
}), |
|
|
|
); |
|
|
|
}, |
|
|
|
setNotifications: (enabled: boolean) => { |
|
|
|
set( |
|
|
|
produce<AppState>((draft) => { |
|
|
|
draft.notifications = enabled; |
|
|
|
}), |
|
|
|
); |
|
|
|
}, |
|
|
|
setAccent(color) { |
|
|
|
set( |
|
|
|
produce<AppState>((draft) => { |
|
|
|
|