From 79cc1cbf1772daa57ef410591b12653dcea2213c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 6 Mar 2025 22:17:14 +0200 Subject: [PATCH] fix(link): search from URL not working (closes #1335) --- src/public/app/services/link.spec.ts | 9 +++++++++ src/public/app/services/link.ts | 12 ++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 src/public/app/services/link.spec.ts diff --git a/src/public/app/services/link.spec.ts b/src/public/app/services/link.spec.ts new file mode 100644 index 000000000..984822a50 --- /dev/null +++ b/src/public/app/services/link.spec.ts @@ -0,0 +1,9 @@ +import { describe, expect, it } from "vitest"; +import { parseNavigationStateFromUrl } from "./link.js"; + +describe("Link", () => { + it("parses plain searchString", () => { + const output = parseNavigationStateFromUrl("http://localhost:8080/#?searchString=hello"); + expect(output).toMatchObject({ searchString: "hello" }); + }); +}); diff --git a/src/public/app/services/link.ts b/src/public/app/services/link.ts index 8cda26fa5..c57ec5494 100644 --- a/src/public/app/services/link.ts +++ b/src/public/app/services/link.ts @@ -198,7 +198,7 @@ function calculateHash({ notePath, ntxId, hoistedNoteId, viewScope = {} }: NoteC return hash; } -function parseNavigationStateFromUrl(url: string | undefined) { +export function parseNavigationStateFromUrl(url: string | undefined) { if (!url) { return {}; } @@ -209,11 +209,7 @@ function parseNavigationStateFromUrl(url: string | undefined) { } const hash = url.substr(hashIdx + 1); // strip also the initial '#' - const [notePath, paramString] = hash.split("?"); - - if (!notePath.match(/^[_a-z0-9]{4,}(\/[_a-z0-9]{4,})*$/i)) { - return {}; - } + let [notePath, paramString] = hash.split("?"); const viewScope: ViewScope = { viewMode: "default" @@ -242,6 +238,10 @@ function parseNavigationStateFromUrl(url: string | undefined) { } } + if (!notePath.match(/^[_a-z0-9]{4,}(\/[_a-z0-9]{4,})*$/i)) { + return { searchString } + } + return { notePath, noteId: treeService.getNoteIdFromUrl(notePath),