mirror of
https://github.com/logseq/logseq.git
synced 2026-05-04 19:06:21 +00:00
fix(plugin): occasional memory leak when dynamic slot ui with provide ui
This commit is contained in:
@@ -795,15 +795,22 @@
|
||||
id (str "slot__" rs)
|
||||
*el-ref (rum/use-ref nil)]
|
||||
|
||||
(rum/use-effect!
|
||||
(fn []
|
||||
(let [timer (js/setTimeout
|
||||
#(plugin-handler/hook-plugin-app type {:slot id :payload payload} nil)
|
||||
100)]
|
||||
#(js/clearTimeout timer)))
|
||||
[id])
|
||||
|
||||
(rum/use-effect!
|
||||
(fn []
|
||||
(let [el (rum/deref *el-ref)]
|
||||
(plugin-handler/hook-plugin-app type {:slot id :payload payload} nil)
|
||||
#(when-let [uis (seq (.querySelectorAll el "[data-injected-ui]"))]
|
||||
(doseq [^js el uis]
|
||||
(when-let [id (.-injectedUi (.-dataset el))]
|
||||
(js/LSPluginCore._forceCleanInjectedUI id))))))
|
||||
[id])
|
||||
[])
|
||||
|
||||
[:div.lsp-hook-ui-slot
|
||||
(merge opts {:id id
|
||||
|
||||
Reference in New Issue
Block a user