From b8ed24d3209fef83fd0d4460c3720c9340b7650c Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Tue, 21 May 2024 14:36:08 +0800 Subject: [PATCH] Fix(Navigation): Fix navigate bug --- src/util/navigation.ts | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/src/util/navigation.ts b/src/util/navigation.ts index 19da234..140215a 100644 --- a/src/util/navigation.ts +++ b/src/util/navigation.ts @@ -37,15 +37,15 @@ export const navigateToView = ( version?: string, options?: NavigateOptions ) => { - const url = new URL( - `/view/${username}/${toolId}${version ? `/${version}` : ''}`, - window.location.href - ) + const searchParams = new URLSearchParams() if (platform !== import.meta.env.VITE_PLATFORM) { - url.searchParams.append('platform', platform) + searchParams.append('platform', platform) } - navigate(`${url.pathname}${url.search}`, options) + navigate( + `/view/${username}/${toolId}${version ? `/${version}` : ''}${searchParams.size ? `?${searchParams.toString()}` : ''}`, + options + ) } export const navigateToSource = ( @@ -56,14 +56,15 @@ export const navigateToSource = ( version?: string, options?: NavigateOptions ) => { - const url = new URL( - `/source/${username}/${toolId}${version ? `/${version}` : ''}`, - window.location.href - ) + const searchParams = new URLSearchParams() if (platform !== import.meta.env.VITE_PLATFORM) { - url.searchParams.append('platform', platform) + searchParams.append('platform', platform) } - navigate(`${url.pathname}${url.search}`, options) + + navigate( + `/source/${username}/${toolId}${version ? `/${version}` : ''}${searchParams.size ? `?${searchParams.toString()}` : ''}`, + options + ) } export const navigateToRedirect = ( @@ -113,12 +114,12 @@ export const navigateToEdit = ( platform: Platform, options?: NavigateOptions ) => { - const url = new URL(`/edit/${toolId}`, window.location.href) + const searchParams = new URLSearchParams() if (platform !== import.meta.env.VITE_PLATFORM) { - url.searchParams.append('platform', platform) + searchParams.append('platform', platform) } - navigate(`${url.pathname}${url.search}`, options) + navigate(`/edit/${toolId}${searchParams.size ? `?${searchParams.toString()}` : ''}`, options) } export const navigateToUser = (navigate: NavigateFunction, options?: NavigateOptions) => { @@ -135,15 +136,12 @@ export const getViewPath = ( platform: Platform, version?: string ) => { - const url = new URL( - `/view/${username}/${toolId}${version ? `/${version}` : ''}`, - window.location.href - ) + const searchParams = new URLSearchParams() if (platform !== import.meta.env.VITE_PLATFORM) { - url.searchParams.append('platform', platform) + searchParams.append('platform', platform) } - return `${url.pathname}${url.search}` + return `/view/${username}/${toolId}${version ? `/${version}` : ''}${searchParams.size ? `?${searchParams.toString()}` : ''}` } export const getAndroidUrl = (username: string, toolId: string) =>