Skip to content

Commit 3826d0e

Browse files
author
Jicheng Lu
committed
refine file gallery
1 parent e5ef12f commit 3826d0e

File tree

7 files changed

+40
-29
lines changed

7 files changed

+40
-29
lines changed

src/lib/common/FileGallery.svelte

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@
1313
/** @type {(args0: number) => void} */
1414
export let onDelete = () => {};
1515
16+
/** @type {string} */
17+
export let containerClasses = "";
18+
19+
/** @type {string} */
20+
export let containerStyles = "";
21+
22+
/** @type {boolean} */
23+
export let disableDefaultStyles = false;
24+
1625
/**
1726
* @param {any} e
1827
* @param {number} idx
@@ -26,6 +35,10 @@
2635
</script>
2736

2837
{#if files?.length > 0}
38+
<div
39+
class="{disableDefaultStyles ? '' : 'file-gallery-list'} {containerClasses}"
40+
style={`${containerStyles}`}
41+
>
2942
<LightboxGallery transitionDuration={100}>
3043
<svelte:fragment slot="thumbnail">
3144
{#each files as file, idx (idx)}
@@ -59,4 +72,5 @@
5972
</GalleryImage>
6073
{/each}
6174
</LightboxGallery>
62-
{/if}
75+
</div>
76+
{/if}

src/lib/helpers/constants.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ export const USER_SENDERS = [
44
UserRole.Admin,
55
UserRole.User,
66
UserRole.Client
7+
];
8+
9+
export const BOT_SENDERS = [
10+
UserRole.Assistant
711
];

src/lib/scss/custom/components/_file.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ $file-screen-max-width: 500px;
7676
}
7777
}
7878

79-
.chat-file-upload-gallery {
80-
margin: 5px 10px;
79+
.file-gallery-list {
80+
margin: 5px 0px;
8181
display: flex;
8282
flex-wrap: wrap;
8383
gap: 3px;
84-
justify-content: center;
84+
justify-content: flex-start;
8585
}

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

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import { onMount, setContext, tick } from 'svelte';
1212
import Viewport from 'svelte-viewport-info';
1313
import { PUBLIC_LIVECHAT_ENTRY_ICON } from '$env/static/public';
14-
import { USER_SENDERS } from '$lib/helpers/constants';
14+
import { BOT_SENDERS, USER_SENDERS } from '$lib/helpers/constants';
1515
import { signalr } from '$lib/services/signalr-service.js';
1616
import { webSpeech } from '$lib/services/web-speech.js';
1717
import { sendMessageToHub, GetDialogs, deleteConversationMessage } from '$lib/services/conversation-service.js';
@@ -161,7 +161,7 @@
161161
162162
/** @param {import('$types').ChatResponseModel[]} dialogs */
163163
function initUserSentMessages(dialogs) {
164-
const curConvMessages = dialogs?.filter(x => x.sender?.role != UserRole.Assistant).map(x => {
164+
const curConvMessages = dialogs?.filter(x => USER_SENDERS.includes(x.sender?.role || '')).map(x => {
165165
return {
166166
conversationId: params.conversationId,
167167
text: x.text || ''
@@ -212,7 +212,7 @@
212212
/** @param {import('$types').ChatResponseModel[]} dialogs */
213213
function findLastBotMessage(dialogs) {
214214
const lastMsg = dialogs.slice(-1)[0];
215-
return lastMsg?.sender?.role === UserRole.Assistant ? lastMsg : null;
215+
return BOT_SENDERS.includes(lastMsg?.sender?.role || '') ? lastMsg : null;
216216
}
217217
218218
async function refresh() {
@@ -247,15 +247,9 @@
247247
continue;
248248
}
249249
250-
const botMsgId = dialogs.findLastIndex((x, i) => i < idx && !USER_SENDERS.includes(x.sender?.role || ''));
251-
if (botMsgId > -1 && dialogs[botMsgId]?.rich_content?.editor === EditorType.File) {
252-
const userMsgs = dialogs.filter(x => x.message_id === curMsg.message_id && USER_SENDERS.includes(x.sender?.role || ''));
253-
if (userMsgs?.length > 1) {
254-
const userMsg = userMsgs.slice(-1)[0];
255-
userMsg.is_load_images = true;
256-
} else {
257-
curMsg.is_load_images = true;
258-
}
250+
const prevMsg = dialogs[idx-1];
251+
if (!!prevMsg && BOT_SENDERS.includes(prevMsg?.sender?.role || '') && prevMsg?.rich_content?.editor === EditorType.File) {
252+
curMsg.is_load_images = true;
259253
}
260254
}
261255
}
@@ -506,7 +500,7 @@
506500
507501
if (!!lastMsg?.rich_content?.fill_postback
508502
&& !!lastMsg?.function
509-
&& lastMsg?.sender?.role === UserRole.Assistant) {
503+
&& BOT_SENDERS.includes(lastMsg?.sender?.role || '')) {
510504
postback = {
511505
functionName: lastMsg?.function,
512506
parentId: lastMsg?.message_id,

src/routes/chat/[agentId]/[conversationId]/chatImage/chat-image-gallery.svelte

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,11 @@
3434
</script>
3535
3636
<div>
37-
<div class="chat-file-upload-gallery">
38-
<FileGallery files={files} disabled={disabled} needDelete onDelete={deleteFile} />
39-
</div>
37+
<FileGallery
38+
containerStyles={'justify-content: center; margin: 5px 10px;'}
39+
files={files}
40+
disabled={disabled}
41+
needDelete
42+
onDelete={deleteFile} />
4043
</div>
4144

src/routes/chat/[agentId]/[conversationId]/chatImage/message-image-gallery.svelte

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@
2929
});
3030
</script>
3131
32-
<div style="display: block; margin-top: 3px;">
33-
<div style="display: flex; flex-wrap: wrap; gap: 3px; justify-content: flex-end;">
34-
<FileGallery files={files} />
35-
</div>
32+
<div>
33+
<FileGallery
34+
containerStyles={'justify-content: flex-end;'}
35+
files={files}
36+
/>
3637
</div>

src/routes/chat/[agentId]/[conversationId]/richContent/rich-content.svelte

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import RcComplexOptions from "./rc-complex-options.svelte";
55
import RcMessage from "./rc-message.svelte";
66
import ChatAttachmentOptions from "../chatImage/chat-attachment-options.svelte";
7-
import FileGallery from "$lib/common/FileGallery.svelte";
87
98
/** @type {any} */
109
export let message;
@@ -61,10 +60,6 @@
6160
<ChatAttachmentOptions options={options} disabled={disabled} onConfirm={handleConfirm} />
6261
{/if}
6362
64-
{#if message.message_id !== lastBotMessage?.message_id}
65-
<FileGallery files={message.files} />
66-
{/if}
67-
6863
{#if message.message_id === lastBotMessage?.message_id && !disabled && lastBotMessage?.rich_content?.editor !== EditorType.File}
6964
{#if !isComplexElement}
7065
<RcPlainOptions options={options} isMultiSelect={isMultiSelect} disabled={disabled} onConfirm={handleConfirm} />

0 commit comments

Comments
 (0)