From b13fcf9742cbe694a355e29cd0ae2cf98f075807 Mon Sep 17 00:00:00 2001 From: Seth Date: Fri, 27 Oct 2023 17:10:53 +0800 Subject: [PATCH] fix: try solve no tree at startup --- package.json | 2 +- src/libs/utils.ts | 17 +++++++++++++++++ src/plugin.tsx | 3 ++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8f16f31..6205f3a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "logseq-plugin-favorite-tree", - "version": "1.0.5", + "version": "1.0.6", "main": "dist/index.html", "logseq": { "id": "_sethyuan-logseq-favorite-tree", diff --git a/src/libs/utils.ts b/src/libs/utils.ts index d42df2b..25900a7 100644 --- a/src/libs/utils.ts +++ b/src/libs/utils.ts @@ -89,6 +89,23 @@ export async function queryForSubItems(name: string) { return result } +export function waitForEl(selector: string, timeout: number) { + const start = Date.now() + + function tryFindEl(resolve: (el: Element | null) => void) { + const el = parent.document.querySelector(selector) + if (el != null) { + resolve(el) + } else if (Date.now() - start <= timeout) { + setTimeout(() => tryFindEl(resolve), 100) + } else { + resolve(null) + } + } + + return new Promise(tryFindEl) +} + async function getQuickFilters(name: string) { const [{ uuid: blockUUID }, { uuid: pageUUID }] = ( await logseq.DB.datascriptQuery( diff --git a/src/plugin.tsx b/src/plugin.tsx index c2070d3..4eac4e2 100644 --- a/src/plugin.tsx +++ b/src/plugin.tsx @@ -3,7 +3,7 @@ import { setup, t } from "logseq-l10n" import { render } from "preact" import { throttle } from "rambdax" import FavList from "./comps/FavList" -import { hash, queryForSubItems, setLanguage } from "./libs/utils" +import { hash, queryForSubItems, setLanguage, waitForEl } from "./libs/utils" import zhCN from "./translations/zh-CN.json" let dragHandle: HTMLElement | null = null @@ -81,6 +81,7 @@ async function main() { const graphOff = logseq.App.onCurrentGraphChanged(adjustLeftBarWidth) + await waitForEl("#left-sidebar .favorite-item", 1000) await processFavorites() await adjustLeftBarWidth()