Small enhancements

This commit is contained in:
Andrés Moya 2023-08-25 13:50:21 +02:00
parent ca88314524
commit d8027936b4
2 changed files with 52 additions and 49 deletions

View file

@ -6,8 +6,10 @@
(ns app.main.ui.messages (ns app.main.ui.messages
(:require (:require
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.uuid :as uuid] [app.common.uuid :as uuid]
[app.main.data.messages :as dm] [app.main.data.messages :as dmsg]
[app.main.refs :as refs] [app.main.refs :as refs]
[app.main.store :as st] [app.main.store :as st]
[app.main.ui.icons :as i] [app.main.ui.icons :as i]
@ -39,8 +41,8 @@
:role role} :role role}
[:span [:span
content content
(for [link links] (for [[index link] (d/enumerate links)]
[:* {:key (uuid/next)} [:* {:key (dm/str "link-" index)}
" " [:a.link {:on-click (:callback link)} " " [:a.link {:on-click (:callback link)}
(:label link)]])] (:label link)]])]
(when (or (= controls :bottom-actions) (= controls :inline-actions)) (when (or (= controls :bottom-actions) (= controls :inline-actions))
@ -55,7 +57,7 @@
(mf/defc notifications (mf/defc notifications
[] []
(let [message (mf/deref refs/message) (let [message (mf/deref refs/message)
on-close #(st/emit! dm/hide)] on-close #(st/emit! dmsg/hide)]
(when message (when message
[:& banner (assoc message [:& banner (assoc message
:position (or (:position message) :fixed) :position (or (:position message) :fixed)

View file

@ -394,6 +394,48 @@
(tr "workspace.libraries.no-shared-libraries-available") (tr "workspace.libraries.no-shared-libraries-available")
(tr "workspace.libraries.no-matches-for" search-term))])])]]))) (tr "workspace.libraries.no-matches-for" search-term))])])]])))
(defn- extract-assets
[file-data library summary?]
(let [exceeded (volatile! {:components false
:colors false
:typographies false})
truncate (fn [asset-type items]
(if (and summary? (> (count items) 5))
(do
(vswap! exceeded assoc asset-type true)
(take 5 items))
items))
assets (dwl/assets-need-sync library file-data)
component-ids (into #{} (->> assets
(filter #(= (:asset-type %) :component))
(map :asset-id)))
color-ids (into #{} (->> assets
(filter #(= (:asset-type %) :color))
(map :asset-id)))
typography-ids (into #{} (->> assets
(filter #(= (:asset-type %) :typography))
(map :asset-id)))
components (->> component-ids
(map #(ctkl/get-component (:data library) %))
(sort-by #(str/lower (:name %)))
(truncate :components))
colors (->> color-ids
(map #(ctcl/get-color (:data library) %))
(sort-by #(str/lower (:name %)))
(truncate :colors))
typographies (->> typography-ids
(map #(ctyl/get-typography (:data library) %))
(sort-by #(str/lower (:name %)))
(truncate :typographies))]
[library @exceeded {:components components
:colors colors
:typographies typographies}]))
(mf/defc updates-tab (mf/defc updates-tab
{::mf/wrap-props false} {::mf/wrap-props false}
[{:keys [file-id file-data libraries]}] [{:keys [file-id file-data libraries]}]
@ -403,54 +445,13 @@
updating? (deref updating?*) updating? (deref updating?*)
see-all-assets see-all-assets
(fn [] (mf/use-fn
(reset! summary?* false)) (fn []
(reset! summary?* false)))
extract-assets
(fn [library]
(let [exceeded (volatile! {:components false
:colors false
:typographies false})
truncate (fn [asset-type items]
(if (and summary? (> (count items) 5))
(do
(vswap! exceeded assoc asset-type true)
(take 5 items))
items))
assets (dwl/assets-need-sync library file-data)
component-ids (into #{} (->> assets
(filter #(= (:asset-type %) :component))
(map :asset-id)))
color-ids (into #{} (->> assets
(filter #(= (:asset-type %) :color))
(map :asset-id)))
typography-ids (into #{} (->> assets
(filter #(= (:asset-type %) :typography))
(map :asset-id)))
components (->> component-ids
(map #(ctkl/get-component (:data library) %))
(sort-by #(str/lower (:name %)))
(truncate :components))
colors (->> color-ids
(map #(ctcl/get-color (:data library) %))
(sort-by #(str/lower (:name %)))
(truncate :colors))
typographies (->> typography-ids
(map #(ctyl/get-typography (:data library) %))
(sort-by #(str/lower (:name %)))
(truncate :typographies))]
[library @exceeded {:components components
:colors colors
:typographies typographies}]))
libs-assets (mf/with-memo [file-data libraries summary?*] libs-assets (mf/with-memo [file-data libraries summary?*]
(->> (vals libraries) (->> (vals libraries)
(map extract-assets) (map #(extract-assets file-data % summary?))
(filter (fn [[_ _ {:keys [components colors typographies]}]] (filter (fn [[_ _ {:keys [components colors typographies]}]]
(or (seq components) (or (seq components)
(seq colors) (seq colors)