|
|
|
|
@ -11,7 +11,9 @@ type SwitchProps = {
|
|
|
|
|
className?: string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const Switch = ({ onChange, size = 'md', defaultValue = false, disabled = false, className }: SwitchProps) => {
|
|
|
|
|
const Switch = React.forwardRef(
|
|
|
|
|
({ onChange, size = 'md', defaultValue = false, disabled = false, className }: SwitchProps,
|
|
|
|
|
propRef: React.Ref<HTMLButtonElement>) => {
|
|
|
|
|
const [enabled, setEnabled] = useState(defaultValue)
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
setEnabled(defaultValue)
|
|
|
|
|
@ -38,6 +40,7 @@ const Switch = ({ onChange, size = 'md', defaultValue = false, disabled = false,
|
|
|
|
|
}
|
|
|
|
|
return (
|
|
|
|
|
<OriginalSwitch
|
|
|
|
|
ref={propRef}
|
|
|
|
|
checked={enabled}
|
|
|
|
|
onChange={(checked: boolean) => {
|
|
|
|
|
if (disabled)
|
|
|
|
|
@ -63,7 +66,7 @@ const Switch = ({ onChange, size = 'md', defaultValue = false, disabled = false,
|
|
|
|
|
/>
|
|
|
|
|
</OriginalSwitch>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
Switch.displayName = 'Switch'
|
|
|
|
|
|
|
|
|
|
|