From 0fb859a22a0ef068010ce01aebd2edc590c39b28 Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Fri, 13 Nov 2020 19:37:03 +0200 Subject: [PATCH] Default PageRegistration.routePath to path based on id (#1374) Signed-off-by: Jari Kolehmainen --- .../registries/__tests__/page-registry.test.ts | 4 ++++ .../registries/page-menu-registry.ts | 5 ----- src/extensions/registries/page-registry.ts | 18 +++++++++--------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/extensions/registries/__tests__/page-registry.test.ts b/src/extensions/registries/__tests__/page-registry.test.ts index b293b598dc..508282003c 100644 --- a/src/extensions/registries/__tests__/page-registry.test.ts +++ b/src/extensions/registries/__tests__/page-registry.test.ts @@ -28,4 +28,8 @@ describe("getPageUrl", () => { ext.manifest.name = "@foo/bar" expect(getPageUrl(ext)).toBe("/extension/foo-bar") }) + + it("adds / prefix", () => { + expect(getPageUrl(ext, "test")).toBe("/extension/foo-bar/test") + }) }) diff --git a/src/extensions/registries/page-menu-registry.ts b/src/extensions/registries/page-menu-registry.ts index dc1ef6669c..9da53dea06 100644 --- a/src/extensions/registries/page-menu-registry.ts +++ b/src/extensions/registries/page-menu-registry.ts @@ -18,11 +18,6 @@ export interface PageMenuRegistration { components: PageMenuComponents; } -export interface PageSubMenuRegistration { - url: string; - title: React.ReactNode; -} - export interface PageMenuComponents { Icon: React.ComponentType; } diff --git a/src/extensions/registries/page-registry.ts b/src/extensions/registries/page-registry.ts index 7c34a7b9c4..1618b59410 100644 --- a/src/extensions/registries/page-registry.ts +++ b/src/extensions/registries/page-registry.ts @@ -14,12 +14,6 @@ export interface PageRegistration { components: PageComponents; } -export interface SubPageRegistration { - routePath: string; // required for sub-pages - exact?: boolean; - components: PageComponents; -} - export interface PageComponents { Page: React.ComponentType; } @@ -27,6 +21,9 @@ export interface PageComponents { const routePrefix = "/extension/:name" export function getPageUrl(ext: LensExtension, baseUrl = "") { + if (baseUrl !== "" && !baseUrl.startsWith("/")) { + baseUrl = "/" + baseUrl + } const validUrlName = ext.name.replace("@", "").replace("/", "-"); return compile(routePrefix)({ name: validUrlName }) + baseUrl; } @@ -35,9 +32,12 @@ export class PageRegistry extends BaseRegistry { @action add(items: T[], ext?: LensExtension) { - const normalizedItems = items.map((i) => { - i.routePath = getPageUrl(ext, i.routePath) - return i + const normalizedItems = items.map((page) => { + if (!page.routePath) { + page.routePath = `/${page.id}` + } + page.routePath = getPageUrl(ext, page.routePath) + return page }) return super.add(normalizedItems); }