@indec/form-builder
Version:
Form builder
51 lines (50 loc) • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _FieldMessage = _interopRequireDefault(require("../../FieldMessage"));
var _InputLabel = _interopRequireDefault(require("../../InputLabel"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
function MobileRadio(_ref) {
var options = _ref.options,
field = _ref.field,
_ref$disabled = _ref.disabled,
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
label = _ref.label,
form = _ref.form,
_ref$warnings = _ref.warnings,
warnings = _ref$warnings === void 0 ? {} : _ref$warnings;
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: "fb:flex fb:flex-col fb:w-full",
"data-testid": "radio",
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_InputLabel["default"], {
warnings: warnings,
form: form,
field: field,
label: label,
disabled: disabled
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: "fb:flex fb:flex-col fb:space-y-2 fb:mt-2",
children: options.map(function (option, index) {
return /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
"data-testid": "radio-".concat(index),
type: "button",
disabled: disabled,
className: "fb:px-4 fb:py-2 fb:text-sm fb:font-medium fb:rounded-md fb:border fb:transition-colors fb:duration-200 ".concat(option.value === field.value ? 'fb:bg-blue-600 fb:text-white fb:border-blue-600 hover:fb:bg-blue-700' : 'fb:bg-white fb:text-gray-700 fb:border-gray-300 hover:fb:bg-gray-50', " ").concat(disabled ? 'fb:opacity-50 fb:cursor-not-allowed' : 'fb:cursor-pointer focus:fb:outline-none focus:fb:ring-2 focus:fb:ring-blue-500 focus:fb:ring-offset-2'),
onClick: function onClick() {
form.setFieldValue(field.name, option.value === field.value ? '' : option.value);
form.setFieldTouched(field.name, false);
},
children: option.label
}, option.value);
})
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FieldMessage["default"], {
form: form,
field: field,
warnings: warnings
})]
});
}
var _default = exports["default"] = MobileRadio;