@elliemae/ds-form-date-time-picker 3.55.0-next.8 → 3.55.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/config/useChangeHandlers.js +19 -19
- package/dist/cjs/config/useChangeHandlers.js.map +2 -2
- package/dist/cjs/config/useRelevantValueFromProps.js +15 -21
- package/dist/cjs/config/useRelevantValueFromProps.js.map +2 -2
- package/dist/esm/config/useChangeHandlers.js +19 -19
- package/dist/esm/config/useChangeHandlers.js.map +2 -2
- package/dist/esm/config/useRelevantValueFromProps.js +16 -22
- package/dist/esm/config/useRelevantValueFromProps.js.map +2 -2
- package/dist/types/config/useRelevantValueFromProps.d.ts +4 -2
- package/package.json +11 -11
|
@@ -38,7 +38,7 @@ var import_timeHelpers = require("../utils/timeHelpers.js");
|
|
|
38
38
|
var import_stringHelpers = require("../utils/stringHelpers.js");
|
|
39
39
|
var import_constants = require("../utils/constants.js");
|
|
40
40
|
const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }) => {
|
|
41
|
-
const {
|
|
41
|
+
const { tempDateString, setTempDateString, tempTimeString, setTimeString } = relevantValues;
|
|
42
42
|
const {
|
|
43
43
|
getIsDisabledDay,
|
|
44
44
|
getIsOutOfRangeDay,
|
|
@@ -60,34 +60,34 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
60
60
|
const { trackFocusFirstSegment } = focusTrackers;
|
|
61
61
|
const getDateMetaInfo = (0, import_react.useCallback)(
|
|
62
62
|
(newDateString = null, metaInfo = {}) => {
|
|
63
|
-
const finalDateString = newDateString ||
|
|
63
|
+
const finalDateString = newDateString || tempDateString;
|
|
64
64
|
const finalMetaInfo = {
|
|
65
65
|
...metaInfo,
|
|
66
66
|
...(0, import_dateHelpers.getValidationDateStringMetaInfo)(finalDateString, getIsOutOfRangeDay, getIsDisabledDay)
|
|
67
67
|
};
|
|
68
68
|
return finalMetaInfo;
|
|
69
69
|
},
|
|
70
|
-
[
|
|
70
|
+
[tempDateString, getIsDisabledDay, getIsOutOfRangeDay]
|
|
71
71
|
);
|
|
72
72
|
const getTimeMetaInfo = (0, import_react.useCallback)(
|
|
73
73
|
(newTimeString = null, metaInfo = {}) => {
|
|
74
|
-
const finalTimeString = newTimeString ||
|
|
74
|
+
const finalTimeString = newTimeString || tempTimeString;
|
|
75
75
|
const finalMetaInfo = {
|
|
76
76
|
...metaInfo,
|
|
77
77
|
...(0, import_timeHelpers.getValidationTimeStringMetaInfo)(finalTimeString, getIsDisabledTime)
|
|
78
78
|
};
|
|
79
79
|
return finalMetaInfo;
|
|
80
80
|
},
|
|
81
|
-
[
|
|
81
|
+
[tempTimeString, getIsDisabledTime]
|
|
82
82
|
);
|
|
83
83
|
const handleChangeComposedDateTimeString = (0, import_react.useCallback)(
|
|
84
84
|
(newDateString, newTimeString, metaInfo) => {
|
|
85
85
|
const appDateString = (0, import_stringHelpers.isEmptyDateStringMask)(newDateString) ? "" : newDateString;
|
|
86
86
|
const appTimeString = (0, import_stringHelpers.isEmptyTimeStringMask)(newTimeString) ? "" : newTimeString;
|
|
87
87
|
appOnDateChange(appDateString, metaInfo);
|
|
88
|
-
|
|
88
|
+
setTempDateString(newDateString);
|
|
89
89
|
appOnTimeChange(appTimeString, metaInfo);
|
|
90
|
-
|
|
90
|
+
setTimeString(newTimeString);
|
|
91
91
|
const newDateTimeString = `${newDateString} ${newTimeString}`;
|
|
92
92
|
const newMetaInfo = {
|
|
93
93
|
...metaInfo,
|
|
@@ -102,9 +102,9 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
102
102
|
},
|
|
103
103
|
[
|
|
104
104
|
appOnDateChange,
|
|
105
|
-
|
|
105
|
+
setTempDateString,
|
|
106
106
|
appOnTimeChange,
|
|
107
|
-
|
|
107
|
+
setTimeString,
|
|
108
108
|
getTimeMetaInfo,
|
|
109
109
|
getDateMetaInfo,
|
|
110
110
|
appOnDateTimeChange
|
|
@@ -114,39 +114,39 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
114
114
|
(newDateString, metaInfo) => {
|
|
115
115
|
const appDateString = (0, import_stringHelpers.isEmptyDateStringMask)(newDateString) ? "" : newDateString;
|
|
116
116
|
appOnDateChange(appDateString, metaInfo);
|
|
117
|
-
|
|
118
|
-
const newDateTimeString = `${newDateString} ${
|
|
117
|
+
setTempDateString(newDateString);
|
|
118
|
+
const newDateTimeString = `${newDateString} ${tempTimeString}`;
|
|
119
119
|
const newMetaInfo = {
|
|
120
120
|
...metaInfo,
|
|
121
|
-
...getTimeMetaInfo(
|
|
121
|
+
...getTimeMetaInfo(tempTimeString, metaInfo),
|
|
122
122
|
...getDateMetaInfo(newDateString, metaInfo),
|
|
123
123
|
newDateString,
|
|
124
|
-
newTimeString:
|
|
124
|
+
newTimeString: tempTimeString,
|
|
125
125
|
newDateTimeString
|
|
126
126
|
};
|
|
127
127
|
const appDateTimeString = (0, import_stringHelpers.isEmptyDateTimeStringMask)(newDateTimeString) ? "" : newDateTimeString;
|
|
128
128
|
appOnDateTimeChange(appDateTimeString, newMetaInfo);
|
|
129
129
|
},
|
|
130
|
-
[appOnDateChange,
|
|
130
|
+
[appOnDateChange, setTempDateString, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
|
|
131
131
|
);
|
|
132
132
|
const handleChangeComposedTimeString = (0, import_react.useCallback)(
|
|
133
133
|
(newTimeString, metaInfo) => {
|
|
134
134
|
const appTimeString = (0, import_stringHelpers.isEmptyTimeStringMask)(newTimeString) ? "" : newTimeString;
|
|
135
135
|
appOnTimeChange(appTimeString, metaInfo);
|
|
136
|
-
|
|
137
|
-
const newDateTimeString = `${
|
|
136
|
+
setTimeString(newTimeString);
|
|
137
|
+
const newDateTimeString = `${tempDateString} ${newTimeString}`;
|
|
138
138
|
const newMetaInfo = {
|
|
139
139
|
...metaInfo,
|
|
140
140
|
...getTimeMetaInfo(newTimeString, metaInfo),
|
|
141
|
-
...getDateMetaInfo(
|
|
141
|
+
...getDateMetaInfo(tempDateString, metaInfo),
|
|
142
142
|
newDateTimeString,
|
|
143
|
-
newDateString:
|
|
143
|
+
newDateString: tempDateString,
|
|
144
144
|
newTimeString
|
|
145
145
|
};
|
|
146
146
|
const appDateTimeString = (0, import_stringHelpers.isEmptyDateTimeStringMask)(newDateTimeString) ? "" : newDateTimeString;
|
|
147
147
|
appOnDateTimeChange(appDateTimeString, newMetaInfo);
|
|
148
148
|
},
|
|
149
|
-
[appOnTimeChange,
|
|
149
|
+
[appOnTimeChange, setTimeString, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
|
|
150
150
|
);
|
|
151
151
|
const handleChangeMonth = (0, import_react.useCallback)(
|
|
152
152
|
(newMonth, e, metaInfo = import_constants.defaultMetaInfo) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/config/useChangeHandlers.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useCallback, useMemo } from 'react';\nimport type { useRelevantValueFromProps } from './useRelevantValueFromProps.js';\nimport type { useGetDestructuredValues } from './useGetDestructuredValues.js';\nimport type { useGetPropsBasedOnType } from './useGetPropsBasedOnType.js';\nimport type { useGetReferences } from './useGetReferences.js';\nimport type { useFocusTracker } from './useFocusTracker.js';\nimport { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';\nimport { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';\nimport {\n isEmptyDateStringMask,\n isEmptyTimeStringMask,\n isEmptyDateTimeStringMask,\n getFormattedDateString,\n getFormattedTimeString,\n} from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../sharedTypes.js';\nimport { defaultMetaInfo } from '../utils/constants.js';\ninterface Config {\n relevantValues: ReturnType<typeof useRelevantValueFromProps>;\n destructuredValues: ReturnType<typeof useGetDestructuredValues>;\n propsBasedOnType: ReturnType<typeof useGetPropsBasedOnType>;\n DOMRefs: ReturnType<typeof useGetReferences>;\n focusTrackers: ReturnType<typeof useFocusTracker>;\n}\n\nexport const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }: Config) => {\n const { tempDateStringRef, tempTimeStringRef } = relevantValues;\n const {\n getIsDisabledDay,\n getIsOutOfRangeDay,\n appOnDateChange,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledTime,\n appOnTimeChange,\n appOnHourChange,\n appOnMinuteChange,\n appOnMeridiemChange,\n appOnDateTimeChange,\n isDateTime,\n isDate,\n isTime,\n } = propsBasedOnType;\n const { month, day, year, hours, minutes, meridiem } = destructuredValues;\n const { trackFocusFirstSegment } = focusTrackers;\n\n const getDateMetaInfo = useCallback(\n (\n newDateString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalDateString = newDateString || tempDateStringRef.current;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay),\n };\n return finalMetaInfo;\n },\n [tempDateStringRef, getIsDisabledDay, getIsOutOfRangeDay],\n );\n\n const getTimeMetaInfo = useCallback(\n (\n newTimeString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalTimeString = newTimeString || tempTimeStringRef.current;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime),\n };\n return finalMetaInfo;\n },\n [tempTimeStringRef, getIsDisabledTime],\n );\n\n const handleChangeComposedDateTimeString = useCallback(\n (\n newDateString: string,\n newTimeString: string,\n metaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo,\n ): void => {\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempDateStringRef.current = newDateString; // use ref to avoid re-render\n\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempTimeStringRef.current = newTimeString;\n\n const newDateTimeString = `${newDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [\n appOnDateChange,\n tempDateStringRef,\n appOnTimeChange,\n tempTimeStringRef,\n getTimeMetaInfo,\n getDateMetaInfo,\n appOnDateTimeChange,\n ],\n );\n const handleChangeComposedDateString = useCallback(\n (newDateString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n // if we receive an \"empty\" mask, we comunicate empty string to the app\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempDateStringRef.current = newDateString;\n const newDateTimeString = `${newDateString} ${tempTimeStringRef.current}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(tempTimeStringRef.current, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString: tempTimeStringRef.current,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnDateChange, tempDateStringRef, tempTimeStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n const handleChangeComposedTimeString = useCallback(\n (newTimeString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n\n tempTimeStringRef.current = newTimeString;\n const newDateTimeString = `${tempDateStringRef.current} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(tempDateStringRef.current, metaInfo),\n newDateTimeString,\n newDateString: tempDateStringRef.current,\n newTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnTimeChange, tempTimeStringRef, tempDateStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n\n const handleChangeMonth: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMonth, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month: newMonth,\n day,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnMonthChange(newMonth, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString],\n );\n const handleChangeDay: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newDay, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day: newDay,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnDayChange(newDay, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString],\n );\n const handleChangeYear: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newYear, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day,\n year: newYear,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnYearChange(newYear, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString],\n );\n\n const handleChangeHours: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newHours, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours: newHours,\n minutes,\n // seconds,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnHourChange(newHours, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString],\n );\n const handleChangeMinutes: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMinutes, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes: newMinutes,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMinuteChange(newMinutes, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString],\n );\n const handleChangeMeridiem: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMeridiem, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes,\n meridiem: newMeridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMeridiemChange(newMeridiem, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString],\n );\n\n const handleClearAll: DSControlledDateTimePickerInternalsT.OnDSBtnClick = useCallback(\n (e) => {\n const metaInfo = {\n isAutomaticFillTrigger: false,\n isClearButtonAction: true,\n newDateString: '',\n newTimeString: '',\n newDateTimeString: '',\n };\n appOnMonthChange('', e, metaInfo);\n appOnDayChange('', e, metaInfo);\n appOnYearChange('', e, metaInfo);\n appOnHourChange('', e, metaInfo);\n appOnMinuteChange('', e, metaInfo);\n appOnMeridiemChange('', e, metaInfo);\n if (isDateTime) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);\n if (isDate) handleChangeComposedDateString('__/__/____', metaInfo);\n if (isTime) handleChangeComposedTimeString('__:__ __', metaInfo);\n trackFocusFirstSegment();\n },\n [\n appOnDayChange,\n appOnHourChange,\n appOnMeridiemChange,\n appOnMinuteChange,\n appOnMonthChange,\n appOnYearChange,\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n isDate,\n isDateTime,\n isTime,\n trackFocusFirstSegment,\n ],\n );\n\n return useMemo(\n () => ({\n handleChangeComposedDateTimeString,\n handleChangeComposedDateString,\n handleChangeComposedTimeString,\n handleChangeMonth,\n handleChangeDay,\n handleChangeYear,\n handleChangeHours,\n handleChangeMinutes,\n handleChangeMeridiem,\n handleClearAll,\n }),\n [\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n handleChangeDay,\n handleChangeHours,\n handleChangeMeridiem,\n handleChangeMinutes,\n handleChangeMonth,\n handleChangeYear,\n handleClearAll,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADGvB,mBAAqC;AAMrC,yBAAgD;AAChD,yBAAgD;AAChD,2BAMO;AAGP,uBAAgC;AASzB,MAAM,oBAAoB,CAAC,EAAE,gBAAgB,oBAAoB,kBAAkB,cAAc,MAAc;AACpH,QAAM,EAAE,mBAAmB,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useCallback, useMemo } from 'react';\nimport type { useRelevantValueFromProps } from './useRelevantValueFromProps.js';\nimport type { useGetDestructuredValues } from './useGetDestructuredValues.js';\nimport type { useGetPropsBasedOnType } from './useGetPropsBasedOnType.js';\nimport type { useGetReferences } from './useGetReferences.js';\nimport type { useFocusTracker } from './useFocusTracker.js';\nimport { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';\nimport { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';\nimport {\n isEmptyDateStringMask,\n isEmptyTimeStringMask,\n isEmptyDateTimeStringMask,\n getFormattedDateString,\n getFormattedTimeString,\n} from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../sharedTypes.js';\nimport { defaultMetaInfo } from '../utils/constants.js';\ninterface Config {\n relevantValues: ReturnType<typeof useRelevantValueFromProps>;\n destructuredValues: ReturnType<typeof useGetDestructuredValues>;\n propsBasedOnType: ReturnType<typeof useGetPropsBasedOnType>;\n DOMRefs: ReturnType<typeof useGetReferences>;\n focusTrackers: ReturnType<typeof useFocusTracker>;\n}\n\nexport const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }: Config) => {\n const { tempDateString, setTempDateString, tempTimeString, setTimeString } = relevantValues;\n const {\n getIsDisabledDay,\n getIsOutOfRangeDay,\n appOnDateChange,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledTime,\n appOnTimeChange,\n appOnHourChange,\n appOnMinuteChange,\n appOnMeridiemChange,\n appOnDateTimeChange,\n isDateTime,\n isDate,\n isTime,\n } = propsBasedOnType;\n const { month, day, year, hours, minutes, meridiem } = destructuredValues;\n const { trackFocusFirstSegment } = focusTrackers;\n\n const getDateMetaInfo = useCallback(\n (\n newDateString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalDateString = newDateString || tempDateString;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay),\n };\n return finalMetaInfo;\n },\n [tempDateString, getIsDisabledDay, getIsOutOfRangeDay],\n );\n\n const getTimeMetaInfo = useCallback(\n (\n newTimeString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalTimeString = newTimeString || tempTimeString;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime),\n };\n return finalMetaInfo;\n },\n [tempTimeString, getIsDisabledTime],\n );\n\n const handleChangeComposedDateTimeString = useCallback(\n (\n newDateString: string,\n newTimeString: string,\n metaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo,\n ): void => {\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTempDateString(newDateString);\n\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTimeString(newTimeString);\n\n const newDateTimeString = `${newDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [\n appOnDateChange,\n setTempDateString,\n appOnTimeChange,\n setTimeString,\n getTimeMetaInfo,\n getDateMetaInfo,\n appOnDateTimeChange,\n ],\n );\n const handleChangeComposedDateString = useCallback(\n (newDateString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n // if we receive an \"empty\" mask, we comunicate empty string to the app\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTempDateString(newDateString);\n const newDateTimeString = `${newDateString} ${tempTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(tempTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString: tempTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnDateChange, setTempDateString, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n const handleChangeComposedTimeString = useCallback(\n (newTimeString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n\n setTimeString(newTimeString);\n const newDateTimeString = `${tempDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(tempDateString, metaInfo),\n newDateTimeString,\n newDateString: tempDateString,\n newTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnTimeChange, setTimeString, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n\n const handleChangeMonth: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMonth, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month: newMonth,\n day,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnMonthChange(newMonth, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString],\n );\n const handleChangeDay: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newDay, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day: newDay,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnDayChange(newDay, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString],\n );\n const handleChangeYear: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newYear, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day,\n year: newYear,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnYearChange(newYear, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString],\n );\n\n const handleChangeHours: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newHours, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours: newHours,\n minutes,\n // seconds,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnHourChange(newHours, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString],\n );\n const handleChangeMinutes: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMinutes, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes: newMinutes,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMinuteChange(newMinutes, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString],\n );\n const handleChangeMeridiem: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMeridiem, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes,\n meridiem: newMeridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMeridiemChange(newMeridiem, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString],\n );\n\n const handleClearAll: DSControlledDateTimePickerInternalsT.OnDSBtnClick = useCallback(\n (e) => {\n const metaInfo = {\n isAutomaticFillTrigger: false,\n isClearButtonAction: true,\n newDateString: '',\n newTimeString: '',\n newDateTimeString: '',\n };\n appOnMonthChange('', e, metaInfo);\n appOnDayChange('', e, metaInfo);\n appOnYearChange('', e, metaInfo);\n appOnHourChange('', e, metaInfo);\n appOnMinuteChange('', e, metaInfo);\n appOnMeridiemChange('', e, metaInfo);\n if (isDateTime) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);\n if (isDate) handleChangeComposedDateString('__/__/____', metaInfo);\n if (isTime) handleChangeComposedTimeString('__:__ __', metaInfo);\n trackFocusFirstSegment();\n },\n [\n appOnDayChange,\n appOnHourChange,\n appOnMeridiemChange,\n appOnMinuteChange,\n appOnMonthChange,\n appOnYearChange,\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n isDate,\n isDateTime,\n isTime,\n trackFocusFirstSegment,\n ],\n );\n\n return useMemo(\n () => ({\n handleChangeComposedDateTimeString,\n handleChangeComposedDateString,\n handleChangeComposedTimeString,\n handleChangeMonth,\n handleChangeDay,\n handleChangeYear,\n handleChangeHours,\n handleChangeMinutes,\n handleChangeMeridiem,\n handleClearAll,\n }),\n [\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n handleChangeDay,\n handleChangeHours,\n handleChangeMeridiem,\n handleChangeMinutes,\n handleChangeMonth,\n handleChangeYear,\n handleClearAll,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -36,34 +36,28 @@ var import_react = require("react");
|
|
|
36
36
|
var import_typeGuards = require("../utils/typeGuards.js");
|
|
37
37
|
var import_stringHelpers = require("../utils/stringHelpers.js");
|
|
38
38
|
const useRelevantValueFromProps = (props) => {
|
|
39
|
-
const isDateTime = (0, import_typeGuards.getIsDateTime)(props);
|
|
40
|
-
const isDate = (0, import_typeGuards.getIsDate)(props);
|
|
41
|
-
const isTime = (0, import_typeGuards.getIsTime)(props);
|
|
42
|
-
const { dateTime } = props;
|
|
43
|
-
const time = isTime ? props.time : "";
|
|
44
|
-
const date = isDate ? props.date : "";
|
|
45
|
-
const tempDateStringRef = (0, import_react.useRef)("__/__/____");
|
|
46
39
|
const dateStringFromProps = (0, import_react.useMemo)(() => {
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}, [isDate, isDateTime, date, dateTime]);
|
|
52
|
-
const tempTimeStringRef = (0, import_react.useRef)("__:__ __");
|
|
40
|
+
if ((0, import_typeGuards.getIsDateTime)(props)) return props.dateTime !== "" ? (0, import_stringHelpers.dateTimeToDate)(props.dateTime) : "__/__/____";
|
|
41
|
+
if ((0, import_typeGuards.getIsDate)(props)) return props.date !== "" ? props.date : "__/__/____";
|
|
42
|
+
return "__/__/____";
|
|
43
|
+
}, [props]);
|
|
53
44
|
const timeStringFromProps = (0, import_react.useMemo)(() => {
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
45
|
+
if ((0, import_typeGuards.getIsDateTime)(props)) return props.dateTime !== "" ? (0, import_stringHelpers.dateTimeToTime)(props.dateTime) : "__:__ __";
|
|
46
|
+
if ((0, import_typeGuards.getIsTime)(props)) return props.time !== "" ? props.time : "__:__ __";
|
|
47
|
+
return "__:__ __";
|
|
48
|
+
}, [props]);
|
|
49
|
+
const [tempDateString, setTempDateString] = (0, import_react.useState)(dateStringFromProps);
|
|
50
|
+
const [tempTimeString, setTimeString] = (0, import_react.useState)(timeStringFromProps);
|
|
59
51
|
return (0, import_react.useMemo)(
|
|
60
52
|
() => ({
|
|
61
53
|
dateStringFromProps,
|
|
62
54
|
timeStringFromProps,
|
|
63
|
-
|
|
64
|
-
|
|
55
|
+
tempDateString,
|
|
56
|
+
setTempDateString,
|
|
57
|
+
tempTimeString,
|
|
58
|
+
setTimeString
|
|
65
59
|
}),
|
|
66
|
-
[dateStringFromProps, timeStringFromProps]
|
|
60
|
+
[dateStringFromProps, tempDateString, tempTimeString, timeStringFromProps]
|
|
67
61
|
);
|
|
68
62
|
};
|
|
69
63
|
//# sourceMappingURL=useRelevantValueFromProps.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/config/useRelevantValueFromProps.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo, useState } from 'react';\nimport { getIsDateTime, getIsDate, getIsTime } from '../utils/typeGuards.js';\nimport { dateTimeToTime, dateTimeToDate } from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\n\nexport const useRelevantValueFromProps = (props: DSControlledDateTimePickerT.InternalProps) => {\n const dateStringFromProps = useMemo(() => {\n if (getIsDateTime(props)) return props.dateTime !== '' ? dateTimeToDate(props.dateTime) : '__/__/____';\n if (getIsDate(props)) return props.date !== '' ? props.date : '__/__/____';\n return '__/__/____';\n }, [props]);\n const timeStringFromProps = useMemo(() => {\n if (getIsDateTime(props)) return props.dateTime !== '' ? dateTimeToTime(props.dateTime) : '__:__ __';\n if (getIsTime(props)) return props.time !== '' ? props.time : '__:__ __';\n return '__:__ __';\n }, [props]);\n\n // don't use tempDateString to trigger useEffect for onDateChange\n // that is an anti-pattern and leads to a lot of issue\n // if you don't believe me, check date-time-picker v1 which is doing it\n const [tempDateString, setTempDateString] = useState(dateStringFromProps);\n // don't use tempTimeString to trigger useEffect for onTimeChange\n // that is an anti-pattern and leads to a lot of issue\n // if you don't believe me, check date-time-picker v1 which is doing it\n const [tempTimeString, setTimeString] = useState(timeStringFromProps);\n\n return useMemo(\n () => ({\n dateStringFromProps,\n timeStringFromProps,\n tempDateString,\n setTempDateString,\n tempTimeString,\n setTimeString,\n }),\n [dateStringFromProps, tempDateString, tempTimeString, timeStringFromProps],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAAkC;AAClC,wBAAoD;AACpD,2BAA+C;AAGxC,MAAM,4BAA4B,CAAC,UAAqD;AAC7F,QAAM,0BAAsB,sBAAQ,MAAM;AACxC,YAAI,iCAAc,KAAK,EAAG,QAAO,MAAM,aAAa,SAAK,qCAAe,MAAM,QAAQ,IAAI;AAC1F,YAAI,6BAAU,KAAK,EAAG,QAAO,MAAM,SAAS,KAAK,MAAM,OAAO;AAC9D,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AACV,QAAM,0BAAsB,sBAAQ,MAAM;AACxC,YAAI,iCAAc,KAAK,EAAG,QAAO,MAAM,aAAa,SAAK,qCAAe,MAAM,QAAQ,IAAI;AAC1F,YAAI,6BAAU,KAAK,EAAG,QAAO,MAAM,SAAS,KAAK,MAAM,OAAO;AAC9D,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AAKV,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,uBAAS,mBAAmB;AAIxE,QAAM,CAAC,gBAAgB,aAAa,QAAI,uBAAS,mBAAmB;AAEpE,aAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,qBAAqB,gBAAgB,gBAAgB,mBAAmB;AAAA,EAC3E;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "../utils/stringHelpers.js";
|
|
12
12
|
import { defaultMetaInfo } from "../utils/constants.js";
|
|
13
13
|
const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }) => {
|
|
14
|
-
const {
|
|
14
|
+
const { tempDateString, setTempDateString, tempTimeString, setTimeString } = relevantValues;
|
|
15
15
|
const {
|
|
16
16
|
getIsDisabledDay,
|
|
17
17
|
getIsOutOfRangeDay,
|
|
@@ -33,34 +33,34 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
33
33
|
const { trackFocusFirstSegment } = focusTrackers;
|
|
34
34
|
const getDateMetaInfo = useCallback(
|
|
35
35
|
(newDateString = null, metaInfo = {}) => {
|
|
36
|
-
const finalDateString = newDateString ||
|
|
36
|
+
const finalDateString = newDateString || tempDateString;
|
|
37
37
|
const finalMetaInfo = {
|
|
38
38
|
...metaInfo,
|
|
39
39
|
...getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay)
|
|
40
40
|
};
|
|
41
41
|
return finalMetaInfo;
|
|
42
42
|
},
|
|
43
|
-
[
|
|
43
|
+
[tempDateString, getIsDisabledDay, getIsOutOfRangeDay]
|
|
44
44
|
);
|
|
45
45
|
const getTimeMetaInfo = useCallback(
|
|
46
46
|
(newTimeString = null, metaInfo = {}) => {
|
|
47
|
-
const finalTimeString = newTimeString ||
|
|
47
|
+
const finalTimeString = newTimeString || tempTimeString;
|
|
48
48
|
const finalMetaInfo = {
|
|
49
49
|
...metaInfo,
|
|
50
50
|
...getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime)
|
|
51
51
|
};
|
|
52
52
|
return finalMetaInfo;
|
|
53
53
|
},
|
|
54
|
-
[
|
|
54
|
+
[tempTimeString, getIsDisabledTime]
|
|
55
55
|
);
|
|
56
56
|
const handleChangeComposedDateTimeString = useCallback(
|
|
57
57
|
(newDateString, newTimeString, metaInfo) => {
|
|
58
58
|
const appDateString = isEmptyDateStringMask(newDateString) ? "" : newDateString;
|
|
59
59
|
const appTimeString = isEmptyTimeStringMask(newTimeString) ? "" : newTimeString;
|
|
60
60
|
appOnDateChange(appDateString, metaInfo);
|
|
61
|
-
|
|
61
|
+
setTempDateString(newDateString);
|
|
62
62
|
appOnTimeChange(appTimeString, metaInfo);
|
|
63
|
-
|
|
63
|
+
setTimeString(newTimeString);
|
|
64
64
|
const newDateTimeString = `${newDateString} ${newTimeString}`;
|
|
65
65
|
const newMetaInfo = {
|
|
66
66
|
...metaInfo,
|
|
@@ -75,9 +75,9 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
75
75
|
},
|
|
76
76
|
[
|
|
77
77
|
appOnDateChange,
|
|
78
|
-
|
|
78
|
+
setTempDateString,
|
|
79
79
|
appOnTimeChange,
|
|
80
|
-
|
|
80
|
+
setTimeString,
|
|
81
81
|
getTimeMetaInfo,
|
|
82
82
|
getDateMetaInfo,
|
|
83
83
|
appOnDateTimeChange
|
|
@@ -87,39 +87,39 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
87
87
|
(newDateString, metaInfo) => {
|
|
88
88
|
const appDateString = isEmptyDateStringMask(newDateString) ? "" : newDateString;
|
|
89
89
|
appOnDateChange(appDateString, metaInfo);
|
|
90
|
-
|
|
91
|
-
const newDateTimeString = `${newDateString} ${
|
|
90
|
+
setTempDateString(newDateString);
|
|
91
|
+
const newDateTimeString = `${newDateString} ${tempTimeString}`;
|
|
92
92
|
const newMetaInfo = {
|
|
93
93
|
...metaInfo,
|
|
94
|
-
...getTimeMetaInfo(
|
|
94
|
+
...getTimeMetaInfo(tempTimeString, metaInfo),
|
|
95
95
|
...getDateMetaInfo(newDateString, metaInfo),
|
|
96
96
|
newDateString,
|
|
97
|
-
newTimeString:
|
|
97
|
+
newTimeString: tempTimeString,
|
|
98
98
|
newDateTimeString
|
|
99
99
|
};
|
|
100
100
|
const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? "" : newDateTimeString;
|
|
101
101
|
appOnDateTimeChange(appDateTimeString, newMetaInfo);
|
|
102
102
|
},
|
|
103
|
-
[appOnDateChange,
|
|
103
|
+
[appOnDateChange, setTempDateString, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
|
|
104
104
|
);
|
|
105
105
|
const handleChangeComposedTimeString = useCallback(
|
|
106
106
|
(newTimeString, metaInfo) => {
|
|
107
107
|
const appTimeString = isEmptyTimeStringMask(newTimeString) ? "" : newTimeString;
|
|
108
108
|
appOnTimeChange(appTimeString, metaInfo);
|
|
109
|
-
|
|
110
|
-
const newDateTimeString = `${
|
|
109
|
+
setTimeString(newTimeString);
|
|
110
|
+
const newDateTimeString = `${tempDateString} ${newTimeString}`;
|
|
111
111
|
const newMetaInfo = {
|
|
112
112
|
...metaInfo,
|
|
113
113
|
...getTimeMetaInfo(newTimeString, metaInfo),
|
|
114
|
-
...getDateMetaInfo(
|
|
114
|
+
...getDateMetaInfo(tempDateString, metaInfo),
|
|
115
115
|
newDateTimeString,
|
|
116
|
-
newDateString:
|
|
116
|
+
newDateString: tempDateString,
|
|
117
117
|
newTimeString
|
|
118
118
|
};
|
|
119
119
|
const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? "" : newDateTimeString;
|
|
120
120
|
appOnDateTimeChange(appDateTimeString, newMetaInfo);
|
|
121
121
|
},
|
|
122
|
-
[appOnTimeChange,
|
|
122
|
+
[appOnTimeChange, setTimeString, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
|
|
123
123
|
);
|
|
124
124
|
const handleChangeMonth = useCallback(
|
|
125
125
|
(newMonth, e, metaInfo = defaultMetaInfo) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useChangeHandlers.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useCallback, useMemo } from 'react';\nimport type { useRelevantValueFromProps } from './useRelevantValueFromProps.js';\nimport type { useGetDestructuredValues } from './useGetDestructuredValues.js';\nimport type { useGetPropsBasedOnType } from './useGetPropsBasedOnType.js';\nimport type { useGetReferences } from './useGetReferences.js';\nimport type { useFocusTracker } from './useFocusTracker.js';\nimport { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';\nimport { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';\nimport {\n isEmptyDateStringMask,\n isEmptyTimeStringMask,\n isEmptyDateTimeStringMask,\n getFormattedDateString,\n getFormattedTimeString,\n} from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../sharedTypes.js';\nimport { defaultMetaInfo } from '../utils/constants.js';\ninterface Config {\n relevantValues: ReturnType<typeof useRelevantValueFromProps>;\n destructuredValues: ReturnType<typeof useGetDestructuredValues>;\n propsBasedOnType: ReturnType<typeof useGetPropsBasedOnType>;\n DOMRefs: ReturnType<typeof useGetReferences>;\n focusTrackers: ReturnType<typeof useFocusTracker>;\n}\n\nexport const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }: Config) => {\n const { tempDateStringRef, tempTimeStringRef } = relevantValues;\n const {\n getIsDisabledDay,\n getIsOutOfRangeDay,\n appOnDateChange,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledTime,\n appOnTimeChange,\n appOnHourChange,\n appOnMinuteChange,\n appOnMeridiemChange,\n appOnDateTimeChange,\n isDateTime,\n isDate,\n isTime,\n } = propsBasedOnType;\n const { month, day, year, hours, minutes, meridiem } = destructuredValues;\n const { trackFocusFirstSegment } = focusTrackers;\n\n const getDateMetaInfo = useCallback(\n (\n newDateString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalDateString = newDateString || tempDateStringRef.current;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay),\n };\n return finalMetaInfo;\n },\n [tempDateStringRef, getIsDisabledDay, getIsOutOfRangeDay],\n );\n\n const getTimeMetaInfo = useCallback(\n (\n newTimeString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalTimeString = newTimeString || tempTimeStringRef.current;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime),\n };\n return finalMetaInfo;\n },\n [tempTimeStringRef, getIsDisabledTime],\n );\n\n const handleChangeComposedDateTimeString = useCallback(\n (\n newDateString: string,\n newTimeString: string,\n metaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo,\n ): void => {\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempDateStringRef.current = newDateString; // use ref to avoid re-render\n\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempTimeStringRef.current = newTimeString;\n\n const newDateTimeString = `${newDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [\n appOnDateChange,\n tempDateStringRef,\n appOnTimeChange,\n tempTimeStringRef,\n getTimeMetaInfo,\n getDateMetaInfo,\n appOnDateTimeChange,\n ],\n );\n const handleChangeComposedDateString = useCallback(\n (newDateString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n // if we receive an \"empty\" mask, we comunicate empty string to the app\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempDateStringRef.current = newDateString;\n const newDateTimeString = `${newDateString} ${tempTimeStringRef.current}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(tempTimeStringRef.current, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString: tempTimeStringRef.current,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnDateChange, tempDateStringRef, tempTimeStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n const handleChangeComposedTimeString = useCallback(\n (newTimeString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n\n tempTimeStringRef.current = newTimeString;\n const newDateTimeString = `${tempDateStringRef.current} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(tempDateStringRef.current, metaInfo),\n newDateTimeString,\n newDateString: tempDateStringRef.current,\n newTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnTimeChange, tempTimeStringRef, tempDateStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n\n const handleChangeMonth: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMonth, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month: newMonth,\n day,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnMonthChange(newMonth, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString],\n );\n const handleChangeDay: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newDay, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day: newDay,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnDayChange(newDay, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString],\n );\n const handleChangeYear: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newYear, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day,\n year: newYear,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnYearChange(newYear, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString],\n );\n\n const handleChangeHours: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newHours, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours: newHours,\n minutes,\n // seconds,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnHourChange(newHours, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString],\n );\n const handleChangeMinutes: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMinutes, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes: newMinutes,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMinuteChange(newMinutes, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString],\n );\n const handleChangeMeridiem: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMeridiem, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes,\n meridiem: newMeridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMeridiemChange(newMeridiem, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString],\n );\n\n const handleClearAll: DSControlledDateTimePickerInternalsT.OnDSBtnClick = useCallback(\n (e) => {\n const metaInfo = {\n isAutomaticFillTrigger: false,\n isClearButtonAction: true,\n newDateString: '',\n newTimeString: '',\n newDateTimeString: '',\n };\n appOnMonthChange('', e, metaInfo);\n appOnDayChange('', e, metaInfo);\n appOnYearChange('', e, metaInfo);\n appOnHourChange('', e, metaInfo);\n appOnMinuteChange('', e, metaInfo);\n appOnMeridiemChange('', e, metaInfo);\n if (isDateTime) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);\n if (isDate) handleChangeComposedDateString('__/__/____', metaInfo);\n if (isTime) handleChangeComposedTimeString('__:__ __', metaInfo);\n trackFocusFirstSegment();\n },\n [\n appOnDayChange,\n appOnHourChange,\n appOnMeridiemChange,\n appOnMinuteChange,\n appOnMonthChange,\n appOnYearChange,\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n isDate,\n isDateTime,\n isTime,\n trackFocusFirstSegment,\n ],\n );\n\n return useMemo(\n () => ({\n handleChangeComposedDateTimeString,\n handleChangeComposedDateString,\n handleChangeComposedTimeString,\n handleChangeMonth,\n handleChangeDay,\n handleChangeYear,\n handleChangeHours,\n handleChangeMinutes,\n handleChangeMeridiem,\n handleClearAll,\n }),\n [\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n handleChangeDay,\n handleChangeHours,\n handleChangeMeridiem,\n handleChangeMinutes,\n handleChangeMonth,\n handleChangeYear,\n handleClearAll,\n ],\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACGvB,SAAS,aAAa,eAAe;AAMrC,SAAS,uCAAuC;AAChD,SAAS,uCAAuC;AAChD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,SAAS,uBAAuB;AASzB,MAAM,oBAAoB,CAAC,EAAE,gBAAgB,oBAAoB,kBAAkB,cAAc,MAAc;AACpH,QAAM,EAAE,mBAAmB,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useCallback, useMemo } from 'react';\nimport type { useRelevantValueFromProps } from './useRelevantValueFromProps.js';\nimport type { useGetDestructuredValues } from './useGetDestructuredValues.js';\nimport type { useGetPropsBasedOnType } from './useGetPropsBasedOnType.js';\nimport type { useGetReferences } from './useGetReferences.js';\nimport type { useFocusTracker } from './useFocusTracker.js';\nimport { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';\nimport { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';\nimport {\n isEmptyDateStringMask,\n isEmptyTimeStringMask,\n isEmptyDateTimeStringMask,\n getFormattedDateString,\n getFormattedTimeString,\n} from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../sharedTypes.js';\nimport { defaultMetaInfo } from '../utils/constants.js';\ninterface Config {\n relevantValues: ReturnType<typeof useRelevantValueFromProps>;\n destructuredValues: ReturnType<typeof useGetDestructuredValues>;\n propsBasedOnType: ReturnType<typeof useGetPropsBasedOnType>;\n DOMRefs: ReturnType<typeof useGetReferences>;\n focusTrackers: ReturnType<typeof useFocusTracker>;\n}\n\nexport const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }: Config) => {\n const { tempDateString, setTempDateString, tempTimeString, setTimeString } = relevantValues;\n const {\n getIsDisabledDay,\n getIsOutOfRangeDay,\n appOnDateChange,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledTime,\n appOnTimeChange,\n appOnHourChange,\n appOnMinuteChange,\n appOnMeridiemChange,\n appOnDateTimeChange,\n isDateTime,\n isDate,\n isTime,\n } = propsBasedOnType;\n const { month, day, year, hours, minutes, meridiem } = destructuredValues;\n const { trackFocusFirstSegment } = focusTrackers;\n\n const getDateMetaInfo = useCallback(\n (\n newDateString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalDateString = newDateString || tempDateString;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay),\n };\n return finalMetaInfo;\n },\n [tempDateString, getIsDisabledDay, getIsOutOfRangeDay],\n );\n\n const getTimeMetaInfo = useCallback(\n (\n newTimeString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalTimeString = newTimeString || tempTimeString;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime),\n };\n return finalMetaInfo;\n },\n [tempTimeString, getIsDisabledTime],\n );\n\n const handleChangeComposedDateTimeString = useCallback(\n (\n newDateString: string,\n newTimeString: string,\n metaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo,\n ): void => {\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTempDateString(newDateString);\n\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTimeString(newTimeString);\n\n const newDateTimeString = `${newDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [\n appOnDateChange,\n setTempDateString,\n appOnTimeChange,\n setTimeString,\n getTimeMetaInfo,\n getDateMetaInfo,\n appOnDateTimeChange,\n ],\n );\n const handleChangeComposedDateString = useCallback(\n (newDateString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n // if we receive an \"empty\" mask, we comunicate empty string to the app\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTempDateString(newDateString);\n const newDateTimeString = `${newDateString} ${tempTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(tempTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString: tempTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnDateChange, setTempDateString, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n const handleChangeComposedTimeString = useCallback(\n (newTimeString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n\n setTimeString(newTimeString);\n const newDateTimeString = `${tempDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(tempDateString, metaInfo),\n newDateTimeString,\n newDateString: tempDateString,\n newTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnTimeChange, setTimeString, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n\n const handleChangeMonth: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMonth, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month: newMonth,\n day,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnMonthChange(newMonth, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString],\n );\n const handleChangeDay: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newDay, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day: newDay,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnDayChange(newDay, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString],\n );\n const handleChangeYear: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newYear, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day,\n year: newYear,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnYearChange(newYear, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString],\n );\n\n const handleChangeHours: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newHours, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours: newHours,\n minutes,\n // seconds,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnHourChange(newHours, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString],\n );\n const handleChangeMinutes: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMinutes, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes: newMinutes,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMinuteChange(newMinutes, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString],\n );\n const handleChangeMeridiem: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMeridiem, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes,\n meridiem: newMeridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMeridiemChange(newMeridiem, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString],\n );\n\n const handleClearAll: DSControlledDateTimePickerInternalsT.OnDSBtnClick = useCallback(\n (e) => {\n const metaInfo = {\n isAutomaticFillTrigger: false,\n isClearButtonAction: true,\n newDateString: '',\n newTimeString: '',\n newDateTimeString: '',\n };\n appOnMonthChange('', e, metaInfo);\n appOnDayChange('', e, metaInfo);\n appOnYearChange('', e, metaInfo);\n appOnHourChange('', e, metaInfo);\n appOnMinuteChange('', e, metaInfo);\n appOnMeridiemChange('', e, metaInfo);\n if (isDateTime) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);\n if (isDate) handleChangeComposedDateString('__/__/____', metaInfo);\n if (isTime) handleChangeComposedTimeString('__:__ __', metaInfo);\n trackFocusFirstSegment();\n },\n [\n appOnDayChange,\n appOnHourChange,\n appOnMeridiemChange,\n appOnMinuteChange,\n appOnMonthChange,\n appOnYearChange,\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n isDate,\n isDateTime,\n isTime,\n trackFocusFirstSegment,\n ],\n );\n\n return useMemo(\n () => ({\n handleChangeComposedDateTimeString,\n handleChangeComposedDateString,\n handleChangeComposedTimeString,\n handleChangeMonth,\n handleChangeDay,\n handleChangeYear,\n handleChangeHours,\n handleChangeMinutes,\n handleChangeMeridiem,\n handleClearAll,\n }),\n [\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n handleChangeDay,\n handleChangeHours,\n handleChangeMeridiem,\n handleChangeMinutes,\n handleChangeMonth,\n handleChangeYear,\n handleClearAll,\n ],\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,36 +1,30 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { useMemo,
|
|
2
|
+
import { useMemo, useState } from "react";
|
|
3
3
|
import { getIsDateTime, getIsDate, getIsTime } from "../utils/typeGuards.js";
|
|
4
4
|
import { dateTimeToTime, dateTimeToDate } from "../utils/stringHelpers.js";
|
|
5
5
|
const useRelevantValueFromProps = (props) => {
|
|
6
|
-
const isDateTime = getIsDateTime(props);
|
|
7
|
-
const isDate = getIsDate(props);
|
|
8
|
-
const isTime = getIsTime(props);
|
|
9
|
-
const { dateTime } = props;
|
|
10
|
-
const time = isTime ? props.time : "";
|
|
11
|
-
const date = isDate ? props.date : "";
|
|
12
|
-
const tempDateStringRef = useRef("__/__/____");
|
|
13
6
|
const dateStringFromProps = useMemo(() => {
|
|
14
|
-
if (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}, [isDate, isDateTime, date, dateTime]);
|
|
19
|
-
const tempTimeStringRef = useRef("__:__ __");
|
|
7
|
+
if (getIsDateTime(props)) return props.dateTime !== "" ? dateTimeToDate(props.dateTime) : "__/__/____";
|
|
8
|
+
if (getIsDate(props)) return props.date !== "" ? props.date : "__/__/____";
|
|
9
|
+
return "__/__/____";
|
|
10
|
+
}, [props]);
|
|
20
11
|
const timeStringFromProps = useMemo(() => {
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
12
|
+
if (getIsDateTime(props)) return props.dateTime !== "" ? dateTimeToTime(props.dateTime) : "__:__ __";
|
|
13
|
+
if (getIsTime(props)) return props.time !== "" ? props.time : "__:__ __";
|
|
14
|
+
return "__:__ __";
|
|
15
|
+
}, [props]);
|
|
16
|
+
const [tempDateString, setTempDateString] = useState(dateStringFromProps);
|
|
17
|
+
const [tempTimeString, setTimeString] = useState(timeStringFromProps);
|
|
26
18
|
return useMemo(
|
|
27
19
|
() => ({
|
|
28
20
|
dateStringFromProps,
|
|
29
21
|
timeStringFromProps,
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
tempDateString,
|
|
23
|
+
setTempDateString,
|
|
24
|
+
tempTimeString,
|
|
25
|
+
setTimeString
|
|
32
26
|
}),
|
|
33
|
-
[dateStringFromProps, timeStringFromProps]
|
|
27
|
+
[dateStringFromProps, tempDateString, tempTimeString, timeStringFromProps]
|
|
34
28
|
);
|
|
35
29
|
};
|
|
36
30
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useRelevantValueFromProps.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo, useState } from 'react';\nimport { getIsDateTime, getIsDate, getIsTime } from '../utils/typeGuards.js';\nimport { dateTimeToTime, dateTimeToDate } from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\n\nexport const useRelevantValueFromProps = (props: DSControlledDateTimePickerT.InternalProps) => {\n const dateStringFromProps = useMemo(() => {\n if (getIsDateTime(props)) return props.dateTime !== '' ? dateTimeToDate(props.dateTime) : '__/__/____';\n if (getIsDate(props)) return props.date !== '' ? props.date : '__/__/____';\n return '__/__/____';\n }, [props]);\n const timeStringFromProps = useMemo(() => {\n if (getIsDateTime(props)) return props.dateTime !== '' ? dateTimeToTime(props.dateTime) : '__:__ __';\n if (getIsTime(props)) return props.time !== '' ? props.time : '__:__ __';\n return '__:__ __';\n }, [props]);\n\n // don't use tempDateString to trigger useEffect for onDateChange\n // that is an anti-pattern and leads to a lot of issue\n // if you don't believe me, check date-time-picker v1 which is doing it\n const [tempDateString, setTempDateString] = useState(dateStringFromProps);\n // don't use tempTimeString to trigger useEffect for onTimeChange\n // that is an anti-pattern and leads to a lot of issue\n // if you don't believe me, check date-time-picker v1 which is doing it\n const [tempTimeString, setTimeString] = useState(timeStringFromProps);\n\n return useMemo(\n () => ({\n dateStringFromProps,\n timeStringFromProps,\n tempDateString,\n setTempDateString,\n tempTimeString,\n setTimeString,\n }),\n [dateStringFromProps, tempDateString, tempTimeString, timeStringFromProps],\n );\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACEvB,SAAS,SAAS,gBAAgB;AAClC,SAAS,eAAe,WAAW,iBAAiB;AACpD,SAAS,gBAAgB,sBAAsB;AAGxC,MAAM,4BAA4B,CAAC,UAAqD;AAC7F,QAAM,sBAAsB,QAAQ,MAAM;AACxC,QAAI,cAAc,KAAK,EAAG,QAAO,MAAM,aAAa,KAAK,eAAe,MAAM,QAAQ,IAAI;AAC1F,QAAI,UAAU,KAAK,EAAG,QAAO,MAAM,SAAS,KAAK,MAAM,OAAO;AAC9D,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AACV,QAAM,sBAAsB,QAAQ,MAAM;AACxC,QAAI,cAAc,KAAK,EAAG,QAAO,MAAM,aAAa,KAAK,eAAe,MAAM,QAAQ,IAAI;AAC1F,QAAI,UAAU,KAAK,EAAG,QAAO,MAAM,SAAS,KAAK,MAAM,OAAO;AAC9D,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AAKV,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,mBAAmB;AAIxE,QAAM,CAAC,gBAAgB,aAAa,IAAI,SAAS,mBAAmB;AAEpE,SAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,qBAAqB,gBAAgB,gBAAgB,mBAAmB;AAAA,EAC3E;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,8 @@ import type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';
|
|
|
2
2
|
export declare const useRelevantValueFromProps: (props: DSControlledDateTimePickerT.InternalProps) => {
|
|
3
3
|
dateStringFromProps: string;
|
|
4
4
|
timeStringFromProps: string;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
tempDateString: string;
|
|
6
|
+
setTempDateString: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
7
|
+
tempTimeString: string;
|
|
8
|
+
setTimeString: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
7
9
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-form-date-time-picker",
|
|
3
|
-
"version": "3.55.
|
|
3
|
+
"version": "3.55.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Controlled Form Date Time Picker",
|
|
6
6
|
"files": [
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"indent": 4
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@elliemae/ds-accessibility": "3.55.
|
|
40
|
-
"@elliemae/ds-
|
|
41
|
-
"@elliemae/ds-
|
|
42
|
-
"@elliemae/ds-
|
|
43
|
-
"@elliemae/ds-
|
|
44
|
-
"@elliemae/ds-
|
|
45
|
-
"@elliemae/ds-
|
|
46
|
-
"@elliemae/ds-typescript-helpers": "3.55.
|
|
39
|
+
"@elliemae/ds-accessibility": "3.55.1",
|
|
40
|
+
"@elliemae/ds-button-v2": "3.55.1",
|
|
41
|
+
"@elliemae/ds-grid": "3.55.1",
|
|
42
|
+
"@elliemae/ds-popperjs": "3.55.1",
|
|
43
|
+
"@elliemae/ds-icons": "3.55.1",
|
|
44
|
+
"@elliemae/ds-props-helpers": "3.55.1",
|
|
45
|
+
"@elliemae/ds-system": "3.55.1",
|
|
46
|
+
"@elliemae/ds-typescript-helpers": "3.55.1"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@elliemae/pui-cli": "9.0.0-next.65",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"jest": "~29.7.0",
|
|
52
52
|
"styled-components": "~5.3.9",
|
|
53
53
|
"styled-system": "^5.1.5",
|
|
54
|
-
"@elliemae/ds-monorepo-devops": "3.55.
|
|
55
|
-
"@elliemae/ds-test-utils": "3.55.
|
|
54
|
+
"@elliemae/ds-monorepo-devops": "3.55.1",
|
|
55
|
+
"@elliemae/ds-test-utils": "3.55.1"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@elliemae/pui-theme": "~2.13.0",
|