@talend/react-components
Version:
Set of react components.
79 lines (78 loc) • 3.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Context = require("../Context");
var _timeExtraction = _interopRequireWildcard(require("../time-extraction"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function TimeContextualManager(props) {
const [state, setState] = (0, _react.useState)(() => (0, _timeExtraction.default)(props.value, props.useSeconds));
(0, _react.useEffect)(() => {
const nextState = (0, _timeExtraction.default)(props.value, props.useSeconds);
if (!nextState.errorMessage) {
setState(nextState);
}
}, [props.value, props.useSeconds]);
function onChange(event, origin, nextState) {
setState(nextState);
if (!props.onChange) {
return;
}
props.onChange(event, {
...nextState,
origin
});
}
function onInputChange(event) {
const textInput = event.target.value;
const nextState = (0, _timeExtraction.default)(textInput, props.useSeconds);
onChange(event, 'INPUT', nextState);
}
function onPickerChange(event, {
textInput,
time
}) {
const nextState = {
time,
textInput,
errors: [],
errorMessage: null
};
onChange(event, 'PICKER', nextState);
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Context.TimeContext.Provider, {
value: {
time: {
time: state.time,
textInput: state.textInput,
timezone: props.timezone
},
inputManagement: {
onChange: onInputChange,
placeholder: (0, _timeExtraction.getTimeFormat)(props.useSeconds)
},
pickerManagement: {
onChange: onPickerChange
}
},
children: props.children
});
}
TimeContextualManager.displayName = 'Time.Manager';
TimeContextualManager.defaultProps = {
useSeconds: false
};
TimeContextualManager.propTypes = {
children: _propTypes.default.node,
onChange: _propTypes.default.func,
useSeconds: _propTypes.default.bool,
timezone: _propTypes.default.string,
value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object])
};
var _default = exports.default = TimeContextualManager;
//# sourceMappingURL=Manager.component.js.map