@uimkit/uikit-react
Version:
<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>
40 lines (37 loc) • 1.86 kB
TypeScript
import React__default, { PropsWithChildren } from 'react';
import { SuggestionCommand, SuggestionUser } from '../UIChatAutoComplete/UIChatAutoComplete.js';
import { UICommandItemProps } from '../UICommandItem/UICommandItem.js';
import { EmoticonItemProps } from '../EmoticonItem/EmoticonItem.js';
import { UIUserItemProps } from '../UIUserItem/UIUserItem.js';
import { UnknownType, CustomTrigger } from '../../types/index.js';
import { Emoji } from '../../context/EmojiContext.js';
type AutocompleteMinimalData = {
id?: string;
name?: string;
} & ({
id: string;
} | {
name: string;
});
type CommandTriggerSetting = TriggerSetting<UICommandItemProps, SuggestionCommand>;
type EmojiTriggerSetting = TriggerSetting<EmoticonItemProps, Emoji & any>;
type UserTriggerSetting = TriggerSetting<UIUserItemProps, SuggestionUser>;
type TriggerSetting<T extends UnknownType = UnknownType, U = UnknownType> = {
component: string | React__default.ComponentType<T>;
dataProvider: (query: string, text: string, onReady: (data: (U & AutocompleteMinimalData)[], token: string) => void) => U[] | Promise<void> | void;
output: (entity: U) => {
caretPosition: 'start' | 'end' | 'next' | number;
text: string;
key?: string;
} | string | null;
callback?: (item: U) => void;
};
type TriggerSettings<V extends CustomTrigger = CustomTrigger> = {
[key in keyof V]: TriggerSetting<V[key]['componentProps'], V[key]['data']>;
} | {
'/': CommandTriggerSetting;
':': EmojiTriggerSetting;
};
declare const DefaultTriggerProvider: ({ children, }: PropsWithChildren<Record<string, unknown>>) => JSX.Element;
export { AutocompleteMinimalData, CommandTriggerSetting, DefaultTriggerProvider, EmojiTriggerSetting, TriggerSetting, TriggerSettings, UserTriggerSetting };
//# sourceMappingURL=DefaultTriggerProvider.d.ts.map