Refactored functionality for all time date range.

This commit is contained in:
Mike Cao 2023-07-26 13:42:55 -07:00
parent c3973f5fb5
commit d06808985b
11 changed files with 91 additions and 33 deletions

View file

@ -1,28 +1,20 @@
import { create } from 'zustand';
import produce from 'immer';
import app from './app';
import { parseDateRange } from 'lib/date';
import { DateRange } from 'lib/types';
const store = create(() => ({}));
export function getWebsiteDateRange(websiteId) {
export function getWebsiteDateRange(websiteId: string) {
return store.getState()?.[websiteId];
}
export function setWebsiteDateRange(websiteId, value) {
export function setWebsiteDateRange(websiteId: string, dateRange: DateRange) {
store.setState(
produce(state => {
if (!state[websiteId]) {
state[websiteId] = {};
}
let dateRange = value;
if (typeof value === 'string') {
const { locale } = app.getState();
dateRange = parseDateRange(value, locale);
}
state[websiteId].dateRange = { ...dateRange, modified: Date.now() };
return state;