From 07bc5d911be1d1a1f13eb3a23a5f61aa4df50ea3 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 31 Oct 2023 11:23:31 +0100 Subject: [PATCH 1/3] :bug: Fix open path when showing a component in assets --- frontend/src/app/main/data/workspace.cljs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 6d1706cc6..e8fe34645 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1350,15 +1350,19 @@ (ptk/reify ::show-component-in-assets ptk/WatchEvent (watch [_ state _] - (let [project-id (get-in state [:workspace-project :id]) - file-id (get-in state [:workspace-file :id]) - page-id (get state :current-page-id) - pparams {:file-id file-id :project-id project-id} - qparams {:page-id page-id :layout :assets}] - (rx/of (rt/nav :workspace pparams qparams) - (set-assets-section-open file-id :library true) - (set-assets-section-open file-id :components true) - (select-single-asset file-id component-id :components)))) + (let [project-id (get-in state [:workspace-project :id]) + file-id (get-in state [:workspace-file :id]) + page-id (get state :current-page-id) + pparams {:file-id file-id :project-id project-id} + qparams {:page-id page-id :layout :assets} + component-path (cph/split-path (get-in state [:workspace-data :components component-id :path])) + paths (map (fn [i] (cph/join-path (take (inc i) component-path))) (range (count component-path)))] + (rx/concat + (rx/from (map #(set-assets-group-open file-id :components % true) paths)) + (rx/of (rt/nav :workspace pparams qparams) + (set-assets-section-open file-id :library true) + (set-assets-section-open file-id :components true) + (select-single-asset file-id component-id :components))))) ptk/EffectEvent (effect [_ _ _] From 08c69e751da68c6daf9aa06d5beab7ab7e8d63b2 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 31 Oct 2023 11:56:01 +0100 Subject: [PATCH 2/3] :bug: Do not show 'Add annotation' menu entry for components with annotation --- frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 392d5f01d..a15e6881d 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs @@ -334,7 +334,7 @@ local-component? (= library-id current-file-id) component (find-component shape) - lacks-annotation? (nil? (:annotation shape)) + lacks-annotation? (nil? (:annotation component)) is-dangling? (nil? component) can-update-main? (or (not components-v2) From e01b2e9a5f614d960dbd2b30e2e1e804f72e208a Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 31 Oct 2023 13:18:27 +0100 Subject: [PATCH 3/3] :bug: Fix on shared libraries updates popup with several libraries, the update button remains disabled after updating one --- frontend/src/app/main/data/workspace/libraries.cljs | 12 +++++++++++- frontend/src/app/main/refs.cljs | 3 +++ frontend/src/app/main/ui/workspace/libraries.cljs | 8 ++++---- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index d08739427..1d3cd1ead 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -842,6 +842,15 @@ (def valid-asset-types #{:colors :components :typographies}) +(defn set-updating-library + [updating?] + (ptk/reify ::set-updating-library + ptk/UpdateEvent + (update [_ state] + (if updating? + (assoc state :updating-library true) + (dissoc state :updating-library))))) + (defn sync-file "Synchronize the given file from the given library. Walk through all shapes in all pages in the file that use some color, typography or @@ -912,7 +921,8 @@ (:redo-changes changes) file)) (rx/concat - (rx/of (msg/hide-tag :sync-dialog)) + (rx/of (set-updating-library false) + (msg/hide-tag :sync-dialog)) (when (seq (:redo-changes changes)) (rx/of (dch/commit-changes (assoc changes ;; TODO a ver qué pasa con esto :file-id file-id)))) diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index 4eaf864e3..283901616 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -576,3 +576,6 @@ (def specialized-panel (l/derived :specialized-panel st/state)) + +(def updating-library + (l/derived :updating-library st/state)) diff --git a/frontend/src/app/main/ui/workspace/libraries.cljs b/frontend/src/app/main/ui/workspace/libraries.cljs index 85a312635..ba7f845df 100644 --- a/frontend/src/app/main/ui/workspace/libraries.cljs +++ b/frontend/src/app/main/ui/workspace/libraries.cljs @@ -441,9 +441,8 @@ {::mf/wrap-props false} [{:keys [file-id file-data libraries]}] (let [summary?* (mf/use-state true) - updating?* (mf/use-state false) summary? (deref summary?*) - updating? (deref updating?*) + updating? (mf/deref refs/updating-library) see-all-assets (mf/use-fn @@ -467,8 +466,9 @@ (let [library-id (some-> (dom/get-target event) (dom/get-data "library-id") (parse-uuid))] - (reset! updating?* true) - (st/emit! (dwl/sync-file file-id library-id))))))] + (st/emit! + (dwl/set-updating-library true) + (dwl/sync-file file-id library-id))))))] (if new-css-system [:div {:class (stl/css :section)}