UNPKG

@skbkontur/db-viewer-ui

Version:

Database Viewer with custom configuration

34 lines 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DateTimePicker = void 0; const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const edi_ui_1 = require("@skbkontur/edi-ui"); const react_1 = tslib_1.__importDefault(require("react")); const DatePicker_1 = require("./DatePicker"); const DateTimePicker_styles_1 = require("./DateTimePicker.styles"); const TimePicker_1 = require("./TimePicker"); function DateTimePicker({ error, defaultTime, value, onChange, timeZone, disabled, }) { const [time, setTime] = react_1.default.useState(null); react_1.default.useEffect(() => setTimeToState(value, timeZone), [value, timeZone]); const handleTimeChange = (newTime) => { if (value === null || value === undefined) { return; } const timeZoneOffset = edi_ui_1.TimeUtils.getTimeZoneOffsetOrDefault(timeZone); const date = edi_ui_1.DateUtils.formatDate(value, "yyyy-MM-dd", timeZoneOffset); const newDateTime = new Date(`${date}T${newTime}${edi_ui_1.TimeUtils.timeZoneOffsetToString(timeZoneOffset)}`); onChange(newDateTime); }; const setTimeToState = (date, timeZone) => { if (date === null || date === undefined) { return; } const timeZoneOffset = edi_ui_1.TimeUtils.getTimeZoneOffsetOrDefault(timeZone); const time = edi_ui_1.DateUtils.formatDate(date, "HH:mm", timeZoneOffset); setTime(time); }; return ((0, jsx_runtime_1.jsxs)("span", { children: [(0, jsx_runtime_1.jsx)("span", { className: DateTimePicker_styles_1.jsStyles.dateRangeItem(), children: (0, jsx_runtime_1.jsx)(DatePicker_1.DatePicker, { "data-tid": "Date", timeZone: timeZone, value: value, defaultTime: time || defaultTime, onChange: onChange, error: error, disabled: disabled, width: 110 }) }), (0, jsx_runtime_1.jsx)("span", { className: DateTimePicker_styles_1.jsStyles.dateRangeItem(), children: (0, jsx_runtime_1.jsx)(TimePicker_1.TimePicker, { "data-tid": "Time", value: time === defaultTime ? null : time, error: error, defaultTime: defaultTime, disabled: disabled || value === null, onChange: (e, time) => handleTimeChange(time) }) })] })); } exports.DateTimePicker = DateTimePicker; //# sourceMappingURL=DateTimePicker.js.map