@tomino/dynamic-form-semantic-ui
Version:
Semantic UI form renderer based on dynamic form generation
30 lines • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const dynamic_form_1 = require("@tomino/dynamic-form");
const semantic_ui_react_1 = require("semantic-ui-react");
const wrapper_1 = require("../wrapper");
const helpers_1 = require("../helpers");
const context_1 = require("../context");
const buttonProps = ['color', 'src', 'icon', 'content'];
exports.ButtonComponent = props => {
const context = React.useContext(context_1.Context);
const onClick = React.useCallback((e) => {
if (props.formElement.props.onClick) {
helpers_1.simpleHandle(props, props.formElement.props.onClick, context, { e });
}
else {
console.error('Button does not define a handler');
}
}, [context, props]);
if (props.readOnly) {
return null;
}
return (React.createElement(wrapper_1.DynamicComponent, Object.assign({}, props, { control: semantic_ui_react_1.Button, controlProps: buttonProps, onClick: onClick, as: props.formElement.props.target ? dynamic_form_1.config.linkElement : undefined }, dynamic_form_1.config.linkElementTarget(props.formElement.props.target))));
};
exports.ButtonComponent.displayName = 'Button';
exports.ButtonView = {
Component: exports.ButtonComponent
};
//# sourceMappingURL=buttons_view.js.map