fix: property casing

This commit is contained in:
Seth 2023-08-29 17:32:02 +08:00
parent c2fd2d8e3d
commit 97ee47707e
2 changed files with 17 additions and 4 deletions

View File

@ -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",

View File

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