File size: 563 Bytes
db764ae | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | interface Props {
checked: boolean;
onChange: (checked: boolean) => void;
label?: string;
}
export default function Switch({ checked, onChange, label }: Props) {
return (
<label className="switch">
<button
className={`switch-track ${checked ? "switch-track-on" : ""}`}
onClick={() => onChange(!checked)}
type="button"
role="switch"
aria-checked={checked}
>
<span className="switch-thumb" />
</button>
{label && <span className="switch-label">{label}</span>}
</label>
);
}
|