mirror of
https://github.com/umami-software/umami.git
synced 2026-02-08 06:37:18 +01:00
Refactor part 2: Electric Boogaloo. Standardize way of passing filter parameters.
This commit is contained in:
parent
f26f1b0581
commit
cdf391d5c2
90 changed files with 867 additions and 709 deletions
|
|
@ -8,7 +8,11 @@ import { useApi } from './useApi';
|
|||
import { useNavigation } from './useNavigation';
|
||||
import { useMemo } from 'react';
|
||||
|
||||
export function useDateRange(websiteId?: string) {
|
||||
export interface UseDateRangeOptions {
|
||||
ignoreOffset?: boolean;
|
||||
}
|
||||
|
||||
export function useDateRange(websiteId?: string, options: UseDateRangeOptions = {}) {
|
||||
const { get } = useApi();
|
||||
const { locale } = useLocale();
|
||||
const {
|
||||
|
|
@ -16,14 +20,16 @@ export function useDateRange(websiteId?: string) {
|
|||
} = useNavigation();
|
||||
const websiteConfig = useWebsites(state => state[websiteId]?.dateRange);
|
||||
const globalConfig = useApp(state => state.dateRangeValue);
|
||||
const dateRangeObject = parseDateRange(
|
||||
date || websiteConfig?.value || globalConfig || DEFAULT_DATE_RANGE_VALUE,
|
||||
locale,
|
||||
);
|
||||
const dateRange = useMemo(
|
||||
() => (offset ? getOffsetDateRange(dateRangeObject, +offset) : dateRangeObject),
|
||||
[date, offset, websiteConfig],
|
||||
);
|
||||
const dateValue = date || websiteConfig?.value || globalConfig || DEFAULT_DATE_RANGE_VALUE;
|
||||
|
||||
const dateRange = useMemo(() => {
|
||||
const dateRangeObject = parseDateRange(dateValue, locale);
|
||||
|
||||
return !options.ignoreOffset && offset
|
||||
? getOffsetDateRange(dateRangeObject, +offset)
|
||||
: dateRangeObject;
|
||||
}, [date, offset, dateValue, options]);
|
||||
|
||||
const dateCompare = useWebsites(state => state[websiteId]?.dateCompare || DEFAULT_DATE_COMPARE);
|
||||
|
||||
const saveDateRange = async (value: string) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue