X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/663ddeefc6a120d6dba213b1392805146d659721..ee0307d05caf3eeed3d1acb8398937fadd2c7c25:/src/components/autocomplete/autocomplete.tsx diff --git a/src/components/autocomplete/autocomplete.tsx b/src/components/autocomplete/autocomplete.tsx index c5811bb6..17d85e85 100644 --- a/src/components/autocomplete/autocomplete.tsx +++ b/src/components/autocomplete/autocomplete.tsx @@ -2,8 +2,14 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; -import { Input as MuiInput, Chip as MuiChip, Popper as MuiPopper, Paper as MuiPaper, FormControl, InputLabel, StyleRulesCallback, withStyles, RootRef, ListItemText, ListItem, List, FormHelperText } from '@material-ui/core'; +import React from 'react'; +import { + Input as MuiInput, + Chip as MuiChip, + Popper as MuiPopper, + Paper as MuiPaper, + FormControl, InputLabel, StyleRulesCallback, withStyles, RootRef, ListItemText, ListItem, List, FormHelperText, Tooltip +} from '@material-ui/core'; import { PopperProps } from '@material-ui/core/Popper'; import { WithStyles } from '@material-ui/core/styles'; import { noop } from 'lodash'; @@ -12,9 +18,11 @@ export interface AutocompleteProps { label?: string; value: string; items: Item[]; + disabled?: boolean; suggestions?: Suggestion[]; error?: boolean; helperText?: string; + autofocus?: boolean; onChange: (event: React.ChangeEvent) => void; onBlur?: (event: React.FocusEvent) => void; onFocus?: (event: React.FocusEvent) => void; @@ -22,6 +30,7 @@ export interface AutocompleteProps { onDelete?: (item: Item, index: number) => void; onSelect?: (suggestion: Suggestion) => void; renderChipValue?: (item: Item) => string; + renderChipTooltip?: (item: Item) => string; renderSuggestion?: (suggestion: Suggestion) => React.ReactNode; } @@ -29,6 +38,7 @@ export interface AutocompleteState { suggestionsOpen: boolean; selectedSuggestionIndex: number; } + export class Autocomplete extends React.Component, AutocompleteState> { state = { @@ -59,6 +69,8 @@ export class Autocomplete extends React.Component extends React.Component 0) { onCreate(); @@ -149,12 +161,33 @@ export class Autocomplete extends React.Component - onDelete ? onDelete(item, index) : undefined} /> + (item, index) => { + const tooltip = this.props.renderChipTooltip ? this.props.renderChipTooltip(item) : ''; + if (tooltip && tooltip.length) { + return + + onDelete(item, index)) : undefined} /> + + } else { + return onDelete(item, index)) : undefined} /> + } + } ); }