UNPKG

@i-novus/ui-core

Version:

Базовые UI компоненты

26 lines (25 loc) 938 B
import { useCallback } from 'react'; import { OUTPUT_FORMAT } from '../../../const'; import { getValidDayjs, cutDateByAccuracy } from '../../../dayjs-utils'; const prepareValue = (value, limiter, format, dateAccuracy) => { let date = getValidDayjs(value, format); const { min, max } = limiter; date = cutDateByAccuracy(date, dateAccuracy); if (!date) { return null; } if (min && date < min) { return min.format(OUTPUT_FORMAT); } if (max && (date > max)) { return max.format(OUTPUT_FORMAT); } return date.format(OUTPUT_FORMAT); }; export const useHandleInputCompleteHook = (callback, config) => { const { min, max, format, dateAccuracy } = config; return (useCallback((value) => { const validISODateString = prepareValue(value, { min, max }, format, dateAccuracy); callback(validISODateString); }, [min, max, format, dateAccuracy, callback])); };