From 97ee47707ed19380b6a11b5bafcc4c871a035489 Mon Sep 17 00:00:00 2001 From: Seth Date: Tue, 29 Aug 2023 17:32:02 +0800 Subject: [PATCH] fix: property casing --- package.json | 2 +- src/libs/utils.ts | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 381ce1c..bd35909 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "logseq-plugin-favorite-tree", - "version": "1.0.1", + "version": "1.0.2", "main": "dist/index.html", "logseq": { "id": "_sethyuan-logseq-favorite-tree", diff --git a/src/libs/utils.ts b/src/libs/utils.ts index ad4655b..fd9fc55 100644 --- a/src/libs/utils.ts +++ b/src/libs/utils.ts @@ -44,18 +44,20 @@ export async function queryForSubItems(name: string) { await logseq.DB.datascriptQuery( hierarchyProperty === "tags" ? `[:find (pull ?p [:block/name :block/original-name :block/uuid :block/properties]) - :in $ ?name + :in $ ?name ?equals ?contains :where [?t :block/name ?name] [?p :block/tags ?t]]` : `[:find (pull ?p [:block/name :block/original-name :block/uuid :block/properties]) - :in $ ?name + :in $ ?name ?equals ?contains :where [?p :block/original-name] [?p :block/properties ?props] [(get ?props :${hierarchyProperty}) ?v] - (or [(= ?v ?name)] [(contains? ?v ?name)])]`, + (or [(?equals ?v ?name)] [(?contains ?v ?name)])]`, `"${name}"`, + equals, + contains, ) ).flat() @@ -174,3 +176,14 @@ function constructFilter( obj.filters, ) } + +function equals(prop: any, val: string) { + if (prop.toLowerCase == null) return false + return prop.toLowerCase() === val.toLowerCase() +} + +function contains(prop: any, val: string) { + if (!Array.isArray(prop)) return false + const lowerVal = val.toLowerCase() + return prop.some((v) => v.toLowerCase().includes(lowerVal)) +}