ChipsBox

Компонент наследует свойства и методы компонента Chips из раздела Компоненты


import { ChipsBox, ChipBox } from '@megafon/ui-shared';
Примеры и код
Свойства и методы
Демо данные
const DemoContent = ({ children }: { children: React.ReactNode }): React.ReactNode => (
<div
style={{
marginTop: '20px',
padding: '80px 0',
background: 'rgba(0, 0, 0, 0.05)',
fontSize: '20px',
textAlign: 'center',
}}
>
{children}
</div>
);

Базовое использование

<ChipsBox>
  <ChipBox id="all" title="Все">
      <DemoContent>Все</DemoContent>
  </ChipBox>
  <ChipBox id="smart" title="Для смартфонов">
      <DemoContent>Для смартфонов</DemoContent>
  </ChipBox>
  <ChipBox id="team" title="Для команды">
      <DemoContent>Для команды</DemoContent>
  </ChipBox>
  <ChipBox id="internet" title="Для интернета">
      <DemoContent>Для интернета</DemoContent>
  </ChipBox>
  <ChipBox id="iot" title="Для IoT и М2М">
      <DemoContent>Для IoT и М2М</DemoContent>
  </ChipBox>
</ChipsBox>

Рендер содержимого только для текущего варианта

<ChipsBox
  renderOnlyCurrentPanel
  value="smart"
  align="center"
  visibleItemsCountTablet={2}
  visibleItemsCountDesktop={3}
  visibleItemsCountWide={3}
>
  <ChipBox id="all" title="Все">
      <DemoContent>Все</DemoContent>
  </ChipBox>
  <ChipBox id="smart" title="Для смартфонов">
      <DemoContent>Для смартфонов</DemoContent>
  </ChipBox>
  <ChipBox id="team" title="Для команды">
      <DemoContent>Для команды</DemoContent>
  </ChipBox>
  <ChipBox id="internet" title="Для интернета">
      <DemoContent>Для интернета</DemoContent>
  </ChipBox>
  <ChipBox id="iot" title="Для IoT и М2М">
      <DemoContent>Для IoT и М2М</DemoContent>
  </ChipBox>
</ChipsBox>

ChipsBox

Prop nameTypeDefaultDescription
dataAttrs{ root?: Record<string, string> | undefined; dropdown?: Record<string, string> | undefined; dropdownList?: Record<string, string> | undefined; } | undefinedДополнительные data атрибуты к внутренним элементам
classNamestring | undefinedДополнительный класс корневого элемента
classes{ root?: string | undefined; dropdown?: string | undefined; dropdownList?: string | undefined; } | undefinedДополнительные классы для внутренних элементов
onChange((id: ChipIdType, e?: SyntheticEvent<EventTarget, Event> | undefined) => void) | undefinedОбработчик изменения значения
align"center" | "left" | undefinedГоризонтальное выравнивание
colorChipColorsType | undefinedЦвет активного элемента
valueChipIdType | undefinedЗначение (идентификатор активного элемента). Начальное значение в неконтролируемом состоянии
isControlledboolean | undefinedПереводит компонент в контролируемое состояние
isScrollableboolean | undefinedtrueГоризонтальный скролл (отключается на разрешениях, для которых задан лимит отображаемых элементов)
visibleItemsCountAllnumber | undefinedКоличество отображаемых элементов на всех разрешениях экрана
visibleItemsCountTabletnumber | undefinedКоличество отображаемых элементов на разрешении 768 - 1023
visibleItemsCountDesktopnumber | undefinedКоличество отображаемых элементов на разрешении 1024 - 1279
visibleItemsCountWidenumber | undefinedКоличество отображаемых элементов на разрешении 1280+
moreTitlestring | undefinedНазвание дополнительной кнопки
renderOnlyCurrentPanelboolean | undefinedfalseРендер содержимого только для текущего варианта
children*ChipBoxChildrenTypeДочерние элементы
rootRefRef<HTMLDivElement> | undefinedСсылка на корневой элемент

ChipBox

Prop nameTypeDefaultDescription
dataAttrs{ root?: Record<string, string> | undefined; inner?: Record<string, string> | undefined; icon?: Record<string, string> | undefined; counter?: Record<string, string> | undefined; arrow?: Record<...> | undefined; } | undefinedДополнительные data атрибуты к внутренним элементам
rootRefRef<HTMLButtonElement> | undefinedСсылка на элемент
titlestring | undefinedЗаголовок
classNamestring | undefinedДополнительный класс корневого элемента
classes{ root?: string | undefined; checked?: string | undefined; inner?: string | undefined; icon?: string | undefined; counter?: string | undefined; } | undefinedДополнительные классы для внутренних элементов
childrenReactNodeДочерние элементы
iconElement | undefinedИконка
onClick((e: SyntheticEvent<EventTarget, Event>, id?: ChipIdType | undefined) => void) | undefinedОбработчик нажатия
id*ChipIdTypeИдентификатор
disabledboolean | undefinedОтключенное состояние
counterValuenumber | undefinedЗначение счетчика
arrowChipArrowType | undefinedСтрелка вверх или вниз
type ChipIdType = number | string;
type ChipColorsType = 'default' | 'black';
type ChipArrowType = 'up' | 'down';