From fa5acd5a10712a5b30621c8c5d3d51d9a8cc1b18 Mon Sep 17 00:00:00 2001 From: angel Date: Thu, 19 Jun 2025 22:04:53 +0000 Subject: [PATCH] fix: strip trailing slashes from server URL for consistency in config updates --- app/components/NavidromeConfigContext.tsx | 7 ++++++- app/settings/page.tsx | 12 ++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/components/NavidromeConfigContext.tsx b/app/components/NavidromeConfigContext.tsx index 47c1f8f..6868c70 100644 --- a/app/components/NavidromeConfigContext.tsx +++ b/app/components/NavidromeConfigContext.tsx @@ -48,7 +48,12 @@ export const NavidromeConfigProvider: React.FC = ( }, [config]); const updateConfig = (newConfig: NavidromeConfig) => { - setConfig(newConfig); + // Strip trailing slashes from server URL for consistency + const cleanConfig = { + ...newConfig, + serverUrl: newConfig.serverUrl.replace(/\/+$/, '') + }; + setConfig(cleanConfig); setIsConnected(false); }; diff --git a/app/settings/page.tsx b/app/settings/page.tsx index 7d6c3a1..e5422b8 100644 --- a/app/settings/page.tsx +++ b/app/settings/page.tsx @@ -41,8 +41,11 @@ const SettingsPage = () => { setIsTesting(true); try { + // Strip trailing slash from server URL before testing + const cleanServerUrl = formData.serverUrl.replace(/\/+$/, ''); + const success = await testConnection({ - serverUrl: formData.serverUrl, + serverUrl: cleanServerUrl, username: formData.username, password: formData.password }); @@ -80,12 +83,17 @@ const SettingsPage = () => { return; } + // Strip trailing slash from server URL to ensure consistency + const cleanServerUrl = formData.serverUrl.replace(/\/+$/, ''); + updateConfig({ - serverUrl: formData.serverUrl, + serverUrl: cleanServerUrl, username: formData.username, password: formData.password }); + // Update form data to reflect the cleaned URL + setFormData(prev => ({ ...prev, serverUrl: cleanServerUrl })); setHasUnsavedChanges(false); toast({ title: "Settings Saved",