UNPKG

@fluentui/react

Version:

Reusable React components for building web experiences.

36 lines 2.48 kB
import { __assign } from "tslib"; import * as React from 'react'; import { getId, classNamesFunction, styled } from '../../../../Utilities'; import { Persona, PersonaSize } from '../../../../Persona'; import { IconButton } from '../../../../Button'; import { ValidationState } from '../../BasePicker.types'; import { getStyles } from './PeoplePickerItem.styles'; var getClassNames = classNamesFunction(); export var PeoplePickerItemBase = function (props) { var item = props.item, onRemoveItem = props.onRemoveItem, index = props.index, selected = props.selected, removeButtonAriaLabel = props.removeButtonAriaLabel, styles = props.styles, theme = props.theme, className = props.className, disabled = props.disabled, removeButtonIconProps = props.removeButtonIconProps; var buttonRef = React.createRef(); var handleClick = function () { var _a; (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }; var itemId = getId(); var classNames = getClassNames(styles, { theme: theme, className: className, selected: selected, disabled: disabled, invalid: item.ValidationState === ValidationState.warning, }); var personaStyles = classNames.subComponentStyles ? classNames.subComponentStyles.persona : undefined; var personaCoinStyles = classNames.subComponentStyles ? classNames.subComponentStyles.personaCoin : undefined; return (React.createElement("div", { "data-selection-index": index, className: classNames.root, role: 'listitem', key: index, onClick: handleClick }, React.createElement("div", { className: classNames.itemContent, id: 'selectedItemPersona-' + itemId }, React.createElement(Persona, __assign({ size: PersonaSize.size24, styles: personaStyles, coinProps: { styles: personaCoinStyles } }, item))), React.createElement(IconButton, { componentRef: buttonRef, id: itemId, onClick: onRemoveItem, disabled: disabled, iconProps: removeButtonIconProps !== null && removeButtonIconProps !== void 0 ? removeButtonIconProps : { iconName: 'Cancel' }, styles: { icon: { fontSize: '12px' } }, className: classNames.removeButton, ariaLabel: removeButtonAriaLabel, "aria-labelledby": "".concat(itemId, " selectedItemPersona-").concat(itemId) }))); }; export var PeoplePickerItem = styled(PeoplePickerItemBase, getStyles, undefined, { scope: 'PeoplePickerItem' }); //# sourceMappingURL=PeoplePickerItem.js.map