@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
30 lines (29 loc) • 777 B
JavaScript
"use client";
import { useCallback, useRef } from 'react';
export default function usePartialDates() {
const partialDatesRef = useRef({
partialStartDate: null,
partialEndDate: null
});
const setPartialDates = useCallback(partialDates => {
const nonPartialDates = Object.entries(partialDates).reduce((dates, [dateKey, dateValue]) => {
if (isFullyFilledOut(dateValue)) {
dates[dateKey] = null;
}
return dates;
}, {});
partialDatesRef.current = {
...partialDatesRef.current,
...partialDates,
...nonPartialDates
};
}, []);
return {
partialDatesRef,
setPartialDates
};
}
function isFullyFilledOut(date) {
return /^\d{4}-\d{2}-\d{2}$/.test(date);
}
//# sourceMappingURL=usePartialDates.js.map