diff --git a/package-lock.json b/package-lock.json index a108333..da9a47e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "svelte-highlight": "^7.2.0", "svelte-local-storage-store": "^0.4.0", "svelte-markdown": "^0.2.3", + "svelte-spa-router": "^3.3.0", "tslib": "^2.5.0", "typescript": "^4.9.3", "vite": "^4.1.0" @@ -1211,6 +1212,15 @@ "node": ">=8.10.0" } }, + "node_modules/regexparam": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.1.tgz", + "integrity": "sha512-zRgSaYemnNYxUv+/5SeoHI0eJIgTL/A2pUtXUPLHQxUldagouJ9p+K6IbIZ/JiQuCEv2E2B1O11SjVQy3aMCkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -1581,6 +1591,18 @@ "node": ">=12" } }, + "node_modules/svelte-spa-router": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/svelte-spa-router/-/svelte-spa-router-3.3.0.tgz", + "integrity": "sha512-cwRNe7cxD43sCvSfEeaKiNZg3FCizGxeMcf7CPiWRP3jKXjEma3vxyyuDtPOam6nWbVxl9TNM3hlE/i87ZlqcQ==", + "dev": true, + "dependencies": { + "regexparam": "2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ItalyPaleAle" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", diff --git a/package.json b/package.json index 42fc61d..b98486f 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "svelte-highlight": "^7.2.0", "svelte-local-storage-store": "^0.4.0", "svelte-markdown": "^0.2.3", + "svelte-spa-router": "^3.3.0", "tslib": "^2.5.0", "typescript": "^4.9.3", "vite": "^4.1.0" diff --git a/src/App.svelte b/src/App.svelte index def4c1d..6ff6956 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -1,8 +1,9 @@ @@ -25,14 +24,12 @@
- +
- {#if activeChatId} - - {:else} - - {/if} + {#key $location} + + {/key}
diff --git a/src/lib/Chat.svelte b/src/lib/Chat.svelte index 76720c4..5b6c278 100644 --- a/src/lib/Chat.svelte +++ b/src/lib/Chat.svelte @@ -6,9 +6,11 @@ import Code from "./Code.svelte"; import { afterUpdate, onMount } from "svelte"; + import { replace } from "svelte-spa-router"; import SvelteMarkdown from "svelte-markdown"; - export let chatId: number; + export let params = { chatId: undefined }; + let chatId: number = parseInt(params.chatId); let updating: boolean = false; let input: HTMLTextAreaElement; @@ -229,8 +231,9 @@ const deleteChat = () => { if (confirm("Are you sure you want to delete this chat?")) { - chatsStorage.update((chats) => chats.filter((chat) => chat.id !== chatId)); - chatId = null; + replace("/").then(() => { + chatsStorage.update((chats) => chats.filter((chat) => chat.id !== chatId)); + }); } }; diff --git a/src/lib/Home.svelte b/src/lib/Home.svelte index 2179adc..a50d3dc 100644 --- a/src/lib/Home.svelte +++ b/src/lib/Home.svelte @@ -2,8 +2,6 @@ import { addChat, apiKeyStorage } from "./Storage.svelte"; $: apiKey = $apiKeyStorage; - - export let activeChatId: number;
@@ -54,12 +52,7 @@ {/if} diff --git a/src/lib/Navbar.svelte b/src/lib/Navbar.svelte index 4ffd79a..2ec13bc 100644 --- a/src/lib/Navbar.svelte +++ b/src/lib/Navbar.svelte @@ -4,7 +4,7 @@