@tomino/dynamic-form-semantic-ui
Version:
Semantic UI form renderer based on dynamic form generation
32 lines • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const mobx_react_1 = require("mobx-react");
const semantic_ui_react_1 = require("semantic-ui-react");
const common_1 = require("../common");
const helpers_1 = require("../helpers");
const wrapper_1 = require("../wrapper");
const formRadio = common_1.css `
margin-right: 12px;
margin-bottom: 6px;
`;
exports.RadioComponent = props => {
const { source, disabled, error, owner, value, context } = helpers_1.processControl(props, false);
const [options, schemaSource, vertical] = helpers_1.getValues(props, 'options', 'schemaSource', 'vertical');
const radioValues = schemaSource ? owner.getSchema(schemaSource).$enum : options;
const handleToggleChange = React.useCallback((_, control) => {
helpers_1.setValue(props, context, control.value);
}, [context, props]);
return (React.createElement(wrapper_1.DynamicComponent, Object.assign({}, props), radioValues.map((item) => (React.createElement(React.Fragment, { key: item.value },
React.createElement(semantic_ui_react_1.Radio, { className: formRadio, name: source, label: item.text, disabled: disabled, value: item.value, checked: value === item.value, error: error, onChange: handleToggleChange }),
vertical && React.createElement("br", null))))));
};
exports.RadioView = {
Component: mobx_react_1.observer(exports.RadioComponent),
toString: (_, props, context) => {
const value = helpers_1.getValue(props, context);
return value;
}
};
//# sourceMappingURL=radio_view.js.map