mirror of
https://github.com/logseq/logseq.git
synced 2026-05-28 14:39:48 +00:00
enhance: perf
This commit is contained in:
@@ -504,30 +504,32 @@
|
||||
(declare page-reference)
|
||||
|
||||
(defn open-page-ref
|
||||
[e page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?]
|
||||
[e config page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?]
|
||||
(util/stop e)
|
||||
(when (not (util/right-click? e))
|
||||
(cond
|
||||
(gobj/get e "shiftKey")
|
||||
(when-let [page-entity (db/entity [:block/name redirect-page-name])]
|
||||
(state/sidebar-add-block!
|
||||
(state/get-current-repo)
|
||||
(:db/id page-entity)
|
||||
:page))
|
||||
(let [redirect-page-name (or redirect-page-name
|
||||
(model/get-redirect-page-name page-name (:block/alias? config)))]
|
||||
(cond
|
||||
(gobj/get e "shiftKey")
|
||||
(when-let [page-entity (db/entity [:block/name redirect-page-name])]
|
||||
(state/sidebar-add-block!
|
||||
(state/get-current-repo)
|
||||
(:db/id page-entity)
|
||||
:page))
|
||||
|
||||
(and (util/meta-key? e) (whiteboard-handler/inside-portal? (.-target e)))
|
||||
(whiteboard-handler/add-new-block-portal-shape!
|
||||
page-name
|
||||
(whiteboard-handler/closest-shape (.-target e)))
|
||||
(and (util/meta-key? e) (whiteboard-handler/inside-portal? (.-target e)))
|
||||
(whiteboard-handler/add-new-block-portal-shape!
|
||||
page-name
|
||||
(whiteboard-handler/closest-shape (.-target e)))
|
||||
|
||||
whiteboard-page?
|
||||
(route-handler/redirect-to-whiteboard! page-name)
|
||||
whiteboard-page?
|
||||
(route-handler/redirect-to-whiteboard! page-name)
|
||||
|
||||
(not= redirect-page-name page-name)
|
||||
(route-handler/redirect-to-page! redirect-page-name)
|
||||
(not= redirect-page-name page-name)
|
||||
(route-handler/redirect-to-page! redirect-page-name)
|
||||
|
||||
:else
|
||||
(state/pub-event! [:page/create page-name-in-block])))
|
||||
:else
|
||||
(state/pub-event! [:page/create page-name-in-block]))))
|
||||
(when (and contents-page?
|
||||
(util/mobile?)
|
||||
(state/get-left-sidebar-open?))
|
||||
@@ -551,7 +553,7 @@
|
||||
[:a.relative
|
||||
{:tabIndex "0"
|
||||
:class (cond->
|
||||
(if tag? "tag" "page-ref")
|
||||
(if tag? "tag" "page-ref")
|
||||
(:property? config) (str " page-property-key block-property")
|
||||
untitled? (str " opacity-50")
|
||||
(not display-close-button?) (str " pl-0")
|
||||
@@ -566,10 +568,10 @@
|
||||
(reset! *mouse-down? true))
|
||||
:on-mouse-up (fn [e]
|
||||
(when @*mouse-down?
|
||||
(open-page-ref e page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?)
|
||||
(open-page-ref e config page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?)
|
||||
(reset! *mouse-down? false)))
|
||||
:on-key-up (fn [e] (when (and e (= (.-key e) "Enter"))
|
||||
(open-page-ref e page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?)))}
|
||||
(open-page-ref e config page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?)))}
|
||||
|
||||
(if (and (coll? children) (seq children))
|
||||
(for [child children]
|
||||
@@ -630,8 +632,6 @@
|
||||
[{:keys [children sidebar? tippy-position tippy-distance fixed-position? open? manual?] :as config} page-name]
|
||||
(let [*tippy-ref (rum/create-ref)
|
||||
page-name (util/page-name-sanity-lc page-name)
|
||||
redirect-page-name (or (model/get-redirect-page-name page-name (:block/alias? config))
|
||||
page-name)
|
||||
_ #_:clj-kondo/ignore (rum/defc html-template []
|
||||
(let [*el-popup (rum/use-ref nil)]
|
||||
|
||||
@@ -650,20 +650,22 @@
|
||||
#(.removeEventListener el-popup "keyup" cb)))
|
||||
[])
|
||||
|
||||
(when redirect-page-name
|
||||
[:div.tippy-wrapper.overflow-y-auto.p-4.outline-none.rounded-md
|
||||
{:ref *el-popup
|
||||
:tab-index -1
|
||||
:style {:width 600
|
||||
:text-align "left"
|
||||
:font-weight 500
|
||||
:max-height 600
|
||||
:padding-bottom 64}}
|
||||
(let [page-cp (state/get-page-blocks-cp)]
|
||||
(page-cp {:repo (state/get-current-repo)
|
||||
:page-name redirect-page-name
|
||||
:sidebar? sidebar?
|
||||
:preview? true}))])))]
|
||||
(let [redirect-page-name (or (model/get-redirect-page-name page-name (:block/alias? config))
|
||||
page-name)]
|
||||
(when redirect-page-name
|
||||
[:div.tippy-wrapper.overflow-y-auto.p-4.outline-none.rounded-md
|
||||
{:ref *el-popup
|
||||
:tab-index -1
|
||||
:style {:width 600
|
||||
:text-align "left"
|
||||
:font-weight 500
|
||||
:max-height 600
|
||||
:padding-bottom 64}}
|
||||
(let [page-cp (state/get-page-blocks-cp)]
|
||||
(page-cp {:repo (state/get-current-repo)
|
||||
:page-name redirect-page-name
|
||||
:sidebar? sidebar?
|
||||
:preview? true}))]))))]
|
||||
|
||||
(if (or (not manual?) open?)
|
||||
(ui/tippy {:ref *tippy-ref
|
||||
@@ -690,10 +692,9 @@
|
||||
page-name (util/page-name-sanity-lc page-name-in-block)
|
||||
page-entity (db/entity [:block/name page-name])
|
||||
whiteboard-page? (model/whiteboard-page? page-name)
|
||||
redirect-page-name (or (and (= :org (state/get-preferred-format))
|
||||
(:org-mode/insert-file-link? (state/get-config))
|
||||
redirect-page-name)
|
||||
(model/get-redirect-page-name page-name (:block/alias? config)))
|
||||
redirect-page-name (and (= :org (state/get-preferred-format))
|
||||
(:org-mode/insert-file-link? (state/get-config))
|
||||
redirect-page-name)
|
||||
inner (page-inner config
|
||||
page-name-in-block
|
||||
page-name
|
||||
|
||||
Reference in New Issue
Block a user