ChipChoice.Time

Чип-фильтр с выбором времени. Значение — объект { hours, minutes, seconds }. Секунды отображаются опционально через showSeconds.

Когда использовать

  • Для фильтрации по времени суток в ряду чипов-фильтров.
  • Когда нужно выбрать часы и минуты (опционально секунды) компактным контролом.

Когда не нужен ChipChoice.Time:

  • Для выбора даты или даты со временем — используйте ChipChoice.Date.
  • Для выбора периода дат — используйте ChipChoice.DateRange.

Анатомия

Size (default s)

  • s — для плотных тулбаров и строк фильтров.
  • m — стандартный размер.
  • l — для крупных форм.

Seconds (default false)

Проп showSeconds управляет отображением секунд:

  • false — выбор только часов и минут.
  • true — добавляет поле секунд; поле seconds объекта значения становится значимым.

Текст внутри чипа настраивается через valueRender(value) — функция получает текущий объект { hours, minutes, seconds } и возвращает узел для отображения.

Состояния

  • disabled — отключает взаимодействие.
  • loading — показывает спиннер и блокирует открытие выпадающего списка времени.

Установка

pnpm add @cloud-ru/ds-chips
import { ChipChoice } from '@cloud-ru/ds-chips'

Примеры использования

Выбор времени

Выбор времениЧасы и минуты, контролируемое значение
tsx
import { ChipChoice, ChipChoiceTimeProps } from '@cloud-ru/ds-chips';
import { useState } from 'react';

export function ChoiceTimeBasic() {
  const [value, setValue] = useState<ChipChoiceTimeProps['value']>({
    hours: 9,
    minutes: 30,
  });

  return <ChipChoice.Time label='Время' value={value} onChange={setValue} />;
}

С секундами

С секундамиshowSeconds добавляет поле секунд
tsx
import { ChipChoice, ChipChoiceTimeProps } from '@cloud-ru/ds-chips';
import { useState } from 'react';

export function ChoiceTimeSeconds() {
  const [value, setValue] = useState<ChipChoiceTimeProps['value']>({
    hours: 9,
    minutes: 30,
    seconds: 15,
  });

  return <ChipChoice.Time label='Время' showSeconds value={value} onChange={setValue} />;
}

Props

Types

PropsChipChoiceTimeProps
PropTypeDefaultRequiredDescription
classNamestringnoCSS-класс
data-test-idstringno
defaultValueTimeValuenoЗначение по-умолчанию для uncontrolled.
disabledbooleannoОтключён
dropDownClassNamestringno
iconReactNodenoИконка
labelstringnoТекст чипа
loadingbooleannoСостояние загрузки
onChange((value: TimeValue) => void)noКолбек смены значения
onClearButtonClickMouseEventHandler<HTMLButtonElement>noКолбек для клика по кнопке очистки
onClickMouseEventHandler<HTMLButtonElement | HTMLDivElement>noКолбек обработки клика
onOpenChange((isOpen: boolean) => void)noКолбек отображения компонента
openbooleannoУправляет состоянием показан/не показан
placement"bottom" | "bottom-end" | "bottom-start" | "left" | "left-end" | "left-start" | "right" | "right-end" | "right-start" | "top" | "top-end" | "top-start"noРасположение выпадающего меню
showSecondsbooleantruenoПоказывать ли секунды
size"l" | "m" | "s"mnoРазмер
tabIndexnumbernoИндекс в порядке фокусировки
truncateVariant"end" | "middle"'middle'noВариант обрезания строки Вариант обрезания значения
valueTimeValuenoВыбранное значение.
valueRender((value?: TimeValue) => ReactNode)noКолбек формирующий строковое представление выбранного значения

Storybook

Figma

Смотри также