From d8e1fef3f08fdf2125fdd2aef35d5159c686813d Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Thu, 7 Aug 2025 18:11:22 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9Bfix/onboarding-loop=20(#6054)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web-app/src/constants/localStorage.ts | 1 + web-app/src/containers/SetupScreen.tsx | 9 ++++++++- web-app/src/routes/settings/providers/$providerName.tsx | 7 ++----- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/web-app/src/constants/localStorage.ts b/web-app/src/constants/localStorage.ts index cef01b0fd..bd5e82ca2 100644 --- a/web-app/src/constants/localStorage.ts +++ b/web-app/src/constants/localStorage.ts @@ -19,4 +19,5 @@ export const localStorageKey = { mcpGlobalPermissions: 'mcp-global-permissions', lastUsedModel: 'last-used-model', lastUsedAssistant: 'last-used-assistant', + setupCompleted: 'setup-completed', } diff --git a/web-app/src/containers/SetupScreen.tsx b/web-app/src/containers/SetupScreen.tsx index 4144e4e0a..e9867b38a 100644 --- a/web-app/src/containers/SetupScreen.tsx +++ b/web-app/src/containers/SetupScreen.tsx @@ -5,6 +5,7 @@ import { route } from '@/constants/routes' import HeaderPage from './HeaderPage' import { isProd } from '@/lib/version' import { useTranslation } from '@/i18n/react-i18next-compat' +import { localStorageKey } from '@/constants/localStorage' function SetupScreen() { const { t } = useTranslation() @@ -12,6 +13,10 @@ function SetupScreen() { const firstItemRemoteProvider = providers.length > 0 ? providers[1].provider : 'openai' + // Check if setup tour has been completed + const isSetupCompleted = + localStorage.getItem(localStorageKey.setupCompleted) === 'true' + return (
@@ -50,7 +55,9 @@ function SetupScreen() { providerName: firstItemRemoteProvider, }} search={{ - step: 'setup_remote_provider', + ...(!isSetupCompleted + ? { step: 'setup_remote_provider' } + : {}), }} >

diff --git a/web-app/src/routes/settings/providers/$providerName.tsx b/web-app/src/routes/settings/providers/$providerName.tsx index 326500273..f8e6b57c8 100644 --- a/web-app/src/routes/settings/providers/$providerName.tsx +++ b/web-app/src/routes/settings/providers/$providerName.tsx @@ -15,7 +15,6 @@ import { import { createFileRoute, Link, - useNavigate, useParams, useSearch, } from '@tanstack/react-router' @@ -32,6 +31,7 @@ import { CustomTooltipJoyRide } from '@/containers/CustomeTooltipJoyRide' import { route } from '@/constants/routes' import DeleteProvider from '@/containers/dialogs/DeleteProvider' import { updateSettings, fetchModelsFromProvider } from '@/services/providers' +import { localStorageKey } from '@/constants/localStorage' import { Button } from '@/components/ui/button' import { IconFolderPlus, IconLoader, IconRefresh } from '@tabler/icons-react' import { getProviders } from '@/services/providers' @@ -83,7 +83,6 @@ function ProviderDetail() { const { getProviderByName, setProviders, updateProvider } = useModelProvider() const provider = getProviderByName(providerName) const isSetup = step === 'setup_remote_provider' - const navigate = useNavigate() // Check if llamacpp provider needs backend configuration const needsBackendConfig = @@ -137,9 +136,7 @@ function ProviderDetail() { const { status } = data if (status === STATUS.FINISHED) { - navigate({ - to: route.home, - }) + localStorage.setItem(localStorageKey.setupCompleted, 'true') } }