@skbkontur/db-viewer-ui
Version:
Database Viewer with custom configuration
34 lines • 2.3 kB
JavaScript
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
;