feat(filters): css tweaks

This commit is contained in:
Tienson Qin
2021-03-05 14:15:37 +08:00
parent 093faa1687
commit 1df15ca082
5 changed files with 43 additions and 17 deletions

View File

@@ -32,8 +32,8 @@
(for [reference references]
(let [filtered (get (rum/react filter-state) reference)
color (condp = filtered
true "text-green-500"
false "text-red-500"
true "text-green-400"
false "text-red-400"
nil)]
[:button.border.rounded.px-1 {:key reference :class color :style {:border-color "currentColor"}
:on-click (fn [e]
@@ -101,13 +101,14 @@
[:h2.font-bold.opacity-50 (let []
(str n-ref " Linked Reference"
(if (> n-ref 1) "s")))]
[:a {:title "Filter"
:on-click #(state/set-modal! (filter-dialog references page-name))}
[:a.opacity-50.hover:opacity-100
{:title "Filter"
:on-click #(state/set-modal! (filter-dialog references page-name))}
(svg/filter-icon (cond
(empty? filter-state) nil
(every? true? (vals filter-state)) "text-green-500"
(every? false? (vals filter-state)) "text-red-500"
:else "text-yellow-200"))]]
(every? true? (vals filter-state)) "text-green-400"
(every? false? (vals filter-state)) "text-red-400"
:else "text-yellow-400"))]]
[:div.references-blocks
(let [ref-hiccup (block/->hiccup filtered-ref-blocks

View File

@@ -923,6 +923,28 @@
(remove (fn [block] (contains? childrens (:db/id block))) blocks)
blocks)))
(defonce *blocks (atom nil))
(defn with-children-refs
[repo blocks]
(reset! *blocks blocks)
(when-let [conn (conn/get-conn repo)]
(when (seq blocks)
(let [block-ids (set (map :db/id blocks))
refs (d/q
'[:find ?p ?ref
:in $ % ?block-ids
:where
(parent ?p ?b)
[(contains? ?block-ids ?p)]
[?b :block/ref-pages ?ref]]
conn
rules
block-ids)
refs (->> (group-by first refs)
(medley/map-vals #(set (map (fn [[_ id]] {:db/id id}) %))))]
(map (fn [block] (assoc block :block/children-refs
(get refs (:db/id block)))) blocks)))))
(defn get-page-referenced-blocks
([page]
(get-page-referenced-blocks (state/get-current-repo) page))
@@ -959,13 +981,15 @@
db-utils/seq-flatten
(remove (fn [block]
(= page-id (:db/id (:block/page block)))))
(remove-children!)
(with-children-refs repo)
sort-blocks
db-utils/group-by-page
(map (fn [[k blocks]]
(let [k (if (contains? aliases (:db/id k))
(assoc k :page/alias? true)
k)]
[k (remove-children! blocks)]))))]
[k blocks]))))]
result)))))
(defn get-date-scheduled-or-deadlines
@@ -1283,4 +1307,4 @@
[(contains? ?refs ?b-ref)]))]
(conn/get-conn)
rules
page-ids))
page-ids))

View File

@@ -200,11 +200,10 @@
(let [ref-pages (->> (if group-by-page?
(mapcat last ref-blocks)
ref-blocks)
(mapcat :block/ref-pages)
(mapcat (fn [b] (concat (:block/ref-pages b) (:block/children-refs b))))
(distinct)
(map :db/id)
(db/pull-many repo '[:db/id :page/name]))
ref-pages (zipmap (map :page/name ref-pages) (map :db/id ref-pages))
exclude-ids (->> (map (fn [page] (get ref-pages page)) (get filters false))
(remove nil?)
@@ -218,13 +217,16 @@
(cond->> ref-blocks
(seq exclude-ids)
(remove (fn [block]
(let [ids (set (map :db/id (:block/ref-pages block)))]
(let [ids (set (concat (map :db/id (:block/ref-pages block))
(map :db/id (:block/children-refs block))))]
(seq (set/intersection exclude-ids ids)))))
(seq include-ids)
(remove (fn [block]
(let [ids (set (map :db/id (:block/ref-pages block)))]
(empty? (set/intersection include-ids ids)))))))]
(let [ids (set (concat (map :db/id (:block/ref-pages block))
(map :db/id (:block/children-refs block))))]
(empty? (set/intersection include-ids ids)))))
))]
(if group-by-page?
(->> (map (fn [[p ref-blocks]]
[p (filter-f ref-blocks)]) ref-blocks)

View File

@@ -66,8 +66,7 @@
}
&-panel {
@apply relative bg-white rounded-md px-4 pt-5
pb-4 shadow-xl;
@apply relative bg-white rounded-md p-8 shadow-xl;
}
&-close {

View File

@@ -29,7 +29,7 @@ module.exports = {
800: '#075985',
900: '#0c4a6e',
},
red: colors.rose,
red: colors.red,
yellow: colors.amber,
orange: colors.orange,
rose: colors.rose