UNPKG

@heycar-uikit/core

Version:
30 lines (26 loc) 1.1 kB
import React, { useState, useEffect } from 'react'; import cn from 'classnames'; var styles = {"container":"switch__container_141qq","switch":"switch__switch_141qq"}; require('./styles/default.css'); const Switch = React.forwardRef(({ checked, onChange, disabled = false, className }, ref) => { const classNames = cn(styles.container, className); const [isChecked, setChecked] = useState(checked); useEffect(() => { setChecked(checked); }, [checked]); const handleSwitch = () => { setChecked(!isChecked); onChange(); }; const handleKeyDown = (e) => { if (e?.key === 'Enter') { handleSwitch(); onChange(); } }; return (React.createElement("label", { className: classNames }, React.createElement("input", { checked: isChecked, disabled: disabled, onChange: () => handleSwitch(), ref: ref, type: "checkbox" }), React.createElement("span", { className: styles.switch, tabIndex: 0, onKeyDown: handleKeyDown }))); }); Switch.displayName = 'Switch'; export { Switch, Switch as default };