import React, { forwardRef, InputHTMLAttributes, ReactNode } from 'react'; import { type TStyle, useClassnames } from '../../../hooks/use-classnames'; import style from './index.module.pcss'; type TNative = InputHTMLAttributes; export interface IProps { /** * Название поля ввода, которое будет отправлено на сервер вместе со значением. **/ readonly name: string, /** * Позволяет добавить пользовательские CSS-классы **/ readonly className?: string | TStyle, /** * Текст метки, связанной с переключателем. **/ readonly label?: ReactNode, /** * Значение, которое будет отправлено на сервер при отправке формы. **/ readonly value?: string, /** * Значение переключателя по умолчанию. **/ readonly defaultValue?: string, /** * Устанавливает или определяет, должен ли компонент быть отмечен. **/ readonly checked?: TNative['checked'], /** * Определяет, должен ли флажок быть установлен при первоначальной загрузке компонента. **/ readonly defaultChecked?: TNative['defaultChecked'], /** * Функция обратного вызова, которая будет вызываться при изменении значения переключателя. **/ readonly onChange?: TNative['onChange'], /** * Функция обратного вызова, которая будет вызываться при клике на переключатель. **/ readonly onClick?: TNative['onClick'], /** * Функция обратного вызова, которая будет вызываться при потере фокуса на переключателе. **/ readonly onBlur?: TNative['onBlur'], /** * Функция обратного вызова, которая будет вызываться при получении фокуса на переключателе. **/ readonly onFocus?: TNative['onFocus'], /** * Указывает, должен ли компонент получать фокус при монтировании (отрисовке) на странице. **/ readonly autoFocus?: TNative['autoFocus'], /** * Уникальный идентификатор переключателя. **/ readonly id?: TNative['id'], /** * Порядковый номер элемента при переключении по `Tab`. **/ readonly tabIndex?: TNative['tabIndex'], /** * Определяет, будет ли компонент отключен. **/ readonly disabled?: TNative['disabled'] } /** * Компонент `Switch` представляет собой переключатель, который позволяет пользователю выбирать один или несколько вариантов из группы. **/ export const Switch = forwardRef(({ tabIndex = 0, ...props }, ref) => { const cn = useClassnames(style, props.className); return (