UNPKG

@aokiapp/rjsf-mantine-theme

Version:

Mantine theme, fields and widgets for react-jsonschema-form

76 lines (71 loc) 2 kB
'use strict'; 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