@appbuckets/react-ui-forms
Version:
An utilities package to manage and create Form using AppBuckets ReactUI
55 lines (52 loc) • 1.62 kB
JavaScript
import { __rest, __assign } from '../_virtual/_tslib.js';
import * as React from 'react';
import DayPicker from '@appbuckets/react-ui/DayPicker';
import { createHookedField } from '../utils/createHookedField.js';
/* --------
* Component Definition
* -------- */
var HookedDayPicker = createHookedField({
displayName: 'HookedDayPicker',
Component: function HookedDayPickerComponent(props) {
var _a = props.rest,
value = _a.value,
onChange = _a.onChange,
userDefinedOnDayChangeHandler = _a.onDayChange;
_a.timestamp;
var rest = __rest(_a, ['value', 'onChange', 'onDayChange', 'timestamp']),
meta = props.meta;
// ----
// Internal Day Change Handler
// ----
var handleDayChange = React.useCallback(
function (nothing, dayPickerProps) {
/** Call the internal on change function */
onChange(nothing, dayPickerProps);
/** Call user defined handler if exists */
if (typeof userDefinedOnDayChangeHandler === 'function') {
userDefinedOnDayChangeHandler(nothing, dayPickerProps);
}
},
[onChange, userDefinedOnDayChangeHandler]
);
return React.createElement(
DayPicker,
__assign({}, rest, meta.appearance, {
date: value,
hint: meta.message,
onDayChange: handleDayChange,
})
);
},
parseValue: function (_a) {
var props = _a.props;
if (
(props === null || props === void 0 ? void 0 : props.date) &&
props.date instanceof Date
) {
return props.date;
}
return null;
},
});
export { HookedDayPicker as default };