From 4aec26ce0703ed71be8857f1e78b18b68d2ec531 Mon Sep 17 00:00:00 2001 From: zhengjitf Date: Thu, 28 Dec 2023 14:30:55 +0800 Subject: [PATCH] Adjust operations on local storage of location history --- packages/insomnia/src/ui/index.tsx | 8 ++++++-- packages/insomnia/src/ui/routes/actions.tsx | 1 + packages/insomnia/src/ui/routes/project.tsx | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/insomnia/src/ui/index.tsx b/packages/insomnia/src/ui/index.tsx index 96a7dde23a4..c09dc1b1b86 100644 --- a/packages/insomnia/src/ui/index.tsx +++ b/packages/insomnia/src/ui/index.tsx @@ -963,7 +963,7 @@ const router = createMemoryRouter( ); // Store the last location in local storage -router.subscribe(({ location, navigation }) => { +router.subscribe(({ location, navigation, errors }) => { const match = matchPath( { path: '/organization/:organizationId', @@ -982,7 +982,9 @@ router.subscribe(({ location, navigation }) => { window.main.trackPageView({ name: routeWithoutUUID }); } - match?.params.organizationId && localStorage.setItem(`locationHistoryEntry:${match?.params.organizationId}`, currentRoute); + if (!errors && match?.params.organizationId && match?.params.organizationId) { + localStorage.setItem(`locationHistoryEntry:${match?.params.organizationId}`, currentRoute); + } }); async function renderApp() { @@ -1014,4 +1016,6 @@ if (isDevelopment()) { window.models = models; // @ts-expect-error -- TSCONVERSION needs window augmentation window.db = database; + // @ts-expect-error -- TSCONVERSION needs window augmentation + window.router = router; } diff --git a/packages/insomnia/src/ui/routes/actions.tsx b/packages/insomnia/src/ui/routes/actions.tsx index b2e0b1d54d0..4e259d64bd1 100644 --- a/packages/insomnia/src/ui/routes/actions.tsx +++ b/packages/insomnia/src/ui/routes/actions.tsx @@ -230,6 +230,7 @@ export const deleteProjectAction: ActionFunction = async ({ params }) => { await models.stats.incrementDeletedRequestsForDescendents(project); await models.project.remove(project); + localStorage.removeItem(`locationHistoryEntry:${organizationId}`) return redirect(`/organization/${organizationId}`); } catch (err) { console.log(err); diff --git a/packages/insomnia/src/ui/routes/project.tsx b/packages/insomnia/src/ui/routes/project.tsx index ce40107661a..563a5cff74c 100644 --- a/packages/insomnia/src/ui/routes/project.tsx +++ b/packages/insomnia/src/ui/routes/project.tsx @@ -227,6 +227,7 @@ export const indexLoader: LoaderFunction = async ({ params }) => { // Redirect to last visited location if (prevOrganizationLocation) { console.log('Redirecting to last visited location: ', prevOrganizationLocation); + localStorage.removeItem(`locationHistoryEntry:${organizationId}`); return redirect(prevOrganizationLocation); }