From dc4c6b3b14b718fd5f8bcc36033fb33ff479d398 Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Wed, 21 Aug 2024 18:55:12 +0200 Subject: [PATCH] enh: temporary-chat url search param --- src/lib/components/chat/Chat.svelte | 6 ++++-- src/lib/components/chat/ModelSelector/Selector.svelte | 8 ++++++++ src/routes/(app)/+layout.svelte | 8 +++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index c805d82fa..543b7b77d 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -270,9 +270,11 @@ ////////////////////////// const initNewChat = async () => { - window.history.replaceState(history.state, '', `/`); - await chatId.set(''); + if ($page.url.pathname.includes('/c/')) { + window.history.replaceState(history.state, '', `/`); + } + await chatId.set(''); autoScroll = true; title = ''; diff --git a/src/lib/components/chat/ModelSelector/Selector.svelte b/src/lib/components/chat/ModelSelector/Selector.svelte index 8d309b782..f1b4d1525 100644 --- a/src/lib/components/chat/ModelSelector/Selector.svelte +++ b/src/lib/components/chat/ModelSelector/Selector.svelte @@ -533,6 +533,14 @@ setTimeout(() => { newChatButton?.click(); }, 0); + + // add 'temporary-chat=true' to the URL + if ($temporaryChatEnabled) { + history.replaceState(null, '', '?temporary-chat=true'); + } else { + history.replaceState(null, '', location.pathname); + } + show = false; }} > diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index b056f8f6e..c65d6a647 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -32,7 +32,8 @@ config, showCallOverlay, tools, - functions + functions, + temporaryChatEnabled } from '$lib/stores'; import SettingsModal from '$lib/components/chat/SettingsModal.svelte'; @@ -40,6 +41,7 @@ import ChangelogModal from '$lib/components/ChangelogModal.svelte'; import AccountPending from '$lib/components/layout/Overlay/AccountPending.svelte'; import { getFunctions } from '$lib/apis/functions'; + import { page } from '$app/stores'; const i18n = getContext('i18n'); @@ -177,6 +179,10 @@ showChangelog.set(localStorage.version !== $config.version); } + if ($page.url.searchParams.get('temporary-chat') === 'true') { + temporaryChatEnabled.set(true); + } + await tick(); }