Files
stalwart-webui-ru/src/features/dashboard/stores/dashboardStore.ts
T
2026-04-20 15:02:57 +02:00

31 строка
792 B
TypeScript

/*
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <hello@stalw.art>
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
import { create } from 'zustand';
import { persist } from 'zustand/middleware';
import type { Period, PresetKey } from '../types/metrics';
interface DashboardState {
period: Period;
setPeriod: (period: Period) => void;
setPreset: (preset: PresetKey) => void;
}
export const useDashboardStore = create<DashboardState>()(
persist(
(set) => ({
period: { kind: 'preset', preset: '24h' } as Period,
setPeriod: (period) => set({ period }),
setPreset: (preset) => set({ period: { kind: 'preset', preset } }),
}),
{
name: 'dashboard.period',
partialize: (state) => ({ period: state.period }),
},
),
);