Skip to content

[Feature]: Доработать SegmentedControl для работы с Generic #8760

@al-march

Description

@al-march

Описание

Проблема

SegmentedControl получает в качестве value тип SegmentedControlValue и, соответственно, возвращает его же в событии onChange. Текущее поведение создает неудобства, так как тип из onChange необходимо приводить к требуемому (он может быть перечислением строк или enum)

https://vkcom.github.io/VKUI/#/SegmentedControl

Желаемое поведение

value в SegmentedControl принимает Generic T, который возвращается в событии onChange

Пример

enum Option {APPLE, BANANA}

const [select, setSelect] = useState(Option.APPLE)

<SegmentedControl
  value={select}
  onChange={setSelect} // ts не ругается, так как onChange возвращает тип Option
  options={[
    {
      label: 'Apple',
      value: Option.APPLE, // ts понимает, что передан тип Option
    },
    {
      label: 'Banana',
      value: Option.BANANA,
    },
  ]}
/>

Metadata

Metadata

Assignees

Projects

Status

✅ Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions