import React, { useCallback, useId } from 'react'; import { ToggleFieldBox } from './ToggleField.styled'; export type ToggleFieldProps = { checked: boolean; disabled?: boolean; id?: string; onChange?: (checked: boolean) => void; }; export const ToggleField: React.FunctionComponent = ({ onChange, checked = false, disabled = false, id: propId, }) => { const reactId = `toggle-switch${useId()}`; const computedId = propId || reactId; const dataTestId = `ToggleField-input-${checked ? 'checked' : 'unchecked'}-${ disabled ? 'disabled' : 'enabled' }`; const handleOnChange = useCallback( (event: React.ChangeEvent) => { typeof onChange === 'function' && onChange(event.target.checked); }, [onChange], ); const handleClick = useCallback((event: React.MouseEvent) => { event.stopPropagation(); }, []); return ( ); };