@@ -7,17 +7,19 @@ import { copyToClipboard, downloadAs, useMobileScreen } from "../utils";
7
7
8
8
import CopyIcon from "../icons/copy.svg" ;
9
9
import LoadingIcon from "../icons/three-dots.svg" ;
10
- import ChatGptIcon from "../icons/chatgpt.svg " ;
10
+ import ChatGptIcon from "../icons/chatgpt.png " ;
11
11
import ShareIcon from "../icons/share.svg" ;
12
+ import BotIcon from "../icons/bot.png" ;
12
13
13
14
import DownloadIcon from "../icons/download.svg" ;
14
15
import { useMemo , useRef , useState } from "react" ;
15
16
import { MessageSelector , useMessageSelector } from "./message-selector" ;
16
17
import { Avatar } from "./emoji" ;
17
- import { MaskAvatar } from "./mask" ;
18
18
import dynamic from "next/dynamic" ;
19
+ import NextImage from "next/image" ;
19
20
20
21
import { toBlob , toPng } from "html-to-image" ;
22
+ import { DEFAULT_MASK_AVATAR } from "../store/mask" ;
21
23
22
24
const Markdown = dynamic ( async ( ) => ( await import ( "./markdown" ) ) . Markdown , {
23
25
loading : ( ) => < LoadingIcon /> ,
@@ -253,6 +255,22 @@ export function PreviewActions(props: {
253
255
) ;
254
256
}
255
257
258
+ function ExportAvatar ( props : { avatar : string } ) {
259
+ if ( props . avatar === DEFAULT_MASK_AVATAR ) {
260
+ return (
261
+ < NextImage
262
+ src = { BotIcon . src }
263
+ width = { 30 }
264
+ height = { 30 }
265
+ alt = "bot"
266
+ className = "user-avatar"
267
+ />
268
+ ) ;
269
+ }
270
+
271
+ return < Avatar avatar = { props . avatar } > </ Avatar > ;
272
+ }
273
+
256
274
export function ImagePreviewer ( props : {
257
275
messages : ChatMessage [ ] ;
258
276
topic : string ;
@@ -319,7 +337,12 @@ export function ImagePreviewer(props: {
319
337
>
320
338
< div className = { styles [ "chat-info" ] } >
321
339
< div className = { styles [ "logo" ] + " no-dark" } >
322
- < ChatGptIcon />
340
+ < NextImage
341
+ src = { ChatGptIcon . src }
342
+ alt = "logo"
343
+ width = { 50 }
344
+ height = { 50 }
345
+ />
323
346
</ div >
324
347
325
348
< div >
@@ -328,9 +351,9 @@ export function ImagePreviewer(props: {
328
351
github.com/Yidadaa/ChatGPT-Next-Web
329
352
</ div >
330
353
< div className = { styles [ "icons" ] } >
331
- < Avatar avatar = { config . avatar } > </ Avatar >
354
+ < ExportAvatar avatar = { config . avatar } / >
332
355
< span className = { styles [ "icon-space" ] } > & </ span >
333
- < MaskAvatar mask = { session . mask } />
356
+ < ExportAvatar avatar = { mask . avatar } />
334
357
</ div >
335
358
</ div >
336
359
< div >
@@ -358,14 +381,12 @@ export function ImagePreviewer(props: {
358
381
key = { i }
359
382
>
360
383
< div className = { styles [ "avatar" ] } >
361
- { m . role === "user" ? (
362
- < Avatar avatar = { config . avatar } > </ Avatar >
363
- ) : (
364
- < MaskAvatar mask = { session . mask } />
365
- ) }
384
+ < ExportAvatar
385
+ avatar = { m . role === "user" ? config . avatar : mask . avatar }
386
+ />
366
387
</ div >
367
388
368
- < div className = { ` ${ styles [ "body" ] } ` } >
389
+ < div className = { styles [ "body" ] } >
369
390
< Markdown
370
391
content = { m . content }
371
392
fontSize = { config . fontSize }
0 commit comments