zent
Version:
一套前端设计语言和基于React的实现
29 lines (25 loc) • 736 B
text/typescript
import { useState, useEffect } from 'react';
import { parse } from 'date-fns';
import { RangeTime, DateNullTuple, SingleTime } from '../types';
export default function useTimeValue<T = SingleTime>(
defaultValue: T,
value?: T
) {
const [selected, setSelected] = useState<T>(value ?? defaultValue);
useEffect(() => {
setSelected(value ?? defaultValue);
}, [value, defaultValue]);
return { selected, setSelected };
}
export function parseSelectedToRangeDate(
value: RangeTime,
format: string,
selectedDate: Date
): DateNullTuple {
return value
? [
value[0] ? parse(value[0], format, selectedDate) : null,
value[1] ? parse(value[1], format, selectedDate) : null,
]
: [null, null];
}