@carbon/ibm-products
Version:
Carbon for IBM Products
72 lines (68 loc) • 2.39 kB
JavaScript
/**
* 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 };