Răsfoiți Sursa

fix: filter out blank blocks during search

Tienson Qin 3 ani în urmă
părinte
comite
18c378f1b9
1 a modificat fișierele cu 17 adăugiri și 16 ștergeri
  1. 17 16
      src/main/frontend/components/editor.cljs

+ 17 - 16
src/main/frontend/components/editor.cljs

@@ -165,24 +165,25 @@
                      (reset! result matched-blocks)))
                  state)}
   [state _edit-block input id q format]
-  (let [result (rum/react (get state ::result))
+  (let [result (->> (rum/react (get state ::result))
+                    (remove (fn [b] (string/blank? (:block/content (db-model/query-block-by-uuid (:block/uuid b)))))))
         chosen-handler (editor-handler/block-on-chosen-handler input id q format)
         non-exist-block-handler (editor-handler/block-non-exist-handler input)]
-    (when result
-      (ui/auto-complete
-       result
-       {:on-chosen   chosen-handler
-        :on-enter    non-exist-block-handler
-        :empty-placeholder   [:div.text-gray-500.pl-4.pr-4 "Search for a block"]
-        :item-render (fn [{:block/keys [page uuid]}]  ;; content returned from search engine is normalized
-                       (let [page (or (:block/original-name page)
-                                      (:block/name page))
-                             repo (state/sub :git/current-repo)
-                             format (db/get-page-format page)
-                             block (db-model/query-block-by-uuid uuid)
-                             content (:block/content block)]
-                         [:.py-2 (search/block-search-result-item repo uuid format content q :block)]))
-        :class       "black"}))))
+    (ui/auto-complete
+     result
+     {:on-chosen   chosen-handler
+      :on-enter    non-exist-block-handler
+      :empty-placeholder   [:div.text-gray-500.pl-4.pr-4 "Search for a block"]
+      :item-render (fn [{:block/keys [page uuid]}]  ;; content returned from search engine is normalized
+                     (let [page (or (:block/original-name page)
+                                    (:block/name page))
+                           repo (state/sub :git/current-repo)
+                           format (db/get-page-format page)
+                           block (db-model/query-block-by-uuid uuid)
+                           content (:block/content block)]
+                       (when-not (string/blank? content)
+                         [:.py-2 (search/block-search-result-item repo uuid format content q :block)])))
+      :class       "black"})))
 
 (rum/defcs block-search < rum/reactive
   {:will-unmount (fn [state]