mirror of
https://github.com/portainer/portainer.git
synced 2025-07-24 15:59:41 +02:00
refactor(ui/box-selector): replace all selectors [EE-3856] (#7902)
This commit is contained in:
parent
c9253319d9
commit
2dddc1c6b9
80 changed files with 1267 additions and 1011 deletions
|
@ -1,7 +1,8 @@
|
|||
import { Meta } from '@storybook/react';
|
||||
import { useState } from 'react';
|
||||
import { User } from 'lucide-react';
|
||||
import { Anchor, Briefcase } from 'lucide-react';
|
||||
|
||||
import Docker from '@/assets/ico/vendor/docker.svg?c';
|
||||
import { init as initFeatureService } from '@/react/portainer/feature-flags/feature-flags.service';
|
||||
import { Edition, FeatureId } from '@/react/portainer/feature-flags/enums';
|
||||
|
||||
|
@ -22,14 +23,16 @@ function Example() {
|
|||
const options: BoxSelectorOption<number>[] = [
|
||||
{
|
||||
description: 'description 1',
|
||||
icon: User,
|
||||
icon: Anchor,
|
||||
iconType: 'badge',
|
||||
id: '1',
|
||||
value: 3,
|
||||
label: 'option 1',
|
||||
},
|
||||
{
|
||||
description: 'description 2',
|
||||
icon: User,
|
||||
icon: Briefcase,
|
||||
iconType: 'badge',
|
||||
id: '2',
|
||||
value: 4,
|
||||
label: 'option 2',
|
||||
|
@ -54,14 +57,16 @@ function LimitedFeature() {
|
|||
const options: BoxSelectorOption<number>[] = [
|
||||
{
|
||||
description: 'description 1',
|
||||
icon: User,
|
||||
icon: Anchor,
|
||||
iconType: 'badge',
|
||||
id: '1',
|
||||
value: 3,
|
||||
label: 'option 1',
|
||||
},
|
||||
{
|
||||
description: 'description 2',
|
||||
icon: User,
|
||||
icon: Briefcase,
|
||||
iconType: 'badge',
|
||||
id: '2',
|
||||
value: 4,
|
||||
label: 'option 2',
|
||||
|
@ -81,6 +86,85 @@ function LimitedFeature() {
|
|||
);
|
||||
}
|
||||
|
||||
// regular example
|
||||
export function MultiSelect() {
|
||||
const [value, setValue] = useState([3]);
|
||||
const options: BoxSelectorOption<number>[] = [
|
||||
{
|
||||
description: 'description 1',
|
||||
icon: Anchor,
|
||||
iconType: 'badge',
|
||||
id: '1',
|
||||
value: 1,
|
||||
label: 'option 1',
|
||||
},
|
||||
{
|
||||
description: 'description 2',
|
||||
icon: Briefcase,
|
||||
iconType: 'badge',
|
||||
id: '2',
|
||||
value: 2,
|
||||
label: 'option 2',
|
||||
},
|
||||
{
|
||||
description: 'description 3',
|
||||
icon: Docker,
|
||||
id: '3',
|
||||
value: 3,
|
||||
label: 'option 2',
|
||||
},
|
||||
];
|
||||
|
||||
// story with limited feature
|
||||
return (
|
||||
<BoxSelector
|
||||
isMulti
|
||||
radioName="name"
|
||||
onChange={(value: number[]) => {
|
||||
setValue(value);
|
||||
}}
|
||||
value={value}
|
||||
options={options}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export function SlimMultiSelect() {
|
||||
const [value, setValue] = useState([3]);
|
||||
const options: BoxSelectorOption<number>[] = [
|
||||
{
|
||||
description: 'description 1',
|
||||
icon: Anchor,
|
||||
iconType: 'badge',
|
||||
id: '1',
|
||||
value: 1,
|
||||
label: 'option 1',
|
||||
},
|
||||
{
|
||||
description: 'description 2',
|
||||
icon: Briefcase,
|
||||
iconType: 'badge',
|
||||
id: '2',
|
||||
value: 2,
|
||||
label: 'option 2',
|
||||
},
|
||||
{
|
||||
description: 'description 3',
|
||||
icon: Docker,
|
||||
id: '3',
|
||||
value: 3,
|
||||
label: 'option 2',
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
<BoxSelector
|
||||
isMulti
|
||||
radioName="name"
|
||||
onChange={(value: number[]) => {
|
||||
setValue(value);
|
||||
}}
|
||||
value={value}
|
||||
options={options}
|
||||
slim
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue