パッケージの詳細

@2e32/react-radio

2e3290MIT1.1.0

A React radio component

2e32, ui, frontend, component

readme

@2e32/react-radio

English (en)

Компоненты радиокнопка и группа радиокнопок для React.

Установка

npm

npm i @2e32/react-radio

yarn

yarn add @2e32/react-radio

Использование Radio

App.js

// Единожды подключить стиль на уровне приложения (точки входа)
import '@2e32/react-radio/css';

const App = () => <Page />;

export default App;

Page.js

import { useState, useCallback } from 'react';
// Импортировать компонент
import Radio from '@2e32/react-radio';

const Page = () => {
  const [value, setValue] = useState<string>();

  return (
    <Radio checked={value === 'one'} value="one" onChange={setValue}>
      One
    </Radio>
    <Radio checked={value === 'two'} value="two" onChange={setValue}>
      Two
    </Radio>
  );
};

export default Page;

Свойства Radio

Название Тип Значение по умолчанию Описание
ref React.Ref<HTMLSpanElement> Ссылка для доступа к DOM-узлу компонента.
id string Идентификатор элемента в документе.
name string Имя элемента.
value T Значение элемента формы.
checked boolean Значение, указывающее отмечен ли элемент управления меткой. При значении true метка установлена, в противном случае - не установлена.
children React.ReactNode Содержимое связанное с радиокнопкой (текстовая подпись).
hint React.ReactNode Подсказка.
className string CSS-класс.
style React.CSSProperties Стиль.
boxClassName string CSS-класс контейнера, в котором располагается метка.
inputClassName string CSS-класс элемента input.
labelClassName string CSS-класс контейнера, в котором располагается текст.
hintClassName string CSS-класс hint.
checkmarkPosition 'left' | 'right' | 'top' | 'bottom' 'left' Позиция отображения метки относительно контента радиокнопки.
checkmarkAlign 'start' | 'center' | 'end' 'center' Выравнивание метки относительно контента радиокнопки.
disabled boolean false Компонент отключен (метка не может быть выбрана, получение фокуса запрещено).
readOnly boolean false Компонент только на чтение (состояние метки не может быть изменено).
autoFocus boolean false Компонент должен находится в фокусе при монтировании.
block boolean false Компонент занимает всю ширину контейнера.
tabIndex number 0 Значение для настройки фокуса элемента.
renderIcon function Отображает иконку радиокнопки.

⚠️ Используйте этот метод для собственной стилизации метки.

(props: RenderIconProps<T>) => React.ReactNode
onChange function Вызывается при выборе значения.

(value: NonNullable<T>, event: React.ChangeEvent<HTMLInputElement>) => void

Использование RadioGroup

import { useState } from 'react';
import Radio from '@2e32/react-radio';

const Page = () => {
  const [value, setValue] = useState<string>();

  return (
    <Radio.Group value={value} options={['One', 'Two', 'Three']} onChange={setValue} />
  );
};

export default Page;

Свойства RadioGroup

Название Тип Значение по умолчанию Описание
ref React.Ref<HTMLSpanElement> Ссылка для доступа к DOM-узлу компонента.
value V Значение группы.
label React.ReactNode Подпись группы.
hint React.ReactNode Подсказка.
options Array<O> Список опций.
optionKey string | function Вычисляет ключ опции (для случая, когда значения опций не уникальны).
optionContent string | function Вычисляет контент опции.
optionValue string | function Вычисляет значение опции, возвращаемое при выборе опции (change).
optionDisabled function Вычисляет должна ли опция быть отключена (в состоянии disabled).

(option: <O>) => boolean
isValueEqualOption function Функция для определения равенства текущего значения value и опции (для определения признака checked у опции).

⚠️ Используйте isValueEqualOption для сравнения value и опции, если они в виде объектов или представлены разными типами. По умолчанию они сравниваются с помощью Object.is.

(value: Nullable<V>, option: <O>) => boolean
className string CSS-класс.
style React.CSSProperties Стиль.
labelClassName string CSS-класс контейнера, в котором располагается текстовая подпись.
hintClassName string CSS-класс hint.
disabled boolean false Компонент отключен (опция не может быть выбрана, получение фокуса запрещено).
readOnly boolean false Компонент только на чтение (опция не может быть выбрана).
block boolean false Компонент занимает всю ширину контейнера.
vertical boolean false Опции располагаются по вертикали.
required boolean false Значение должно быть обязательно заполнено (добавляет в label знак обязательности).
asteriskIcon React.ReactNode * Иконка обязательности заполнения.
asteriskPosition 'left' | 'right' 'right' Позиция иконки обязательности.
asteriskClassName string CSS-класс контейнера, в котором располагается asteriskIcon.
renderIcon function Отображает иконку радиокнопки.

⚠️ Используйте этот метод для собственной стилизации метки.

(props: RenderIconProps<O>) => React.ReactNode
renderOption function Отображает опцию (иконку, контент).

⚠️ Используйте этот метод изменения структуры и стилизации опции (её метки, контента).

(props: RenderOptionProps<O>) => React.ReactNode
onChange function Вызывается при выборе значения.

(value: <V>, event: React.ChangeEvent<HTMLInputElement>) => void

Примеры

Смотри storybook.

Лицензия

MIT