@eisgs/switcher-button
v1.0.0
Published
Активным может быть только один элемент.
Downloads
29
Readme
Компонент SwitcherButtonGroup
Активным может быть только один элемент.
value
и onChange
используются для управления состоянием.
options
- опции для создания компонента.
import { SwitcherButtonGroup } from '@eisgs/switcher-button';
const defaultOptions = [
{ label: 'Опция 1', value: '100' },
{ label: 'Опция 2', value: '200' },
{ label: 'Опция 3', value: '300' },
{ label: 'Опция 4', value: '400' },
{ label: 'Опция 5', value: '500' },
];
const [value, setValue] = React.useState();
const [options, setOptions] = React.useState(defaultOptions);
const handleDelete = (val) => setOptions(options.filter((option) => option.value !== val));
const mappedOptions = options.map((option, index) => ({
...option,
...(index > 2 && { onDelete: handleDelete }),
}));
<SwitcherButtonGroup options={mappedOptions} value={value} onChange={setValue} />
Компонент SwitcherButton
Все возможные виды кнопки - стандартное отображение и с возможностью удаления (+ активное состояние).
const [value, setValue] = React.useState();
const handleDelete = (val) => val;
const options = [
{ label: 'Опция 1', value: '100' },
{ label: 'Опция 2', value: '200', isActive: true },
{ label: 'Опция 3', value: '300' },
{ label: 'Опция 4', value: '400', isActive: true },
];
<div style={{ display: 'flex' }}>
{options.map((option, index) => {
const { label, ...rest } = option;
return (
<SwitcherButton
{...rest}
{...(index > 1 && { onDelete: handleDelete })}
key={label}
>
{label}
</SwitcherButton>
);
})}
</div>