mirror of
https://github.com/penpot/penpot.git
synced 2026-08-01 19:06:18 +00:00
Merge pull request #6588 from penpot/niwinz-develop-fix-boolean
🐛 Fix incorrect bool shape creation
This commit is contained in:
commit
eafea7aec9
@ -33,6 +33,12 @@
|
|||||||
(def boolean-or-nil?
|
(def boolean-or-nil?
|
||||||
(some-fn nil? boolean?))
|
(some-fn nil? boolean?))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Commonly used transducers
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(def xf:map-id (map :id))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Data Structures
|
;; Data Structures
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|||||||
@ -64,15 +64,15 @@
|
|||||||
(-> (lookup-page state file-id page-id)
|
(-> (lookup-page state file-id page-id)
|
||||||
(get :objects))))
|
(get :objects))))
|
||||||
|
|
||||||
(defn process-selected-shapes
|
(defn process-selected
|
||||||
([objects selected]
|
([objects selected]
|
||||||
(process-selected-shapes objects selected nil))
|
(process-selected objects selected nil))
|
||||||
|
|
||||||
([objects selected {:keys [omit-blocked?] :or {omit-blocked? false}}]
|
([objects selected {:keys [omit-blocked?] :or {omit-blocked? false}}]
|
||||||
(letfn [(selectable? [id]
|
(letfn [(selectable? [id]
|
||||||
(and (contains? objects id)
|
(and (contains? objects id)
|
||||||
(or (not omit-blocked?)
|
(or (not omit-blocked?)
|
||||||
(not (get-in objects [id :blocked] false)))))]
|
(not (dm/get-in objects [id :blocked] false)))))]
|
||||||
(let [selected (->> selected (cfh/clean-loops objects))]
|
(let [selected (->> selected (cfh/clean-loops objects))]
|
||||||
(into (d/ordered-set)
|
(into (d/ordered-set)
|
||||||
(filter selectable?)
|
(filter selectable?)
|
||||||
@ -95,7 +95,7 @@
|
|||||||
([state page-id options]
|
([state page-id options]
|
||||||
(let [objects (lookup-page-objects state page-id)
|
(let [objects (lookup-page-objects state page-id)
|
||||||
selected (dm/get-in state [:workspace-local :selected])]
|
selected (dm/get-in state [:workspace-local :selected])]
|
||||||
(process-selected-shapes objects selected options))))
|
(process-selected objects selected options))))
|
||||||
|
|
||||||
(defn lookup-shape
|
(defn lookup-shape
|
||||||
([state id]
|
([state id]
|
||||||
|
|||||||
@ -44,7 +44,7 @@
|
|||||||
:frame-id (:frame-id head)
|
:frame-id (:frame-id head)
|
||||||
:parent-id (:parent-id head)
|
:parent-id (:parent-id head)
|
||||||
:name name
|
:name name
|
||||||
:shapes (vec shapes)}
|
:shapes (into [] d/xf:map-id shapes)}
|
||||||
|
|
||||||
shape
|
shape
|
||||||
(-> shape
|
(-> shape
|
||||||
@ -69,8 +69,8 @@
|
|||||||
(-> type d/name str/capital)
|
(-> type d/name str/capital)
|
||||||
|
|
||||||
ids
|
ids
|
||||||
(->> (or ids (dsh/lookup-selected state))
|
(->> (or ids (dsh/get-selected-ids state))
|
||||||
(cph/clean-loops objects))
|
(dsh/process-selected objects))
|
||||||
|
|
||||||
xform
|
xform
|
||||||
(comp
|
(comp
|
||||||
|
|||||||
@ -159,14 +159,15 @@
|
|||||||
(let [objects (dsh/lookup-page-objects state)
|
(let [objects (dsh/lookup-page-objects state)
|
||||||
selected (dm/get-in state [:workspace-local :selected])]
|
selected (dm/get-in state [:workspace-local :selected])]
|
||||||
{:objects objects :selected selected}))
|
{:objects objects :selected selected}))
|
||||||
st/state (fn [v1 v2]
|
st/state
|
||||||
(and (identical? (:objects v1) (:objects v2))
|
(fn [v1 v2]
|
||||||
(= (:selected v1) (:selected v2))))))
|
(and (identical? (:objects v1) (:objects v2))
|
||||||
|
(= (:selected v1) (:selected v2))))))
|
||||||
|
|
||||||
(def selected-shapes
|
(def selected-shapes
|
||||||
(l/derived
|
(l/derived
|
||||||
(fn [{:keys [objects selected]}]
|
(fn [{:keys [objects selected]}]
|
||||||
(dsh/process-selected-shapes objects selected))
|
(dsh/process-selected objects selected))
|
||||||
selected-shapes-data =))
|
selected-shapes-data =))
|
||||||
|
|
||||||
(defn make-selected-ref
|
(defn make-selected-ref
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user