diff --git a/src/lib/router.ts b/src/lib/router.ts index e5902c7b1..57120f2d8 100644 --- a/src/lib/router.ts +++ b/src/lib/router.ts @@ -163,30 +163,11 @@ function pathToRoute(url: URL): Route | null { const baseUrl = extractBaseUrl(hostAndPort); const id = segments.shift(); if (id) { - // Allows project paths with or without trailing slash - if ( - segments.length === 0 || - (segments.length === 1 && segments[0] === "") - ) { - return { - resource: "projects", - params: { - view: { resource: "tree" }, - id, - peer: undefined, - baseUrl, - }, - }; - } - const params = resolveProjectRoute(url, baseUrl, id, segments); + const params = resolveProjectRoute(baseUrl, id, segments, url.search); if (params) { return { resource: "projects", - params: { - ...params, - baseUrl, - id, - }, + params: params, }; } return null; diff --git a/src/views/projects/router.ts b/src/views/projects/router.ts index 6123cc4de..1cdacee22 100644 --- a/src/views/projects/router.ts +++ b/src/views/projects/router.ts @@ -464,10 +464,10 @@ function sanitizeQueryString(queryString: string): string { } export function resolveProjectRoute( - url: URL, baseUrl: BaseUrl, id: string, segments: string[], + urlSearch: string, ): ProjectsParams | null { let content = segments.shift(); let peer; @@ -514,7 +514,7 @@ export function resolveProjectRoute( resource: "issues", params: { view: { resource: "new" }, - search: sanitizeQueryString(url.search), + search: sanitizeQueryString(urlSearch), }, }, baseUrl, @@ -538,7 +538,7 @@ export function resolveProjectRoute( resource: "issues", params: { view: { resource: "list" }, - search: sanitizeQueryString(url.search), + search: sanitizeQueryString(urlSearch), }, }, baseUrl, @@ -555,7 +555,7 @@ export function resolveProjectRoute( return { view: { resource: "patch", - params: { patch, revision, search: sanitizeQueryString(url.search) }, + params: { patch, revision, search: sanitizeQueryString(urlSearch) }, }, baseUrl, id, @@ -569,7 +569,7 @@ export function resolveProjectRoute( resource: "patches", params: { view: { resource: "list" }, - search: sanitizeQueryString(url.search), + search: sanitizeQueryString(urlSearch), }, }, baseUrl, diff --git a/tests/unit/router.test.ts b/tests/unit/router.test.ts index 7e8969372..957d2fa3a 100644 --- a/tests/unit/router.test.ts +++ b/tests/unit/router.test.ts @@ -33,6 +33,7 @@ describe("route invariant when parsed", () => { view: { resource: "tree" }, baseUrl, id: "rad:zKtT7DmF9H34KkvcKj9PHW19WzjT", + route: "", }, }); }); @@ -325,6 +326,7 @@ describe("pathToRoute", () => { }, peer: undefined, id: "rad:zKtT7DmF9H34KkvcKj9PHW19WzjT", + route: "", }, }, description: "Seed Project Route w trailing slash", @@ -353,6 +355,7 @@ describe("pathToRoute", () => { }, peer: undefined, id: "rad:zKtT7DmF9H34KkvcKj9PHW19WzjT", + route: "", }, }, description: "Seed Project Route w/o trailing slash",