Skip to content

Commit 4137612

Browse files
authored
Merge pull request #390 from iceljc/features/refine-chat-window
refine code script
2 parents 530cd5b + a0206c9 commit 4137612

File tree

9 files changed

+51
-21
lines changed

9 files changed

+51
-21
lines changed

src/lib/helpers/http.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@ axios.interceptors.response.use(
2626
// If the request was successful, return the response
2727
loaderStore.set(false);
2828
const user = getUserStore();
29-
3029
const isExpired = Date.now() / 1000 > user.expires;
31-
if (isExpired) {
30+
if (isExpired || response?.status === 401) {
3231
redirectToLogin();
3332
return Promise.reject('user token expired!');
3433
}
@@ -39,7 +38,7 @@ axios.interceptors.response.use(
3938
const user = getUserStore();
4039

4140
const isExpired = Date.now() / 1000 > user.expires;
42-
if (isExpired || (error.response && error.response.status === 401)) {
41+
if (isExpired || error?.response?.status === 401) {
4342
redirectToLogin();
4443
return Promise.reject(error);
4544
} else if (!skipGlobalError(error.config)) {

src/lib/helpers/types/agentTypes.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
* @property {import('$commonTypes').Pagination} pager - Pagination
3333
* @property {string[]?} [types]
3434
* @property {string[]?} [agentNames]
35-
* @property {string} [similarName]
35+
* @property {string?} [similarName]
3636
* @property {string[]?} [labels]
3737
* @property {boolean} [isPublic]
3838
* @property {boolean} [disabled]

src/lib/helpers/types/conversationTypes.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,15 @@ IRichContent.prototype.elements;
109109
*/
110110
IRichContent.prototype.quick_replies;
111111

112+
/**
113+
* The code rich content.
114+
*
115+
* @name language
116+
* @type {string}
117+
* @instance
118+
*/
119+
IRichContent.prototype.code_script;
120+
112121
/**
113122
* The language of the code rich content.
114123
*

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1340,8 +1340,8 @@
13401340
e.preventDefault();
13411341
13421342
let text = message?.rich_content?.message?.text || message?.text || '';
1343-
if (message?.rich_content?.rich_type === RichType.ProgramCode) {
1344-
text = message?.rich_content?.message?.text;
1343+
if (message?.rich_content?.message?.rich_type === RichType.ProgramCode) {
1344+
text = message?.rich_content?.message?.code_script || text;
13451345
}
13461346
13471347
navigator.clipboard.writeText(text).then(() => {

src/routes/chat/[agentId]/[conversationId]/rich-content/rc-js-interpreter.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
5353
function initCode() {
5454
try {
55-
const text = message?.rich_content?.message?.text || message?.text || '';
55+
const text = message?.rich_content?.message?.code_script || message?.rich_content?.message?.text || message?.text || '';
5656
const parsedText = marked.lexer(text);
5757
// @ts-ignore
5858
const codeText = parsedText.filter(x => !!x.text).map(x => x.text).join('');

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@
2727
{#if message?.rich_content?.message?.rich_type === RichType.ProgramCode
2828
&& message?.rich_content?.message?.language === 'javascript'}
2929
<RcJsInterpreter message={message} scrollable />
30-
{:else if message?.rich_content?.message?.rich_type === RichType.ProgramCode}
31-
<Markdown containerClasses={markdownClasses} text={message?.text} rawText />
3230
{:else}
3331
<Markdown containerClasses={markdownClasses} text={text} rawText />
3432
{/if}

src/routes/page/agent/+page.svelte

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,16 @@
6868
pageSize: $page.url.searchParams.get("pageSize")
6969
}, { defaultPageSize: pageSize });
7070
71+
const similarName = $page.url.searchParams.get("similarName")?.trim();
72+
7173
filter = {
7274
...filter,
7375
pager: {
7476
...filter.pager,
7577
page: pageNum,
7678
size: pageSizeNum
77-
}
79+
},
80+
similarName: similarName
7881
};
7982
8083
user = await myInfo();
@@ -92,7 +95,7 @@
9295
},
9396
types: selectedAgentTypes?.length > 0 ? selectedAgentTypes : null,
9497
labels: selectedAgentLabels?.length > 0 ? selectedAgentLabels : null,
95-
similarName: event.payload || null
98+
similarName: event.payload?.trim() || null
9699
};
97100
98101
getPagedAgents();
@@ -105,7 +108,11 @@
105108
106109
function getPagedAgents() {
107110
isLoading = true;
108-
getAgents(filter, true).then(data => {
111+
const innerFilter = {
112+
...filter,
113+
similarName: filter.similarName ? decodeURIComponent(filter.similarName) : null
114+
};
115+
getAgents(innerFilter, true).then(data => {
109116
agents = data;
110117
}).catch(() => {
111118
agents = { items: [], count: 0 };
@@ -171,10 +178,16 @@
171178
count: totalItemsCount || 0
172179
};
173180
174-
setUrlQueryParams($page.url, [
181+
const queryParams = [
175182
{ key: 'page', value: `${pager.page}` },
176183
{ key: 'pageSize', value: `${pager.size}` }
177-
], () => goToUrl(`${$page.url.pathname}${$page.url.search}`));
184+
];
185+
186+
if (filter.similarName) {
187+
queryParams.push({ key: 'similarName', value: encodeURIComponent(filter.similarName) });
188+
}
189+
190+
setUrlQueryParams($page.url, queryParams, () => goToUrl(`${$page.url.pathname}${$page.url.search}`));
178191
}
179192
180193
/**

src/routes/page/agent/[agentId]/+page.svelte

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
import AgentTabs from './agent-tabs.svelte';
1414
import { page } from '$app/stores';
1515
import { deleteAgent, getAgent, saveAgent } from '$lib/services/agent-service.js';
16-
import { onMount } from 'svelte';
16+
import { onDestroy, onMount } from 'svelte';
1717
import { _ } from 'svelte-i18n'
1818
import Swal from 'sweetalert2'
1919
import { goto } from '$app/navigation';
2020
import { AgentExtensions } from '$lib/helpers/utils/agent';
2121
import AgentTemplate from './agent-components/agent-template.svelte';
22+
import { globalEventStore } from '$lib/helpers/store';
23+
import { GlobalEvent } from '$lib/helpers/enums';
2224
2325
/** @type {import('$agentTypes').AgentModel} */
2426
let agent;
@@ -30,6 +32,8 @@
3032
let agentTemplateCmp = null;
3133
/** @type {any} */
3234
let agentTabsCmp = null;
35+
/** @type {any} */
36+
let unsubscriber;
3337
3438
/** @type {boolean} */
3539
let isLoading = false;
@@ -45,8 +49,21 @@
4549
}).finally(() => {
4650
isLoading = false;
4751
});
52+
53+
unsubscriber = globalEventStore.subscribe((/** @type {import('$commonTypes').GlobalEvent} */ event) => {
54+
if (event.name !== GlobalEvent.Search) return;
55+
56+
const similarName = event.payload?.trim();
57+
if (similarName) {
58+
window.location.href = `/page/agent?page=${1}&pageSize=${12}&similarName=${encodeURIComponent(similarName)}`;
59+
}
60+
});
4861
});
4962
63+
onDestroy(() => {
64+
unsubscriber?.();
65+
});
66+
5067
function updateCurrentAgent() {
5168
Swal.fire({
5269
title: 'Are you sure?',

src/routes/page/conversation/[conversationId]/conv-dialog-element.svelte

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,6 @@
2323
{#if dialog?.rich_content?.message?.rich_type === RichType.ProgramCode
2424
&& dialog?.rich_content?.message?.language === 'javascript'}
2525
<RcJsInterpreter message={dialog} scrollable containerStyles={'color: var(--bs-primary);'} />
26-
{:else if dialog?.rich_content?.message?.rich_type === RichType.ProgramCode}
27-
<Markdown
28-
containerClasses={'dialog-item-text'}
29-
text={dialog?.text}
30-
rawText
31-
/>
3226
{:else}
3327
<Markdown
3428
containerClasses={'dialog-item-text'}

0 commit comments

Comments
 (0)