UNPKG

@tomino/dynamic-form-semantic-ui

Version:

Semantic UI form renderer based on dynamic form generation

29 lines 1.46 kB
import * as React from 'react'; import { observer } from 'mobx-react'; import { Radio } from 'semantic-ui-react'; import { css } from '../common'; import { processControl, getValues, getValue, setValue } from '../helpers'; import { DynamicComponent } from '../wrapper'; const formRadio = css ` margin-right: 12px; margin-bottom: 6px; `; export const RadioComponent = props => { const { source, disabled, error, owner, value, context } = processControl(props, false); const [options, schemaSource, vertical] = getValues(props, 'options', 'schemaSource', 'vertical'); const radioValues = schemaSource ? owner.getSchema(schemaSource).$enum : options; const handleToggleChange = React.useCallback((_, control) => { setValue(props, context, control.value); }, [context, props]); return (React.createElement(DynamicComponent, Object.assign({}, props), radioValues.map((item) => (React.createElement(React.Fragment, { key: item.value }, React.createElement(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)))))); }; export const RadioView = { Component: observer(RadioComponent), toString: (_, props, context) => { const value = getValue(props, context); return value; } }; //# sourceMappingURL=radio_view.js.map