@aokiapp/rjsf-mantine-theme
Version:
Mantine theme, fields and widgets for react-jsonschema-form
76 lines (71 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var utils = require('@rjsf/utils');
var react = require('react');
var dates = require('@mantine/dates');
var createErrors = require('../utils/createErrors.cjs');
function MantineDateWidget(props) {
const {
id,
placeholder,
label,
hideLabel,
value,
required,
readonly,
disabled,
onChange,
onChangeOverride,
autofocus,
rawErrors,
uiSchema,
hideError,
schema
} = props;
const options = utils.getUiOptions(uiSchema);
const inputValue = value ? fromRawDateStrToUtcTime(value) : null;
const _onChange = react.useCallback(
(value2) => onChange(value2 ? fromUtcTimeToRawDateStr(value2) : void 0),
[onChange]
);
const description = options.description || schema.description;
return /* @__PURE__ */ jsxRuntime.jsx(
dates.DatePickerInput,
{
value: inputValue,
onChange: onChangeOverride || _onChange,
id,
placeholder,
label: utils.labelValue(label, hideLabel, void 0),
required,
clearable: !required,
disabled: disabled || readonly,
autoFocus: autofocus,
error: createErrors.createErrors(rawErrors, hideError),
"aria-describedby": utils.ariaDescribedByIds(id),
...options.props,
className: "armt-widget-date-mt",
description
},
id
);
}
function fromUtcTimeToRawDateStr(value) {
if (value === null) {
return null;
}
const date = new Date(value);
date.setMinutes(date.getMinutes() - (/* @__PURE__ */ new Date()).getTimezoneOffset());
return date.toISOString().split("T")[0];
}
function fromRawDateStrToUtcTime(value) {
if (value === null) {
return null;
}
const date = new Date(value);
date.setMinutes(date.getMinutes() + (/* @__PURE__ */ new Date()).getTimezoneOffset());
return date;
}
exports.default = MantineDateWidget;
//# sourceMappingURL=MantineDateWidget.cjs.map