@atlaskit/mention
Version:
A React component used to display user profiles in a list for 'Mention' functionality
39 lines (38 loc) • 1.55 kB
TypeScript
import { type WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
import { type MentionNameDetails, type MentionNameResolver } from '../types';
import { type MentionNameClient } from './MentionNameClient';
interface Callback {
(value: MentionNameDetails): void;
}
export type { MentionNameResolver } from '../types';
/** A queue for user ids */
type Queue = Map<string, Callback[]>;
export declare class DefaultMentionNameResolver implements MentionNameResolver {
static waitForBatch: number;
private static waitForResolveAll;
private client;
private nameCache;
private nameQueue;
private nameStartTime;
private processingQueue;
private debounce;
private debounceOnResolve;
private onResolvedAll;
private isOnResolvedAllCalled;
private fireHydrationEvent;
constructor(client: MentionNameClient, analyticsProps?: WithAnalyticsEventsProps, onResolvedAll?: () => void);
lookupName(id: string): Promise<MentionNameDetails> | MentionNameDetails;
cacheName(id: string, name: string): void;
private scheduleProcessQueue;
private scheduleOnAllResolved;
private isQueueAtLimit;
private splitQueueAtLimit;
private resolveQueueItem;
private processQueue;
private fireAnalytics;
}
/**
* Merge the two queues making sure to merge callback arrays for items in queueB already in queueA.
* This addresses [this ticket](https://product-fabric.atlassian.net/browse/QS-3789).
*/
export declare function mergeNameResolverQueues(queueA: Queue, queueB: Queue): Queue;