Browse Source

fix: removed delayed open preview as it can slow down editing

Tienson Qin 4 years ago
parent
commit
7ead1b5f64
1 changed files with 1 additions and 15 deletions
  1. 1 15
      src/main/frontend/components/block.cljs

+ 1 - 15
src/main/frontend/components/block.cljs

@@ -380,25 +380,11 @@
          (let [s (get page-entity :block/original-name page-name)]
            (if tag? (str "#" s) s))))]))
 
-(defn- use-delayed-open [open? page-name]
-  "A react hook to debounce open? value.
-  If open? changed from false to open, there will be a `timeout` delay.
-  Otherwise, the value will be changed to false immediately"
-  (let [[deval set-deval!] (rum/use-state nil)]
-    (rum/use-effect!
-     (fn []
-       (if open? (let [timer (js/setTimeout #(set-deval! open?) 1000)]
-                   #(js/clearTimeout timer))
-           (set-deval! open?))) ;; immediately change
-     [open? page-name])
-    deval))
-
 (rum/defc page-preview-trigger
   [{:keys [children sidebar? tippy-position tippy-distance fixed-position? open? manual?] :as config} page-name]
   (let [redirect-page-name (or (model/get-redirect-page-name page-name (:block/alias? config))
                                page-name)
         page-original-name (model/get-page-original-name redirect-page-name)
-        debounced-open? (use-delayed-open open? page-name)
         html-template (fn []
                         (when redirect-page-name
                           [:div.tippy-wrapper.overflow-y-auto.p-4
@@ -420,12 +406,12 @@
                                                        [:span.text-sm.mr-2 "Alias:"]
                                                        page-original-name])])
                            (let [page (db/entity [:block/name (string/lower-case redirect-page-name)])]
+                             (editor-handler/insert-first-page-block-if-not-exists! redirect-page-name)
                              (when-let [f (state/get-page-blocks-cp)]
                                (f (state/get-current-repo) page {:sidebar? sidebar? :preview? true})))]))]
     (if (or (not manual?) open?)
       (ui/tippy {:html            html-template
                  :interactive     true
-                 :open?           debounced-open?
                  :delay           [1000, 100]
                  :fixed-position? fixed-position?
                  :position        (or tippy-position "top")