fix: #1681 replace svg icons with png icons

This commit is contained in:
Yidadaa 2023-05-22 23:49:11 +08:00
parent 58f726c602
commit ec61a5b32d
4 changed files with 33 additions and 11 deletions

View File

@ -131,7 +131,8 @@
position: absolute; position: absolute;
top: 0px; top: 0px;
left: 0px; left: 0px;
transform: scale(2); height: 50%;
transform: scale(1.5);
} }
.main-title { .main-title {

View File

@ -7,17 +7,19 @@ import { copyToClipboard, downloadAs, useMobileScreen } from "../utils";
import CopyIcon from "../icons/copy.svg"; import CopyIcon from "../icons/copy.svg";
import LoadingIcon from "../icons/three-dots.svg"; import LoadingIcon from "../icons/three-dots.svg";
import ChatGptIcon from "../icons/chatgpt.svg"; import ChatGptIcon from "../icons/chatgpt.png";
import ShareIcon from "../icons/share.svg"; import ShareIcon from "../icons/share.svg";
import BotIcon from "../icons/bot.png";
import DownloadIcon from "../icons/download.svg"; import DownloadIcon from "../icons/download.svg";
import { useMemo, useRef, useState } from "react"; import { useMemo, useRef, useState } from "react";
import { MessageSelector, useMessageSelector } from "./message-selector"; import { MessageSelector, useMessageSelector } from "./message-selector";
import { Avatar } from "./emoji"; import { Avatar } from "./emoji";
import { MaskAvatar } from "./mask";
import dynamic from "next/dynamic"; import dynamic from "next/dynamic";
import NextImage from "next/image";
import { toBlob, toPng } from "html-to-image"; import { toBlob, toPng } from "html-to-image";
import { DEFAULT_MASK_AVATAR } from "../store/mask";
const Markdown = dynamic(async () => (await import("./markdown")).Markdown, { const Markdown = dynamic(async () => (await import("./markdown")).Markdown, {
loading: () => <LoadingIcon />, loading: () => <LoadingIcon />,
@ -253,6 +255,22 @@ export function PreviewActions(props: {
); );
} }
function ExportAvatar(props: { avatar: string }) {
if (props.avatar === DEFAULT_MASK_AVATAR) {
return (
<NextImage
src={BotIcon.src}
width={30}
height={30}
alt="bot"
className="user-avatar"
/>
);
}
return <Avatar avatar={props.avatar}></Avatar>;
}
export function ImagePreviewer(props: { export function ImagePreviewer(props: {
messages: ChatMessage[]; messages: ChatMessage[];
topic: string; topic: string;
@ -319,7 +337,12 @@ export function ImagePreviewer(props: {
> >
<div className={styles["chat-info"]}> <div className={styles["chat-info"]}>
<div className={styles["logo"] + " no-dark"}> <div className={styles["logo"] + " no-dark"}>
<ChatGptIcon /> <NextImage
src={ChatGptIcon.src}
alt="logo"
width={50}
height={50}
/>
</div> </div>
<div> <div>
@ -328,9 +351,9 @@ export function ImagePreviewer(props: {
github.com/Yidadaa/ChatGPT-Next-Web github.com/Yidadaa/ChatGPT-Next-Web
</div> </div>
<div className={styles["icons"]}> <div className={styles["icons"]}>
<Avatar avatar={config.avatar}></Avatar> <ExportAvatar avatar={config.avatar} />
<span className={styles["icon-space"]}>&</span> <span className={styles["icon-space"]}>&</span>
<MaskAvatar mask={session.mask} /> <ExportAvatar avatar={mask.avatar} />
</div> </div>
</div> </div>
<div> <div>
@ -358,11 +381,9 @@ export function ImagePreviewer(props: {
key={i} key={i}
> >
<div className={styles["avatar"]}> <div className={styles["avatar"]}>
{m.role === "user" ? ( <ExportAvatar
<Avatar avatar={config.avatar}></Avatar> avatar={m.role === "user" ? config.avatar : mask.avatar}
) : ( />
<MaskAvatar mask={session.mask} />
)}
</div> </div>
<div className={`${styles["body"]} `}> <div className={`${styles["body"]} `}>

BIN
app/icons/bot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
app/icons/chatgpt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB