|
5 | 5 | import { utcToLocal } from '$lib/helpers/datetime'; |
6 | 6 | import { onMount } from 'svelte'; |
7 | 7 | import { _ } from 'svelte-i18n' |
8 | | - import { USER_SENDERS } from '$lib/helpers/constants'; |
| 8 | + import { BOT_SENDERS, USER_SENDERS } from '$lib/helpers/constants'; |
| 9 | + import { EditorType } from '$lib/helpers/enums'; |
9 | 10 | import Markdown from '$lib/common/Markdown.svelte'; |
10 | 11 | import MessageImageGallery from '$lib/common/MessageImageGallery.svelte'; |
11 | 12 |
|
|
17 | 18 |
|
18 | 19 | onMount(async () => { |
19 | 20 | dialogs = await GetDialogs(conversation.id); |
| 21 | + loadMessageImages(dialogs); |
20 | 22 | }); |
21 | 23 |
|
| 24 | + /** @param {import('$types').ChatResponseModel[]} dialogs */ |
| 25 | + function loadMessageImages(dialogs) { |
| 26 | + if (!!!dialogs) return; |
| 27 | +
|
| 28 | + for (let idx = 0; idx < dialogs.length; idx++) { |
| 29 | + const curMsg = dialogs[idx]; |
| 30 | + if (!USER_SENDERS.includes(curMsg?.sender?.role || '')) { |
| 31 | + continue; |
| 32 | + } |
| 33 | +
|
| 34 | + const prevMsg = dialogs[idx-1]; |
| 35 | + if (!!prevMsg && BOT_SENDERS.includes(prevMsg?.sender?.role || '') |
| 36 | + && prevMsg?.rich_content?.editor === EditorType.File) { |
| 37 | + curMsg.is_load_images = true; |
| 38 | + } |
| 39 | + } |
| 40 | + } |
| 41 | +
|
22 | 42 | /** |
23 | 43 | * @param {import('$types').ChatResponseModel} dialog |
24 | 44 | * @returns {boolean} |
|
68 | 88 | <p class="fw-bold"> |
69 | 89 | <Markdown text={dialog?.rich_content?.message?.text || dialog?.text} /> |
70 | 90 | </p> |
71 | | - {#if USER_SENDERS.includes(dialog?.sender?.role || '')} |
| 91 | + {#if dialog.is_load_images} |
72 | 92 | <MessageImageGallery |
73 | 93 | galleryClasses={'dialog-file-display'} |
74 | 94 | conversationId={conversation.id} |
|
0 commit comments