// Copyright (C) 2017-2025 Smart code 203358507 import React, { useCallback, ChangeEvent, KeyboardEvent, RefCallback } from 'react'; import classNames from 'classnames'; import styles from './Checkbox.less'; import Button from '../Button'; import Icon from '@stremio/stremio-icons/react'; type Props = { ref?: RefCallback; name: string; disabled?: boolean; checked?: boolean; className?: string; label?: string; link?: string; href?: string; onChange?: (props: { type: string; checked: boolean; reactEvent: KeyboardEvent | ChangeEvent; nativeEvent: Event; }) => void; error?: string; }; const Checkbox = React.forwardRef(({ name, disabled, className, label, href, link, onChange, error, checked }, ref) => { const handleSelect = useCallback((event: ChangeEvent) => { if (!disabled && onChange) { onChange({ type: 'select', checked: event.target.checked, reactEvent: event, nativeEvent: event.nativeEvent, }); } }, [disabled, onChange]); const onKeyDown = useCallback((event: KeyboardEvent) => { if ((event.key === 'Enter' || event.key === ' ') && !disabled) { onChange && onChange({ type: 'select', checked: !checked, reactEvent: event as KeyboardEvent, nativeEvent: event.nativeEvent, }); } }, [disabled, checked, onChange]); return (
); }); export default Checkbox;