1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import EmojiPicker, {
- Emoji,
- EmojiStyle,
- Theme as EmojiTheme,
- } from "emoji-picker-react";
- import { ModelType } from "../store";
- import BotIcon from "../icons/bot.svg";
- import BlackBotIcon from "../icons/black-bot.svg";
- export function getEmojiUrl(unified: string, style: EmojiStyle) {
- return `https://cdn.staticfile.org/emoji-datasource-apple/14.0.0/img/${style}/64/${unified}.png`;
- }
- export function AvatarPicker(props: {
- onEmojiClick: (emojiId: string) => void;
- }) {
- return (
- <EmojiPicker
- lazyLoadEmojis
- theme={EmojiTheme.AUTO}
- getEmojiUrl={getEmojiUrl}
- onEmojiClick={(e) => {
- props.onEmojiClick(e.unified);
- }}
- />
- );
- }
- export function Avatar(props: { model?: ModelType; avatar?: string }) {
- if (props.model) {
- return (
- <div className="no-dark">
- {props.model?.startsWith("gpt-4") ? (
- <BlackBotIcon className="user-avatar" />
- ) : (
- <BotIcon className="user-avatar" />
- )}
- </div>
- );
- }
- return (
- <div className="user-avatar">
- {props.avatar && <EmojiAvatar avatar={props.avatar} />}
- </div>
- );
- }
- export function EmojiAvatar(props: { avatar: string; size?: number }) {
- return (
- <Emoji
- unified={props.avatar}
- size={props.size ?? 18}
- getEmojiUrl={getEmojiUrl}
- />
- );
- }
|