mirror of
https://github.com/penpot/penpot.git
synced 2026-04-25 19:28:12 +00:00
commit
daeaf14032
@ -21,7 +21,12 @@
|
||||
- Prevent deleting or moving the drafts project [Taiga #1935](https://tree.taiga.io/project/penpot/issue/1935).
|
||||
- Fix problem with zoom and selection [Taiga #1919](https://tree.taiga.io/project/penpot/issue/1919)
|
||||
- Fix problem with borders on shape export [#1092](https://github.com/penpot/penpot/issues/1092)
|
||||
- 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 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)
|
||||
- Fix SVG components preview [#1134](https://github.com/penpot/penpot/issues/1134)
|
||||
- Fix group renaming problem [Taiga #1969](https://tree.taiga.io/project/penpot/issue/1969)
|
||||
|
||||
### :arrow_up: Deps updates
|
||||
### :boom: Breaking changes
|
||||
|
||||
@ -154,6 +154,10 @@
|
||||
.modal-footer .action-buttons {
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.fields-container {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.confirm-dialog {
|
||||
|
||||
@ -256,7 +256,8 @@
|
||||
:xmlns "http://www.w3.org/2000/svg"
|
||||
:xmlnsXlink "http://www.w3.org/1999/xlink"
|
||||
:xmlns:penpot (when include-metadata? "https://penpot.app/xmlns")}
|
||||
[:& wrapper {:shape group :view-box vbox}]]))
|
||||
[:> shape-container {:shape group}
|
||||
[:& wrapper {:shape group :view-box vbox}]]]))
|
||||
|
||||
(mf/defc component-symbol
|
||||
[{:keys [id data] :as props}]
|
||||
|
||||
@ -175,10 +175,12 @@
|
||||
:files files})))))))]
|
||||
|
||||
(mf/use-effect
|
||||
(mf/deps show?)
|
||||
(fn []
|
||||
(->> (rp/query! :all-projects)
|
||||
(rx/map group-by-team)
|
||||
(rx/subs #(reset! teams %)))))
|
||||
(when show?
|
||||
(->> (rp/query! :all-projects)
|
||||
(rx/map group-by-team)
|
||||
(rx/subs #(reset! teams %))))))
|
||||
|
||||
(when current-team
|
||||
(let [sub-options (conj (vec (for [project current-projects]
|
||||
|
||||
@ -95,16 +95,17 @@
|
||||
{:type :info
|
||||
:content (tr "modals.change-email.info" (:email profile))}]
|
||||
|
||||
[:div.fields-row
|
||||
[:& fm/input {:type "email"
|
||||
:name :email-1
|
||||
:label (tr "modals.change-email.new-email")
|
||||
:trim true}]]
|
||||
[:div.fields-row
|
||||
[:& fm/input {:type "email"
|
||||
:name :email-2
|
||||
:label (tr "modals.change-email.confirm-email")
|
||||
:trim true}]]]
|
||||
[:div.fields-container
|
||||
[:div.fields-row
|
||||
[:& fm/input {:type "email"
|
||||
:name :email-1
|
||||
:label (tr "modals.change-email.new-email")
|
||||
:trim true}]]
|
||||
[:div.fields-row
|
||||
[:& fm/input {:type "email"
|
||||
:name :email-2
|
||||
:label (tr "modals.change-email.confirm-email")
|
||||
:trim true}]]]]
|
||||
|
||||
[:div.modal-footer
|
||||
[:div.action-buttons
|
||||
|
||||
@ -65,17 +65,21 @@
|
||||
'subgroup12': {'': [{asset12A}]}}
|
||||
'group2': {'subgroup21': {'': [{asset21A}}}}
|
||||
"
|
||||
[assets]
|
||||
(when-not (empty? assets)
|
||||
(reduce (fn [groups asset]
|
||||
(let [path-vector (cp/split-path (or (:path asset) ""))]
|
||||
(update-in groups (conj path-vector "")
|
||||
(fn [group]
|
||||
(if-not group
|
||||
[asset]
|
||||
(conj group asset))))))
|
||||
{}
|
||||
assets)))
|
||||
[assets reverse-sort?]
|
||||
(letfn [(sort-key [key1 key2]
|
||||
(if reverse-sort?
|
||||
(compare (d/name key2) (d/name key1))
|
||||
(compare (d/name key1) (d/name key2))))]
|
||||
(when-not (empty? assets)
|
||||
(reduce (fn [groups asset]
|
||||
(let [path-vector (cp/split-path (or (:path asset) ""))]
|
||||
(update-in groups (conj path-vector "")
|
||||
(fn [group]
|
||||
(if-not group
|
||||
[asset]
|
||||
(conj group asset))))))
|
||||
(sorted-map-by sort-key)
|
||||
assets))))
|
||||
|
||||
(defn add-group
|
||||
[asset group-name]
|
||||
@ -337,7 +341,7 @@
|
||||
:on-context-menu on-context-menu}]))])]))
|
||||
|
||||
(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}]
|
||||
(let [state (mf/use-state {:renaming nil
|
||||
:component-id nil})
|
||||
@ -350,7 +354,7 @@
|
||||
(seq (:colors selected-assets))
|
||||
(seq (:typographies selected-assets)))
|
||||
|
||||
groups (group-assets components)
|
||||
groups (group-assets components reverse-sort?)
|
||||
|
||||
on-duplicate
|
||||
(mf/use-callback
|
||||
@ -589,7 +593,7 @@
|
||||
:on-context-menu on-context-menu}]))])]))
|
||||
|
||||
(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}]
|
||||
(let [input-ref (mf/use-ref nil)
|
||||
state (mf/use-state {:renaming nil
|
||||
@ -603,7 +607,7 @@
|
||||
(seq (:colors selected-assets))
|
||||
(seq (:typographies selected-assets)))
|
||||
|
||||
groups (group-assets objects)
|
||||
groups (group-assets objects reverse-sort?)
|
||||
|
||||
add-graphic
|
||||
(mf/use-callback
|
||||
@ -937,6 +941,7 @@
|
||||
(when-not (empty? path-item)
|
||||
[:& colors-group {:file-id file-id
|
||||
:prefix (cp/merge-path-item prefix path-item)
|
||||
:key (str "group-" path-item)
|
||||
:groups content
|
||||
:open-groups open-groups
|
||||
:local? local?
|
||||
@ -952,7 +957,7 @@
|
||||
:colors colors}]))])]))
|
||||
|
||||
(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}]
|
||||
(let [selected-colors (:colors selected-assets)
|
||||
multi-colors? (> (count selected-colors) 1)
|
||||
@ -960,7 +965,7 @@
|
||||
(seq (:graphics selected-assets))
|
||||
(seq (:typographies selected-assets)))
|
||||
|
||||
groups (group-assets colors)
|
||||
groups (group-assets colors reverse-sort?)
|
||||
|
||||
add-color
|
||||
(mf/use-callback
|
||||
@ -1124,7 +1129,7 @@
|
||||
:on-context-menu on-context-menu}]))])]))
|
||||
|
||||
(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}]
|
||||
(let [state (mf/use-state {:detail-open? false
|
||||
:id nil})
|
||||
@ -1133,7 +1138,7 @@
|
||||
|
||||
local (deref refs/workspace-local)
|
||||
|
||||
groups (group-assets typographies)
|
||||
groups (group-assets typographies reverse-sort?)
|
||||
|
||||
selected-typographies (:typographies selected-assets)
|
||||
multi-typographies? (> (count selected-typographies) 1)
|
||||
@ -1560,8 +1565,8 @@
|
||||
(tr "workspace.assets.selected-count" (i18n/c selected-count))])
|
||||
[:div.listing-option-btn.first {:on-click toggle-sort}
|
||||
(if @reverse-sort?
|
||||
i/sort-descending
|
||||
i/sort-ascending)]
|
||||
i/sort-ascending
|
||||
i/sort-descending)]
|
||||
[:div.listing-option-btn {:on-click toggle-listing}
|
||||
(if @listing-thumbs?
|
||||
i/listing-enum
|
||||
@ -1574,6 +1579,7 @@
|
||||
:listing-thumbs? listing-thumbs?
|
||||
:open? (open-box? :components)
|
||||
:open-groups (open-groups :components)
|
||||
:reverse-sort? @reverse-sort?
|
||||
:selected-assets @selected-assets
|
||||
:on-asset-click (partial on-asset-click :components)
|
||||
:on-assets-delete on-assets-delete
|
||||
@ -1586,6 +1592,7 @@
|
||||
:listing-thumbs? listing-thumbs?
|
||||
:open? (open-box? :graphics)
|
||||
:open-groups (open-groups :graphics)
|
||||
:reverse-sort? @reverse-sort?
|
||||
:selected-assets @selected-assets
|
||||
:on-asset-click (partial on-asset-click :graphics)
|
||||
:on-assets-delete on-assets-delete
|
||||
@ -1596,6 +1603,7 @@
|
||||
:colors colors
|
||||
:open? (open-box? :colors)
|
||||
:open-groups (open-groups :colors)
|
||||
:reverse-sort? @reverse-sort?
|
||||
:selected-assets @selected-assets
|
||||
:on-asset-click (partial on-asset-click :colors)
|
||||
:on-assets-delete on-assets-delete
|
||||
@ -1608,6 +1616,7 @@
|
||||
:typographies typographies
|
||||
:open? (open-box? :typographies)
|
||||
:open-groups (open-groups :typographies)
|
||||
:reverse-sort? @reverse-sort?
|
||||
:selected-assets @selected-assets
|
||||
:on-asset-click (partial on-asset-click :typographies)
|
||||
:on-assets-delete on-assets-delete
|
||||
|
||||
@ -437,6 +437,8 @@
|
||||
hover-detach (mf/use-state false)
|
||||
name-input-ref (mf/use-ref)
|
||||
|
||||
name-ref (mf/use-ref (:name typography))
|
||||
|
||||
on-name-blur
|
||||
(fn [event]
|
||||
(let [content (dom/get-target-val event)]
|
||||
@ -447,7 +449,12 @@
|
||||
(fn []
|
||||
(let [pparams {:project-id (:project-id file)
|
||||
:file-id (:id file)}]
|
||||
(st/emit! (rt/nav :workspace pparams))))]
|
||||
(st/emit! (rt/nav :workspace pparams))))
|
||||
|
||||
on-name-change
|
||||
(mf/use-callback
|
||||
(fn [event]
|
||||
(mf/set-ref-val! name-ref (dom/get-target-val event))))]
|
||||
|
||||
(mf/use-effect
|
||||
(mf/deps editting?)
|
||||
@ -464,6 +471,14 @@
|
||||
(dom/focus! node)
|
||||
(dom/select-text! node))))))
|
||||
|
||||
(mf/use-effect
|
||||
(fn []
|
||||
(fn []
|
||||
(let [content (mf/ref-val name-ref)]
|
||||
;; On destroy we check if it changed
|
||||
(when (and (some? content) (not= content (:name typography)))
|
||||
(on-change {:name content}))))))
|
||||
|
||||
[:*
|
||||
[:div.element-set-options-group.typography-entry
|
||||
{:class (when selected? "selected")
|
||||
@ -536,7 +551,8 @@
|
||||
{:type "text"
|
||||
:ref name-input-ref
|
||||
:default-value (cp/merge-path-item (:path typography) (:name typography))
|
||||
:on-blur on-name-blur}]
|
||||
:on-blur on-name-blur
|
||||
:on-change on-name-change}]
|
||||
|
||||
[:div.element-set-actions-button
|
||||
{:on-click #(reset! open? false)}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user