UNPKG

react-antd-admin-panel

Version:

Easy prototyping admin panel using React and Antd

66 lines 3.25 kB
import React, { useEffect, useState } from "react"; import { Radio as RadioAnt } from "antd"; import { Form } from 'antd'; const Radio = (props) => { var _a, _b; let model = props.model; let [state, setState] = useState({ value: undefined }); let [loading, setLoading] = useState(false); let [disabled, setDisabled] = useState((_a = model._disabled) !== null && _a !== void 0 ? _a : false); model.tsxSetDisabled = (value) => setDisabled(value); model.tsxClear = () => onClear(); const onChange = ({ value }, settings) => { var _a; model._defaultObject = { value: value }; if (model._formula) model._formula.value(model, model._defaultObject); if (!(settings === null || settings === void 0 ? void 0 : settings.ignoreOnChange)) { (_a = model._onChange) === null || _a === void 0 ? void 0 : _a.call(model, model._defaultObject); } if (!(settings === null || settings === void 0 ? void 0 : settings.ignoreSetState)) { setState({ value: value }); } /** Debug purposes */ if (model._useCache && model._key) { window.localStorage.setItem(`radio:${model._key}`, JSON.stringify(model._defaultObject)); } }; const onUpdate = () => { }; const onClear = () => onChange({}); const onStart = () => { if (model._defaultObject) { let data = model._defaultObject; if (model._formula) model.value(data.value); if (data.dataSource) data.dataSource = dataSourceAlter(data.dataSource); setTimeout(() => onChange(data, { ignoreOnChange: model._ignoreOnChange, ignoreSetState: model._ignoreSetState, }), 0); } else { onClear(); } }; const dataSourceAlter = (data) => { return data; }; useEffect(() => { if (model._useCache && model._key) model.defaultFromCache(); onStart(); }, []); return ( /** TODO */ React.createElement("div", { style: (_b = model._style) !== null && _b !== void 0 ? _b : {} }, React.createElement(Form.Item, { style: { marginBottom: 0 } }, React.createElement(RadioAnt.Group, { value: state.value, disabled: disabled || loading, onChange: (value) => onChange({ value: value.target.value }) }, model._fields.map((r) => { var _a, _b, _c; return React.createElement(RadioAnt, { key: r.getObject().value, value: r.getObject().value, style: { display: 'block', lineHeight: '30px' } }, (_c = (_b = (_a = r._render) === null || _a === void 0 ? void 0 : _a.call(r)) !== null && _b !== void 0 ? _b : r.getObject().title) !== null && _c !== void 0 ? _c : r.getObject().label); })), model._required && model._data === undefined && React.createElement("div", { style: { color: '#ff4d4f', fontSize: 14, fontWeight: 300, paddingTop: 6, paddingBottom: 12 } }, "Required field") || React.createElement("div", { style: { paddingTop: 12 } })))); }; export default Radio; //# sourceMappingURL=Radio.js.map