UNPKG

@nutui/nutui-react-taro

Version:

京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序

37 lines (36 loc) 1.81 kB
import { _ as __rest } from "./tslib.es6-iWu3F_1J.js"; import React__default from "react"; import { C as ComponentDefaults } from "./typings-DV9RBfhj.js"; import { u as usePropsValue } from "./use-props-value-SH9krhkx.js"; const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { disabled: false, activeText: "", inactiveText: "" }); const Switch = (props) => { const _a = Object.assign(Object.assign({}, defaultProps), props), { checked, defaultChecked, disabled, activeText, inactiveText, className, style, onChange } = _a, rest = __rest(_a, ["checked", "defaultChecked", "disabled", "activeText", "inactiveText", "className", "style", "onChange"]); const classPrefix = "nut-switch"; const [value, setValue] = usePropsValue({ value: checked, defaultValue: defaultChecked }); const classes = () => { return `${classPrefix} ${value ? "nut-switch-open" : "nut-switch-close"} ${disabled ? `${classPrefix}-disabled` : ""} ${`${classPrefix}-base`} ${className}`; }; const onClick = (event) => { if (disabled) return; onChange && onChange(!value, event); setValue(!value); }; return React__default.createElement( "div", Object.assign({ className: classes(), onClick: (e) => onClick(e), style }, rest), React__default.createElement( "div", { className: `${classPrefix}-button` }, !value && React__default.createElement("div", { className: `${classPrefix}-close-line` }), activeText && React__default.createElement(React__default.Fragment, null, value ? React__default.createElement("div", { className: `${classPrefix}-label open` }, activeText) : React__default.createElement("div", { className: `${classPrefix}-label close` }, inactiveText)) ) ); }; Switch.displayName = "NutSwitch"; export { Switch as S };