Aller au contenu

MultiSelect

MultiSelect permet aux utilisateurs de sélectionner plusieurs options à partir d’une liste déroulante. Il supporte les états d’ouverture et de fermeture, le rendu personnalisé des valeurs, la navigation au clavier et d’autres fonctionnalités.

Pour utiliser le MultiSelect, importez-le avec son composant d’élément. Vous pouvez passer des props comme value, onMultiValueChange, size, label, disabled et bien d’autres pour personnaliser son comportement et son apparence.

Un exemple simple démontrant l’utilisation de base du composant MultiSelect.

import * as React from "react";
import { MultiSelect, MultiSelectItem } from "@firecms/ui";
export default function MultiSelectBasicDemo() {
const [selectedValues, setSelectedValues] = React.useState<string[]>([]);
return (
<MultiSelect
value={selectedValues}
onValueChange={setSelectedValues}
label="Basic MultiSelect">
<MultiSelectItem value="option1">Option 1</MultiSelectItem>
<MultiSelectItem value="option2">Option 2</MultiSelectItem>
<MultiSelectItem value="option3">Option 3</MultiSelectItem>
</MultiSelect>
);
}

Cet exemple montre comment personnaliser le rendu des valeurs sélectionnées.

import * as React from "react";
import { MultiSelect, MultiSelectItem } from "@firecms/ui";
export default function MultiSelectCustomRenderDemo() {
const [selectedValues, setSelectedValues] = React.useState<string[]>([]);
return (
<MultiSelect
value={selectedValues}
onValueChange={setSelectedValues}
label="Custom Render MultiSelect"
renderValues={(values) => (values.map((value, index) =>
<span key={index} style={{
marginRight: 8,
background: "#eee",
padding: 4
}}>
{value}
</span>)
)}>
<MultiSelectItem value="red">Red</MultiSelectItem>
<MultiSelectItem value="green">Green</MultiSelectItem>
<MultiSelectItem value="blue">Blue</MultiSelectItem>
</MultiSelect>
);
}

Un exemple pour démontrer un composant MultiSelect dans un état désactivé.

import * as React from "react";
import { MultiSelect, MultiSelectItem } from "@firecms/ui";
export default function MultiSelectDisabledDemo() {
return (
<MultiSelect
disabled
label="Disabled MultiSelect"
value={["option1"]}
renderValues={(values) => (values.map((value) =>
<span
key={value}
style={{
marginRight: 8,
background: "#eee",
padding: 4
}}>
{value}
</span>)
)}>
<MultiSelectItem value="option1">Option 1</MultiSelectItem>
<MultiSelectItem value="option2">Option 2 is disabled</MultiSelectItem>
<MultiSelectItem value="option3">Option 3 is disabled</MultiSelectItem>
</MultiSelect>
);
}