diff --git a/src/input/Toggle.jsx b/src/input/Toggle.jsx index 3f5208b9..5435982c 100644 --- a/src/input/Toggle.jsx +++ b/src/input/Toggle.jsx @@ -1,20 +1,21 @@ -import React, { useRef } from "react"; +import React, { useCallback, useRef } from "react"; import styles from "./Toggle.module.css"; import { useToggleButton } from "@react-aria/button"; -import { useToggleState } from "@react-stately/toggle"; import classNames from "classnames"; import { Field } from "./Input"; -export function Toggle({ id, label, className, ...rest }) { +export function Toggle({ id, label, className, onChange, isSelected }) { const buttonRef = useRef(); - const state = useToggleState(rest); - const { buttonProps, isPressed } = useToggleButton(rest, state, buttonRef); + const toggle = useCallback(() => { + onChange(!isSelected); + }); + const { buttonProps } = useToggleButton({ isSelected }, { toggle }, buttonRef); return ( @@ -23,7 +24,7 @@ export function Toggle({ id, label, className, ...rest }) { ref={buttonRef} id={id} className={classNames(styles.button, { - [styles.isPressed]: isPressed, + [styles.isPressed]: isSelected, })} >