Add close icon to active filter bar

This commit is contained in:
@s.roertgen 2024-12-02 09:37:07 +01:00
parent e792f324a8
commit f560b89e62

View file

@ -107,19 +107,17 @@
;; TODO make filters configurable with a map ;; TODO make filters configurable with a map
(def filters (def filters
[{:scheme "https://w3id.org/kim/hochschulfaechersystematik/scheme" [{:scheme "https://w3id.org/kim/hochschulfaechersystematik/scheme"
:field :about :field :about
:title "Fachsystematik"} :title "Fachsystematik"}
{:scheme "https://w3id.org/kim/hcrt/scheme" {:scheme "https://w3id.org/kim/hcrt/scheme"
:field :learningResourceType :field :learningResourceType
:title "Typ"} :title "Typ"}])
])
(defn filter-bar [] (defn filter-bar []
(let [concept-schemes (re-frame/subscribe (let [concept-schemes (re-frame/subscribe
[::subs/concept-schemes (map :scheme filters)])] [::subs/concept-schemes (map :scheme filters)])]
(re-frame/dispatch (re-frame/dispatch
[::events/fetch-missing-concept-schemes [::events/fetch-missing-concept-schemes
(->> @concept-schemes (->> @concept-schemes
@ -134,13 +132,7 @@
^{:key (get-in @concept-schemes [(:scheme filter) :id])} ^{:key (get-in @concept-schemes [(:scheme filter) :id])}
[skos-multiselect-component [(get @concept-schemes (:scheme filter)) [skos-multiselect-component [(get @concept-schemes (:scheme filter))
(:field filter) (:field filter)
(:title filter)]])) (:title filter)]]))])))
#_(doall
(for [cs (keys @concept-schemes)]
^{:key (get-in @concept-schemes [cs :id])}
[skos-multiselect-component [(get @concept-schemes "https://w3id.org/kim/hcrt/scheme")
:learningResourceType
"Typ"]]))])))
(defn has-any-values? (defn has-any-values?
"checks if a map has any values" "checks if a map has any values"
@ -156,10 +148,15 @@
(defn active-filters [] (defn active-filters []
(let [active-filters (re-frame/subscribe [::subs/active-filters])] (let [active-filters (re-frame/subscribe [::subs/active-filters])]
(when (has-any-values? @active-filters) (when (has-any-values? @active-filters)
[:div [:div {:class "my-2 flex flex-nowrap gap-2"}
(doall (doall
(for [field (keys @active-filters)] (for [field (keys (filter (fn [[_ v]] (seq v)) @active-filters))]
[:div {:class "badge badge-secondary"} "hello"]))]))) (for [concept (field @active-filters)]
^{:key (:id concept)} [:div {:class "flex flex-row badge badge-lg badge-secondary p-3 gap-1 cursor-default"}
[:span {:class ""} (-> concept :prefLabel :de)]
[:span {:on-click (fn [] (re-frame/dispatch [::events/toggle-concept [concept field]]))
:class "cursor-pointer"}
[icons/close-icon]]])))])))
(defn search-bar [] (defn search-bar []
(let [search-term (reagent/atom nil) (let [search-term (reagent/atom nil)