@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
58 lines (57 loc) • 2.06 kB
JavaScript
;
"use client";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _index = _interopRequireDefault(require("../String/index.js"));
var _useTranslation = _interopRequireDefault(require("../../hooks/useTranslation.js"));
var _Context = _interopRequireDefault(require("../../../../shared/Context.js"));
var _withComponentMarkers = _interopRequireDefault(require("../../../../shared/helpers/withComponentMarkers.js"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function TimeComponent(props) {
var _props$locale, _props$label;
const translations = (0, _useTranslation.default)().Time;
const {
locale: contextLocale
} = (0, _react.useContext)(_Context.default);
const locale = (_props$locale = props.locale) !== null && _props$locale !== void 0 ? _props$locale : contextLocale;
const toInput = (0, _react.useCallback)(value => {
if (!value) {
return undefined;
}
const parts = value.split(':');
if (parts.length < 2) {
return value;
}
const [hours, minutes, seconds] = parts;
if (hours === '24') {
return seconds ? `${hours}:${minutes}:${seconds}` : `${hours}:${minutes}`;
}
const date = new Date(1970, 0, 1);
date.setHours(Number(hours), Number(minutes), Number(seconds) || 0);
const options = {
hour: '2-digit',
minute: '2-digit',
...(seconds ? {
second: '2-digit'
} : {})
};
return new Intl.DateTimeFormat(locale, options).format(date);
}, [locale]);
const stringProps = {
...props,
label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : translations.label,
toInput
};
return (0, _jsxRuntime.jsx)(_index.default, {
...stringProps
});
}
(0, _withComponentMarkers.default)(TimeComponent, {
_supportsSpacingProps: true
});
var _default = exports.default = TimeComponent;
//# sourceMappingURL=Time.js.map