🐛 Fix problems with order in groups

This commit is contained in:
alonso.torres 2021-08-31 14:52:59 +02:00
parent 885d7de11b
commit 7a523a9d89
2 changed files with 30 additions and 21 deletions

View file

@ -24,6 +24,7 @@
- Fix thumbnail cropping issue [Taiga #1964](https://tree.taiga.io/project/penpot/issue/1964) - Fix thumbnail cropping issue [Taiga #1964](https://tree.taiga.io/project/penpot/issue/1964)
- Fix repeated fetch on file selection [Taiga #1933](https://tree.taiga.io/project/penpot/issue/1933) - Fix repeated fetch on file selection [Taiga #1933](https://tree.taiga.io/project/penpot/issue/1933)
- Fix rename typography on text options [Taiga #1963](https://tree.taiga.io/project/penpot/issue/1963) - Fix rename typography on text options [Taiga #1963](https://tree.taiga.io/project/penpot/issue/1963)
- Fix problems with order in groups [Taiga #1960](https://tree.taiga.io/project/penpot/issue/1960)
### :arrow_up: Deps updates ### :arrow_up: Deps updates
### :boom: Breaking changes ### :boom: Breaking changes

View file

@ -65,17 +65,21 @@
'subgroup12': {'': [{asset12A}]}} 'subgroup12': {'': [{asset12A}]}}
'group2': {'subgroup21': {'': [{asset21A}}}} 'group2': {'subgroup21': {'': [{asset21A}}}}
" "
[assets] [assets reverse-sort?]
(when-not (empty? assets) (letfn [(sort-key [key1 key2]
(reduce (fn [groups asset] (if reverse-sort?
(let [path-vector (cp/split-path (or (:path asset) ""))] (compare (d/name key2) (d/name key1))
(update-in groups (conj path-vector "") (compare (d/name key1) (d/name key2))))]
(fn [group] (when-not (empty? assets)
(if-not group (reduce (fn [groups asset]
[asset] (let [path-vector (cp/split-path (or (:path asset) ""))]
(conj group asset)))))) (update-in groups (conj path-vector "")
{} (fn [group]
assets))) (if-not group
[asset]
(conj group asset))))))
(sorted-map-by sort-key)
assets))))
(defn add-group (defn add-group
[asset group-name] [asset group-name]
@ -337,7 +341,7 @@
:on-context-menu on-context-menu}]))])])) :on-context-menu on-context-menu}]))])]))
(mf/defc components-box (mf/defc components-box
[{:keys [file-id local? components listing-thumbs? open? open-groups selected-assets [{:keys [file-id local? components listing-thumbs? open? reverse-sort? open-groups selected-assets
on-asset-click on-assets-delete on-clear-selection] :as props}] on-asset-click on-assets-delete on-clear-selection] :as props}]
(let [state (mf/use-state {:renaming nil (let [state (mf/use-state {:renaming nil
:component-id nil}) :component-id nil})
@ -350,7 +354,7 @@
(seq (:colors selected-assets)) (seq (:colors selected-assets))
(seq (:typographies selected-assets))) (seq (:typographies selected-assets)))
groups (group-assets components) groups (group-assets components reverse-sort?)
on-duplicate on-duplicate
(mf/use-callback (mf/use-callback
@ -589,7 +593,7 @@
:on-context-menu on-context-menu}]))])])) :on-context-menu on-context-menu}]))])]))
(mf/defc graphics-box (mf/defc graphics-box
[{:keys [file-id local? objects listing-thumbs? open? open-groups selected-assets [{:keys [file-id local? objects listing-thumbs? open? open-groups selected-assets reverse-sort?
on-asset-click on-assets-delete on-clear-selection] :as props}] on-asset-click on-assets-delete on-clear-selection] :as props}]
(let [input-ref (mf/use-ref nil) (let [input-ref (mf/use-ref nil)
state (mf/use-state {:renaming nil state (mf/use-state {:renaming nil
@ -603,7 +607,7 @@
(seq (:colors selected-assets)) (seq (:colors selected-assets))
(seq (:typographies selected-assets))) (seq (:typographies selected-assets)))
groups (group-assets objects) groups (group-assets objects reverse-sort?)
add-graphic add-graphic
(mf/use-callback (mf/use-callback
@ -952,7 +956,7 @@
:colors colors}]))])])) :colors colors}]))])]))
(mf/defc colors-box (mf/defc colors-box
[{:keys [file-id local? colors open? open-groups selected-assets [{:keys [file-id local? colors open? open-groups selected-assets reverse-sort?
on-asset-click on-assets-delete on-clear-selection] :as props}] on-asset-click on-assets-delete on-clear-selection] :as props}]
(let [selected-colors (:colors selected-assets) (let [selected-colors (:colors selected-assets)
multi-colors? (> (count selected-colors) 1) multi-colors? (> (count selected-colors) 1)
@ -960,7 +964,7 @@
(seq (:graphics selected-assets)) (seq (:graphics selected-assets))
(seq (:typographies selected-assets))) (seq (:typographies selected-assets)))
groups (group-assets colors) groups (group-assets colors reverse-sort?)
add-color add-color
(mf/use-callback (mf/use-callback
@ -1124,7 +1128,7 @@
:on-context-menu on-context-menu}]))])])) :on-context-menu on-context-menu}]))])]))
(mf/defc typographies-box (mf/defc typographies-box
[{:keys [file file-id local? typographies open? open-groups selected-assets [{:keys [file file-id local? typographies open? open-groups selected-assets reverse-sort?
on-asset-click on-assets-delete on-clear-selection] :as props}] on-asset-click on-assets-delete on-clear-selection] :as props}]
(let [state (mf/use-state {:detail-open? false (let [state (mf/use-state {:detail-open? false
:id nil}) :id nil})
@ -1133,7 +1137,7 @@
local (deref refs/workspace-local) local (deref refs/workspace-local)
groups (group-assets typographies) groups (group-assets typographies reverse-sort?)
selected-typographies (:typographies selected-assets) selected-typographies (:typographies selected-assets)
multi-typographies? (> (count selected-typographies) 1) multi-typographies? (> (count selected-typographies) 1)
@ -1560,8 +1564,8 @@
(tr "workspace.assets.selected-count" (i18n/c selected-count))]) (tr "workspace.assets.selected-count" (i18n/c selected-count))])
[:div.listing-option-btn.first {:on-click toggle-sort} [:div.listing-option-btn.first {:on-click toggle-sort}
(if @reverse-sort? (if @reverse-sort?
i/sort-descending i/sort-ascending
i/sort-ascending)] i/sort-descending)]
[:div.listing-option-btn {:on-click toggle-listing} [:div.listing-option-btn {:on-click toggle-listing}
(if @listing-thumbs? (if @listing-thumbs?
i/listing-enum i/listing-enum
@ -1574,6 +1578,7 @@
:listing-thumbs? listing-thumbs? :listing-thumbs? listing-thumbs?
:open? (open-box? :components) :open? (open-box? :components)
:open-groups (open-groups :components) :open-groups (open-groups :components)
:reverse-sort? @reverse-sort?
:selected-assets @selected-assets :selected-assets @selected-assets
:on-asset-click (partial on-asset-click :components) :on-asset-click (partial on-asset-click :components)
:on-assets-delete on-assets-delete :on-assets-delete on-assets-delete
@ -1586,6 +1591,7 @@
:listing-thumbs? listing-thumbs? :listing-thumbs? listing-thumbs?
:open? (open-box? :graphics) :open? (open-box? :graphics)
:open-groups (open-groups :graphics) :open-groups (open-groups :graphics)
:reverse-sort? @reverse-sort?
:selected-assets @selected-assets :selected-assets @selected-assets
:on-asset-click (partial on-asset-click :graphics) :on-asset-click (partial on-asset-click :graphics)
:on-assets-delete on-assets-delete :on-assets-delete on-assets-delete
@ -1596,6 +1602,7 @@
:colors colors :colors colors
:open? (open-box? :colors) :open? (open-box? :colors)
:open-groups (open-groups :colors) :open-groups (open-groups :colors)
:reverse-sort? @reverse-sort?
:selected-assets @selected-assets :selected-assets @selected-assets
:on-asset-click (partial on-asset-click :colors) :on-asset-click (partial on-asset-click :colors)
:on-assets-delete on-assets-delete :on-assets-delete on-assets-delete
@ -1608,6 +1615,7 @@
:typographies typographies :typographies typographies
:open? (open-box? :typographies) :open? (open-box? :typographies)
:open-groups (open-groups :typographies) :open-groups (open-groups :typographies)
:reverse-sort? @reverse-sort?
:selected-assets @selected-assets :selected-assets @selected-assets
:on-asset-click (partial on-asset-click :typographies) :on-asset-click (partial on-asset-click :typographies)
:on-assets-delete on-assets-delete :on-assets-delete on-assets-delete