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