@appbuckets/react-ui-forms
Version:
An utilities package to manage and create Form using AppBuckets ReactUI
95 lines (88 loc) • 2.54 kB
JavaScript
;
var _tslib = require('../_virtual/_tslib.js');
var React = require('react');
var DayPicker = require('@appbuckets/react-ui/DayPicker');
var createHookedField = require('../utils/createHookedField.js');
function _interopDefaultLegacy(e) {
return e && typeof e === 'object' && 'default' in e ? e : { default: e };
}
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(
n,
k,
d.get
? d
: {
enumerable: true,
get: function () {
return e[k];
},
}
);
}
});
}
n['default'] = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/ _interopNamespace(React);
var DayPicker__default = /*#__PURE__*/ _interopDefaultLegacy(DayPicker);
/* --------
* Component Definition
* -------- */
var HookedDayPicker = createHookedField.createHookedField({
displayName: 'HookedDayPicker',
Component: function HookedDayPickerComponent(props) {
var _a = props.rest,
value = _a.value,
onChange = _a.onChange,
userDefinedOnDayChangeHandler = _a.onDayChange;
_a.timestamp;
var rest = _tslib.__rest(_a, [
'value',
'onChange',
'onDayChange',
'timestamp',
]),
meta = props.meta;
// ----
// Internal Day Change Handler
// ----
var handleDayChange = React__namespace.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__namespace.createElement(
DayPicker__default['default'],
_tslib.__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;
},
});
module.exports = HookedDayPicker;