import * as React from "react"; import { cn } from "../../lib/utils"; interface SwitchProps extends Omit, "onChange"> { checked?: boolean; defaultChecked?: boolean; onCheckedChange?: (checked: boolean) => void; } const Switch = React.forwardRef( ( { className, checked, defaultChecked = false, disabled, onCheckedChange, onClick, ...props }, ref, ) => { const isControlled = checked !== undefined; const [internalChecked, setInternalChecked] = React.useState(defaultChecked); const currentChecked = isControlled ? checked : internalChecked; const handleClick = (event: React.MouseEvent) => { onClick?.(event); if (event.defaultPrevented || disabled) { return; } const nextChecked = !currentChecked; if (!isControlled) { setInternalChecked(nextChecked); } onCheckedChange?.(nextChecked); }; return ( ); }, ); Switch.displayName = "Switch"; export { Switch };