UNPKG

@react-awesome-query-builder/antd

Version:
32 lines (28 loc) 1.04 kB
import React, { useCallback } from "react"; import { Switch , Button } from "antd"; import { LockFilled, UnlockOutlined } from "@ant-design/icons"; export default ({value, setValue, label, checkedLabel, hideLabel, id, config, type}) => { const {renderSize} = config.settings; const onSwitch = useCallback(switchValue => setValue(switchValue), [setValue]); const onClick = useCallback(() => setValue(!value), [setValue, value]); const postfix = type; const showLabel = hideLabel ? null : (value ? (checkedLabel || label) : label); if (type === "lock") { return <Button key={id+postfix} type={value ? "danger" : undefined} icon={value ? <LockFilled /> : <UnlockOutlined />} onClick={onClick} checked={!!value} size={renderSize} >{showLabel}</Button>; } return <Switch key={id+postfix} checkedChildren={checkedLabel || label} unCheckedChildren={value ? (checkedLabel || label) : label} onChange={onSwitch} checked={!!value} size={renderSize} ></Switch>; };