mirror of
https://github.com/penpot/penpot.git
synced 2025-06-07 03:41:38 +02:00
🐛 Fix problems with order in groups
This commit is contained in:
parent
885d7de11b
commit
7a523a9d89
2 changed files with 30 additions and 21 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue