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); }