UNPKG

@carbon/ibm-products

Version:

Carbon for IBM Products

72 lines (68 loc) 2.39 kB
/** * Copyright IBM Corp. 2020, 2025 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ import React__default, { useState, useEffect } from 'react'; import { TimePicker, TimePickerSelect, SelectItem } from '@carbon/react'; import PropTypes from '../../../../_virtual/index.js'; import { blockClass } from '../../utils/util.js'; var _SelectItem, _SelectItem2; const ConditionBuilderItemTime = _ref => { let { onChange, config } = _ref; const [timeValue, setTimeValue] = useState(''); const [dayZoneValue, setDayZoneValue] = useState('AM'); const [timeZoneValue, setTimeZoneValue] = useState(config?.timeZones?.[0]); useEffect(() => { const timeToUpdate = `${timeValue ?? ''} ${dayZoneValue ?? ''} ${timeZoneValue ?? ''}`; onChange(timeValue ? timeToUpdate : undefined); // eslint-disable-next-line react-hooks/exhaustive-deps }, [timeValue, dayZoneValue, timeZoneValue]); const setTimeZone = evt => { setTimeZoneValue(evt.target.value); }; const setDayZone = evt => { setDayZoneValue(evt.target.value); }; const setTime = evt => { setTimeValue(evt.target.value); }; return /*#__PURE__*/React__default.createElement("div", { className: `${blockClass}__item-time` }, /*#__PURE__*/React__default.createElement(TimePicker, { id: "time-picker", labelText: "Select a time", onChange: setTime }, /*#__PURE__*/React__default.createElement(TimePickerSelect, { id: "time-picker-day-zone", onChange: setDayZone }, _SelectItem || (_SelectItem = /*#__PURE__*/React__default.createElement(SelectItem, { value: "AM", text: "AM" })), _SelectItem2 || (_SelectItem2 = /*#__PURE__*/React__default.createElement(SelectItem, { value: "PM", text: "PM" }))), /*#__PURE__*/React__default.createElement(TimePickerSelect, { id: "time-picker-time-zone", onChange: setTimeZone }, config?.timeZones?.map((timeZone, index) => /*#__PURE__*/React__default.createElement(SelectItem, { key: index, value: timeZone, text: timeZone }))))); }; ConditionBuilderItemTime.propTypes = { /** * current config object that this property is part of */ config: PropTypes.object, /** * callback to update state oin date change */ onChange: PropTypes.func }; export { ConditionBuilderItemTime };