mirror of
https://gitee.com/JavaLionLi/plus-ui.git
synced 2026-09-13 07:43:43 +08:00
26 lines
766 B
TypeScript
26 lines
766 B
TypeScript
import { useCallback, useState } from 'react';
|
|
import type { ConfigType } from 'dayjs';
|
|
import { addDateRange, formatDateTimeRange } from '@/utils/ruoyi';
|
|
|
|
export type DateRangeValue = [ConfigType, ConfigType] | null | undefined;
|
|
|
|
export function useDateRangeQuery(propName?: string) {
|
|
const [dateRange, setDateRange] = useState<DateRangeValue>();
|
|
|
|
const applyDateRange = useCallback(
|
|
<T extends Record<string, unknown>>(queryParams: T, range: DateRangeValue = dateRange) => {
|
|
return addDateRange(queryParams, formatDateTimeRange(range), propName);
|
|
},
|
|
[dateRange, propName]
|
|
);
|
|
|
|
const resetDateRange = useCallback(() => setDateRange(undefined), []);
|
|
|
|
return {
|
|
dateRange,
|
|
setDateRange,
|
|
applyDateRange,
|
|
resetDateRange
|
|
};
|
|
}
|