office-ui-fabric-react
Version:
Reusable React components for building experiences for Microsoft 365.
67 lines (66 loc) • 2.81 kB
TypeScript
import * as React from 'react';
import { IStyle, ITheme } from '../../../Styling';
import { IRefObject, IStyleFunctionOrObject } from '../../../Utilities';
import { ISuggestionModel } from './Suggestions.types';
/**
* SuggestionItem component.
* {@docCategory Pickers}
*/
export interface ISuggestionsItem {
}
/**
* Suggestion item props. Refers to the each individual suggested items rendered within Suggestions callout.
* Type T is the type of the item that is displayed.
* {@docCategory Pickers}
*/
export interface ISuggestionItemProps<T> {
/**
* Optional callback to access the ISuggestionItem interface. Use this instead of ref for accessing
* the public methods and properties of the component.
*/
componentRef?: IRefObject<ISuggestionsItem>;
/** Individual suggestion object containing its properties. */
suggestionModel: ISuggestionModel<T>;
/** Optional renderer to override the default one for each type of picker. */
RenderSuggestion: (item: T, suggestionItemProps: ISuggestionItemProps<T>) => JSX.Element;
/** Callback for when the user clicks on the suggestion. */
onClick: (ev: React.MouseEvent<HTMLButtonElement>) => void;
/** Callback for when the item is removed from the array of suggested items. */
onRemoveItem: (ev: React.MouseEvent<HTMLButtonElement>) => void;
/** Optional className for the root element of the suggestion item. */
className?: string;
/** Unique id of the suggested item. */
id?: string;
/** Whether the remove button should be rendered or not. */
showRemoveButton?: boolean;
/** An override for the 'selected' property of the SuggestionModel. */
isSelectedOverride?: boolean;
/**
* The ARIA label for the button to remove the suggestion from the list.
*/
removeButtonAriaLabel?: string;
/** Call to provide customized styling that will layer on top of the variant rules. */
styles?: IStyleFunctionOrObject<ISuggestionsItemStyleProps, ISuggestionsItemStyles>;
/** Theme provided by High-Order Component. */
theme?: ITheme;
}
/**
* The props needed to construct SuggestionItem styles.
* {@docCategory Pickers}
*/
export declare type ISuggestionsItemStyleProps = Required<Pick<ISuggestionItemProps<any>, 'theme'>> & Pick<ISuggestionItemProps<any>, 'className'> & {
/** Whether the suggestion item is selected or not. */
suggested?: boolean;
};
/**
* Represents the stylable areas of the SuggestionItem.
* {@docCategory Pickers}
*/
export interface ISuggestionsItemStyles {
/** Root element of the suggested item. */
root: IStyle;
/** Refers to the CommandButton holding the content of the suggested item. */
itemButton: IStyle;
/** Refers to the remove button in case it's rendered. */
closeButton: IStyle;
}