Skip to content

Commit 8a6ff6c

Browse files
author
Jicheng Lu
committed
append image
1 parent 5bcf259 commit 8a6ff6c

File tree

3 files changed

+42
-30
lines changed

3 files changed

+42
-30
lines changed

src/lib/common/FileGallery.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
<i class="bx bx-trash" />
104104
</div>
105105
{/if}
106-
{#if needDownload}
106+
{#if needDownload && !!file.file_download_url}
107107
<div
108108
class="gallery-item-icon download-icon clickable"
109109
tabindex="0"

src/lib/common/MessageFileGallery.svelte

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@
1313
/** @type {string} */
1414
export let galleryStyles = '';
1515
16-
/** @type {string} */
17-
export let messageId;
16+
/** @type {any} */
17+
export let message;
18+
19+
/** @type {boolean} */
20+
export let appendImage = false;
1821
1922
/** @type {() => Promise<any>} */
2023
export let fetchFiles = () => Promise.resolve([]);
@@ -25,31 +28,38 @@
2528
/** @type {import('$fileTypes').AudioFileModel[]} */
2629
let audioFiles = [];
2730
28-
onMount(() => {
31+
onMount(async () => {
2932
if (fetchFiles != null && fetchFiles != undefined) {
30-
fetchFiles().then(data => {
31-
// @ts-ignore
32-
const validFiles = data?.filter(item => !!item.file_url) || [];
33-
// @ts-ignore
34-
textFiles = validFiles.filter(item => !isAudio(item.file_extension)).map(item => {
35-
return {
36-
file_name: item.file_name,
37-
file_extension: item.file_extension,
38-
file_data: isExternalUrl(item.file_url) ? item.file_url : `${PUBLIC_SERVICE_URL}${item.file_url}?access_token=${$userStore?.token}`,
39-
file_download_url: isExternalUrl(item.file_download_url) ? item.file_download_url : `${PUBLIC_SERVICE_URL}${item.file_download_url}?access_token=${$userStore?.token}`
40-
};
41-
});
42-
// @ts-ignore
43-
audioFiles = validFiles.filter(item => isAudio(item.file_extension)).map(item => {
44-
return {
45-
name: item.file_name,
46-
cover: AUDIO_ICON,
47-
artist: '',
48-
url: isExternalUrl(item.file_url) ? item.file_url : `${PUBLIC_SERVICE_URL}${item.file_url}?access_token=${$userStore?.token}`
49-
};
50-
});
33+
const res = await fetchFiles();
34+
// @ts-ignore
35+
const validFiles = res?.filter(item => !!item.file_url) || [];
36+
// @ts-ignore
37+
textFiles = validFiles.filter(item => !isAudio(item.file_extension)).map(item => {
38+
return {
39+
file_name: item.file_name,
40+
file_extension: item.file_extension,
41+
file_data: isExternalUrl(item.file_url) ? item.file_url : `${PUBLIC_SERVICE_URL}${item.file_url}?access_token=${$userStore?.token}`,
42+
file_download_url: isExternalUrl(item.file_download_url) ? item.file_download_url : `${PUBLIC_SERVICE_URL}${item.file_download_url}?access_token=${$userStore?.token}`
43+
};
44+
});
45+
// @ts-ignore
46+
audioFiles = validFiles.filter(item => isAudio(item.file_extension)).map(item => {
47+
return {
48+
name: item.file_name,
49+
cover: AUDIO_ICON,
50+
artist: '',
51+
url: isExternalUrl(item.file_url) ? item.file_url : `${PUBLIC_SERVICE_URL}${item.file_url}?access_token=${$userStore?.token}`
52+
};
5153
});
5254
}
55+
56+
if (appendImage && message?.data) {
57+
textFiles = [...textFiles, {
58+
file_name: 'data',
59+
file_extension: '',
60+
file_data: message?.data
61+
}];
62+
}
5363
});
5464
5565
/** @param {number} idx */
@@ -71,7 +81,7 @@
7181
onDownload={idx => handleDownloadFile(idx)}
7282
/>
7383
<AudioGallery
74-
id={messageId}
84+
id={message?.message_id}
7585
containerClasses={galleryClasses}
7686
containerStyles={galleryStyles}
7787
audios={audioFiles}

src/routes/chat/[agentId]/[conversationId]/chat-box.svelte

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1658,9 +1658,10 @@
16581658
{#if !!message.post_action_disclaimer}
16591659
<RcDisclaimer content={message.post_action_disclaimer} />
16601660
{/if}
1661-
{#if !!message.is_chat_message || !!message.has_message_files}
1661+
{#if !!message.is_chat_message || !!message.has_message_files || message?.data?.startsWith("data:image")}
16621662
<MessageFileGallery
1663-
messageId={message?.message_id}
1663+
message={message}
1664+
appendImage
16641665
galleryStyles={'justify-content: flex-end;'}
16651666
fetchFiles={() => getConversationFiles(params.conversationId, message.message_id, FileSourceType.User)}
16661667
/>
@@ -1756,9 +1757,10 @@
17561757
</div>
17571758
</div>
17581759
{/if}
1759-
{#if !!message.is_chat_message || !!message.has_message_files}
1760+
{#if !!message.is_chat_message || !!message.has_message_files || message?.data?.startsWith("data:image")}
17601761
<MessageFileGallery
1761-
messageId={message?.message_id}
1762+
message={message}
1763+
appendImage
17621764
galleryStyles={'justify-content: flex-start;'}
17631765
fetchFiles={() => getConversationFiles(params.conversationId, message.message_id, FileSourceType.Bot)}
17641766
/>

0 commit comments

Comments
 (0)