UNPKG

@indec/form-builder

Version:

Form builder

51 lines (50 loc) 2.31 kB
"use strict"; 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;