From 937d3b495426f0ab0aa29bae5c5af5ecd321965a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 29 Aug 2023 14:01:08 +0200 Subject: [PATCH] :zap: Don't perform assets filtering if term is empty --- .../ui/workspace/sidebar/assets/common.cljs | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs index f83759b13..cf6448b53 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs @@ -34,20 +34,23 @@ (defn apply-filters [coll {:keys [ordering term] :as filters}] - (let [reverse? (= :desc ordering) - comp-fn (if ^boolean reverse? > <)] - (->> coll - (filter (fn [item] - (or (matches-search (:name item "!$!") term) - (matches-search (:path item "!$!") term) - (matches-search (:value item "!$!") term)))) - ;; Sort by folder order, but putting all "root" items always - ;; first, independently of sort order. - (sort-by #(str/lower (cph/merge-path-item (if (empty? (:path %)) - (if reverse? "z" "a") - (:path %)) - (:name %))) - comp-fn)))) + (let [reverse? (= :desc ordering)] + (cond->> coll + (not ^boolean (str/empty? term)) + (filter (fn [item] + (or (matches-search (:name item "!$!") term) + (matches-search (:path item "!$!") term) + (matches-search (:value item "!$!") term)))) + + ;; Sort by folder order, but putting all "root" items always + ;; first, independently of sort order. + :always + (sort-by (fn [{:keys [path name] :as item}] + (let [path (if (str/empty? path) + (if reverse? "z" "a") + path)] + (str/lower (cph/merge-path-item path name)))) + (if ^boolean reverse? > <))))) (defn add-group [asset group-name]