@react-awesome-query-builder/antd
Version:
User-friendly query builder for React. AntDesign widgets
40 lines • 1.37 kB
JavaScript
import React, { useCallback } from "react";
import { Switch, Button } from "antd";
import { LockFilled, UnlockOutlined } from "@ant-design/icons";
export default (function (_ref) {
var value = _ref.value,
setValue = _ref.setValue,
label = _ref.label,
checkedLabel = _ref.checkedLabel,
hideLabel = _ref.hideLabel,
id = _ref.id,
config = _ref.config,
type = _ref.type;
var renderSize = config.settings.renderSize;
var onSwitch = useCallback(function (switchValue) {
return setValue(switchValue);
}, [setValue]);
var onClick = useCallback(function () {
return setValue(!value);
}, [setValue, value]);
var postfix = type;
var showLabel = hideLabel ? null : value ? checkedLabel || label : label;
if (type === "lock") {
return /*#__PURE__*/React.createElement(Button, {
key: id + postfix,
type: value ? "danger" : undefined,
icon: value ? /*#__PURE__*/React.createElement(LockFilled, null) : /*#__PURE__*/React.createElement(UnlockOutlined, null),
onClick: onClick,
checked: !!value,
size: renderSize
}, showLabel);
}
return /*#__PURE__*/React.createElement(Switch, {
key: id + postfix,
checkedChildren: checkedLabel || label,
unCheckedChildren: value ? checkedLabel || label : label,
onChange: onSwitch,
checked: !!value,
size: renderSize
});
});