mirror of
https://github.com/penpot/penpot.git
synced 2025-05-13 23:16:39 +02:00
Merge remote-tracking branch 'origin/staging' into develop
This commit is contained in:
commit
390ad34b13
6 changed files with 60 additions and 25 deletions
|
@ -172,29 +172,56 @@
|
|||
(let [objects (wsh/lookup-page-objects state)]
|
||||
(rx/of (dwc/expand-all-parents ids objects))))))
|
||||
|
||||
|
||||
|
||||
(defn- select-siblings
|
||||
[state parent]
|
||||
(let [children (wsh/lookup-shapes state (:shapes parent))
|
||||
selected (into (d/ordered-set)
|
||||
(comp (remove :blocked) (map :id))
|
||||
children)]
|
||||
(rx/of (select-shapes selected))))
|
||||
|
||||
(defn- select-all-frame
|
||||
[state]
|
||||
(let [focus (:workspace-focus-selected state)
|
||||
objects (-> (wsh/lookup-page-objects state)
|
||||
(cp/focus-objects focus))
|
||||
|
||||
selected (let [frame-ids (into #{} (comp
|
||||
(map (d/getf objects))
|
||||
(map :frame-id))
|
||||
(wsh/lookup-selected state))
|
||||
frame-id (if (= 1 (count frame-ids))
|
||||
(first frame-ids)
|
||||
uuid/zero)]
|
||||
(cph/get-immediate-children objects frame-id))
|
||||
|
||||
selected (into (d/ordered-set)
|
||||
(comp (remove :blocked) (map :id))
|
||||
selected)]
|
||||
|
||||
(rx/of (select-shapes selected))))
|
||||
|
||||
|
||||
(defn select-all
|
||||
[]
|
||||
(ptk/reify ::select-all
|
||||
ptk/WatchEvent
|
||||
(watch [_ state _]
|
||||
(let [focus (:workspace-focus-selected state)
|
||||
objects (-> (wsh/lookup-page-objects state)
|
||||
(cp/focus-objects focus))
|
||||
(let [current-selection-parents (->> (wsh/lookup-selected state)
|
||||
(wsh/lookup-shapes state)
|
||||
(into #{} (map :parent-id)))
|
||||
num-parents (count current-selection-parents)
|
||||
parent (when (= num-parents 1)
|
||||
(wsh/lookup-shape state (first current-selection-parents)))]
|
||||
|
||||
selected (let [frame-ids (into #{} (comp
|
||||
(map (d/getf objects))
|
||||
(map :frame-id))
|
||||
(wsh/lookup-selected state))
|
||||
frame-id (if (= 1 (count frame-ids))
|
||||
(first frame-ids)
|
||||
uuid/zero)]
|
||||
(cph/get-immediate-children objects frame-id))
|
||||
|
||||
selected (into (d/ordered-set)
|
||||
(comp (remove :blocked) (map :id))
|
||||
selected)]
|
||||
|
||||
(rx/of (select-shapes selected))))))
|
||||
(case num-parents
|
||||
0 (select-all-frame state)
|
||||
1 (if (cph/frame-shape? parent)
|
||||
(select-all-frame state)
|
||||
(select-siblings state parent))
|
||||
nil)))))
|
||||
|
||||
(defn deselect-all
|
||||
"Clear all possible state of drawing, edition
|
||||
|
|
|
@ -737,7 +737,7 @@
|
|||
displ (gmt/translate-matrix delta)]
|
||||
|
||||
(rx/of (set-modifiers [id] {:displacement displ} false true)
|
||||
(apply-modifiers))))))
|
||||
(apply-modifiers [id]))))))
|
||||
|
||||
(defn- calculate-frame-for-move
|
||||
[ids]
|
||||
|
|
|
@ -243,7 +243,7 @@
|
|||
(into [] (distinct) (conj coll item)))
|
||||
|
||||
(mf/defc multi-input
|
||||
[{:keys [form label class name trim valid-item-fn] :as props}]
|
||||
[{:keys [form label class name trim valid-item-fn on-submit] :as props}]
|
||||
(let [form (or form (mf/use-ctx form-ctx))
|
||||
input-name (get props :name)
|
||||
touched? (get-in @form [:touched input-name])
|
||||
|
@ -297,8 +297,11 @@
|
|||
(dom/prevent-default event)
|
||||
(dom/stop-propagation event)
|
||||
(let [val (cond-> @value trim str/trim)]
|
||||
(reset! value "")
|
||||
(swap! items conj-dedup {:text val :valid (valid-item-fn val)})))
|
||||
(when (and (kbd/enter? event) (str/empty? @value) (not-empty @items))
|
||||
(on-submit form))
|
||||
(when (not (str/empty? @value))
|
||||
(reset! value "")
|
||||
(swap! items conj-dedup {:text val :valid (valid-item-fn val)}))))
|
||||
|
||||
(and (kbd/backspace? event)
|
||||
(str/empty? @value))
|
||||
|
|
|
@ -142,7 +142,8 @@
|
|||
:auto-focus? true
|
||||
:trim true
|
||||
:valid-item-fn us/parse-email
|
||||
:label (tr "modals.invite-member.emails")}]
|
||||
:label (tr "modals.invite-member.emails")
|
||||
:on-submit on-submit}]
|
||||
[:& fm/select {:name :role :options roles}]]
|
||||
|
||||
[:div.action-buttons
|
||||
|
@ -605,7 +606,7 @@
|
|||
[:div.label (tr "dashboard.team-info")]
|
||||
[:div.name (:name team)]
|
||||
[:div.icon
|
||||
[:span.update-overlay {:on-click on-image-click} i/exit]
|
||||
[:span.update-overlay {:on-click on-image-click} i/image]
|
||||
[:img {:src (cfg/resolve-team-photo-url team)}]
|
||||
[:& file-uploader {:accept "image/jpeg,image/png"
|
||||
:multi false
|
||||
|
|
|
@ -185,6 +185,7 @@
|
|||
:auto-focus? true
|
||||
:trim true
|
||||
:valid-item-fn us/parse-email
|
||||
:on-submit on-submit
|
||||
:label (tr "modals.invite-member.emails")}]]
|
||||
|
||||
[:div.buttons
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue