@atlaskit/mention
Version:
A React component used to display user profiles in a list for 'Mention' functionality
24 lines (23 loc) • 1.75 kB
TypeScript
import { type MentionProvider, type MentionContextIdentifier, ErrorCallback, InfoCallback, ResultCallback } from './MentionResource';
import { type MentionDescription, type InviteFromMentionProvider, type XProductInviteMentionProvider, type AnalyticsCallback } from '../types';
export type { MentionDescription };
export type MentionProviderFunctions = Omit<{
[Key in keyof MentionProvider]: MentionProvider[Key] extends Function ? MentionProvider[Key] : never;
}, keyof InviteFromMentionProvider | keyof XProductInviteMentionProvider>;
/**
* This component is stateful and should be instantianted per contextIdentifiers.
*/
export default class ContextMentionResource implements MentionProvider {
private mentionProvider;
private contextIdentifier;
constructor(mentionProvider: MentionProvider, contextIdentifier: MentionContextIdentifier);
getContextIdentifier(): MentionContextIdentifier | undefined;
callWithContextIds: <K extends keyof MentionProviderFunctions>(f: K, declaredArgs: number) => MentionProvider[K];
callDefault: <K extends keyof MentionProviderFunctions>(f: K) => MentionProvider[K];
subscribe: (key: string, callback?: ResultCallback<MentionDescription[]> | undefined, errCallback?: ErrorCallback, infoCallback?: InfoCallback, allResultsCallback?: ResultCallback<MentionDescription[]> | undefined, analyticsCallback?: AnalyticsCallback) => void;
unsubscribe: (key: string) => void;
filter: (query?: string, contextIdentifier?: MentionContextIdentifier) => void;
recordMentionSelection: (mention: MentionDescription, contextIdentifier?: MentionContextIdentifier) => void;
shouldHighlightMention: (mention: MentionDescription) => boolean;
isFiltering: (query: string) => boolean;
}