@trellixio/roaster-coffee
Version:
Beans' product component library
41 lines (38 loc) • 1.28 kB
JavaScript
import * as React from 'react';
import { classNames } from '../../utils/classNames/index.js';
import { useUid } from '../../utils/useUid/index.js';
import '@floating-ui/react';
const Switch = React.forwardRef((props, ref) => {
const {
id,
label,
name,
disabled,
defaultChecked = false,
helpText,
labelClassName,
inputClassName,
onChange
} = props;
const [checked, setChecked] = React.useState(defaultChecked);
const uid = useUid(id);
const handleChange = (event) => {
setChecked(event.currentTarget.checked);
onChange?.(event.currentTarget.checked);
};
return /* @__PURE__ */ React.createElement("label", { htmlFor: uid }, label && /* @__PURE__ */ React.createElement("p", { className: labelClassName }, label), /* @__PURE__ */ React.createElement("span", { className: classNames("switch", inputClassName) }, /* @__PURE__ */ React.createElement(
"input",
{
ref,
type: "checkbox",
name,
id: uid,
checked,
disabled,
onChange: handleChange
}
), /* @__PURE__ */ React.createElement("figure", null)), helpText && /* @__PURE__ */ React.createElement("small", null, helpText));
});
Switch.displayName = "Switch";
export { Switch };
//# sourceMappingURL=Switch.js.map