import * as React from 'react'; import { PrimaryButton, IButtonStyles } from '@fluentui/react/lib/Button'; import { IExtendedPersonaProps, SelectedPeopleList, ISelectedPeopleItemProps, ExtendedSelectedItem, } from '@fluentui/react/lib/SelectedItemsList'; import { Stack, IStackStyles } from '@fluentui/react/lib/Stack'; import { people, groupOne, groupTwo } from '@fluentui/example-data'; const primaryButtonStyles: Partial = { root: { display: 'block', marginBottom: 20 } }; const stackStyles: Partial = { root: { maxWidth: '100%' } }; const onRenderItem = (props: ISelectedPeopleItemProps): JSX.Element => { return ; }; const onCopyItems = (items: IExtendedPersonaProps[]): string => { return items.map((item: IExtendedPersonaProps) => item.text).join(', '); }; export const SelectedPeopleListControlledExample: React.FunctionComponent = () => { const [nextPersonIndex, setNextPersonIndex] = React.useState(0); const [currentSelectedItems, setCurrentSelectedItems] = React.useState([people[40]]); const selectionList = React.useRef(null); const onAddItemButtonClicked = (): void => { setCurrentSelectedItems([...currentSelectedItems, people[nextPersonIndex]]); setNextPersonIndex(nextPersonIndex + 1); }; const onExpandItem = (item: IExtendedPersonaProps): void => { const expandedItem = item.text === 'Group One' ? groupOne : item.text === 'Group Two' ? groupTwo : []; const indexToExpand = currentSelectedItems.indexOf(item); setCurrentSelectedItems( currentSelectedItems .slice(0, indexToExpand) .concat(expandedItem) .concat(currentSelectedItems.slice(indexToExpand + 1)), ); }; const onItemDeleted = (item: IExtendedPersonaProps): void => { const indexToRemove = currentSelectedItems.indexOf(item); const newSelectedItems = [...currentSelectedItems]; newSelectedItems.splice(indexToRemove, 1); setCurrentSelectedItems(newSelectedItems); }; return (
= people.length} styles={primaryButtonStyles} />
); };