@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
51 lines (50 loc) • 1.55 kB
TypeScript
import { PopoverProps } from 'antd';
import { CSSProperties, ReactNode } from 'react';
import type { AvatarProps } from "../Avatar/type";
import type { AvatarUploaderProps } from "./AvatarUploader";
export interface EmojiPickerCustomEmoji {
emojis: [
{
id: string;
keywords?: string[];
name: string;
skins: {
src: string;
}[];
}
];
id: string;
name: string;
}
export interface EmojiPickerCustomTab {
label: ReactNode;
render: (handleAvatarChange: (avatar: string) => void) => ReactNode;
value: string;
}
export interface EmojiPickerProps extends Omit<AvatarProps, 'onChange' | 'avatar'> {
allowDelete?: boolean;
allowUpload?: boolean;
compressSize?: number;
customEmojis?: EmojiPickerCustomEmoji[];
customRender?: (avatar: string) => ReactNode;
customTabs?: EmojiPickerCustomTab[];
defaultAvatar?: string;
defaultOpen?: boolean;
loading?: boolean;
locale?: string;
onChange?: (emoji: string) => void;
onDelete?: () => void;
onOpenChange?: (open: boolean) => void;
onUpload?: AvatarUploaderProps['onUpload'];
open?: boolean;
popupClassName?: string;
popupProps?: Omit<PopoverProps, 'onOpenChange' | 'defaultOpen' | 'content' | 'open' | 'rootClassName' | 'trigger'>;
popupStyle?: CSSProperties;
size?: number;
texts?: AvatarUploaderProps['texts'] & {
delete?: string;
emoji?: string;
upload?: string;
};
value?: string;
}