diff --git a/src/public/app/services/link.spec.ts b/src/public/app/services/link.spec.ts index 984822a50..60812ccf9 100644 --- a/src/public/app/services/link.spec.ts +++ b/src/public/app/services/link.spec.ts @@ -6,4 +6,14 @@ describe("Link", () => { const output = parseNavigationStateFromUrl("http://localhost:8080/#?searchString=hello"); expect(output).toMatchObject({ searchString: "hello" }); }); + + it("parses searchString with hash", () => { + const output = parseNavigationStateFromUrl("https://github.com/orgs/TriliumNext/discussions/1526#discussioncomment-12656660"); + expect(output).toStrictEqual({}); + }); + + it("parses notePath", () => { + const output = parseNavigationStateFromUrl(`#root/WWaBNf3SSA1b/mQ2tIzLVFKHL`); + expect(output).toMatchObject({ notePath: "root/WWaBNf3SSA1b/mQ2tIzLVFKHL", noteId: "mQ2tIzLVFKHL" }); + }); }); diff --git a/src/public/app/services/link.ts b/src/public/app/services/link.ts index 3d92ac819..df511f2c7 100644 --- a/src/public/app/services/link.ts +++ b/src/public/app/services/link.ts @@ -238,10 +238,14 @@ export function parseNavigationStateFromUrl(url: string | undefined) { } } - if (!notePath.match(/^[_a-z0-9]{4,}(\/[_a-z0-9]{4,})*$/i)) { + if (searchString) { return { searchString } } + if (!notePath.match(/^[_a-z0-9]{4,}(\/[_a-z0-9]{4,})*$/i)) { + return {}; + } + return { notePath, noteId: treeService.getNoteIdFromUrl(notePath),