// @flow strict import * as React from 'react'; import {elevationMenu} from '../../styles/variables/_elevation'; import {Chip} from '../Chip'; import {Tooltip} from '../Tooltip'; type Props = { values: Array, disabled?: boolean, locked?: boolean, onDismiss: (T) => mixed, resolveTokenValue?: (ResolveTokenValueProps) => React.Node, }; export type ResolveTokenValueProps = { token: T, disabled?: boolean, onDismiss?: (T) => mixed, locked?: boolean, }; function defaultResolveTokenValue({ token, disabled, onDismiss, }: ResolveTokenValueProps): React.Node { // $FlowFixMe[prop-missing] - assumes token has label and key return ( // $FlowFixMe - assumes token has label and key onDismiss?.(token)} dismissable={true} semantic={'primary'} disabled={disabled} > {/* $FlowFixMe - assumes token has label */} {token?.label} ); } export function TokenValueChips(props: Props): React.Node { const { values, disabled, locked, onDismiss, resolveTokenValue = defaultResolveTokenValue, } = props; return values.map((token) => { const resolvedTokenValue = resolveTokenValue({ token, onDismiss, disabled, locked, }); return resolvedTokenValue; }); } TokenValueChips.displayName = 'TokenValueChips';