Skip to content

Commit a0206c9

Browse files
author
Jicheng Lu
committed
add page redirect from agent detail to agents page
1 parent 7f22b31 commit a0206c9

File tree

4 files changed

+39
-10
lines changed

4 files changed

+39
-10
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/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?',

0 commit comments

Comments
 (0)