mirror of
https://github.com/penpot/penpot.git
synced 2025-08-07 14:38:33 +02:00
🐛 Fix issues with non updated selected
This commit is contained in:
parent
be0d1c19fa
commit
a91a57581f
16 changed files with 91 additions and 99 deletions
|
@ -7,13 +7,14 @@
|
|||
(ns app.main.refs
|
||||
"A collection of derived refs."
|
||||
(:require
|
||||
[beicon.core :as rx]
|
||||
[okulary.core :as l]
|
||||
[app.common.data :as d]
|
||||
[app.common.pages :as cp]
|
||||
[app.common.uuid :as uuid]
|
||||
[app.main.constants :as c]
|
||||
[app.main.store :as st]))
|
||||
[app.main.data.workspace.state-helpers :as wsh]
|
||||
[app.main.store :as st]
|
||||
[beicon.core :as rx]
|
||||
[okulary.core :as l]))
|
||||
|
||||
;; ---- Global refs
|
||||
|
||||
|
@ -71,7 +72,7 @@
|
|||
(l/derived :workspace-drawing st/state))
|
||||
|
||||
(def selected-shapes
|
||||
(l/derived :selected workspace-local))
|
||||
(l/derived wsh/lookup-selected st/state))
|
||||
|
||||
(defn make-selected-ref
|
||||
[id]
|
||||
|
@ -85,7 +86,6 @@
|
|||
:edition
|
||||
:edit-path
|
||||
:tooltip
|
||||
:selected
|
||||
:panning
|
||||
:picking-color?
|
||||
:transform
|
||||
|
@ -211,30 +211,28 @@
|
|||
workspace-page-objects =))
|
||||
|
||||
(def selected-data
|
||||
(l/derived #(let [selected (get-in % [:workspace-local :selected])
|
||||
page-id (:current-page-id %)
|
||||
objects (get-in % [:workspace-data :pages-index page-id :objects])]
|
||||
(l/derived #(let [selected (wsh/lookup-selected %)
|
||||
objects (wsh/lookup-page-objects %)]
|
||||
(hash-map :selected selected
|
||||
:page-id page-id
|
||||
:objects objects))
|
||||
st/state =))
|
||||
|
||||
(defn is-child-selected?
|
||||
[id]
|
||||
(letfn [(selector [{:keys [selected page-id objects]}]
|
||||
(letfn [(selector [{:keys [selected objects]}]
|
||||
(let [children (cp/get-children id objects)]
|
||||
(some #(contains? selected %) children)))]
|
||||
(l/derived selector selected-data =)))
|
||||
|
||||
(def selected-objects
|
||||
(letfn [(selector [{:keys [selected page-id objects]}]
|
||||
(letfn [(selector [{:keys [selected objects]}]
|
||||
(->> selected
|
||||
(map #(get objects %))
|
||||
(filterv (comp not nil?))))]
|
||||
(l/derived selector selected-data =)))
|
||||
|
||||
(def selected-shapes-with-children
|
||||
(letfn [(selector [{:keys [selected page-id objects]}]
|
||||
(letfn [(selector [{:keys [selected objects]}]
|
||||
(let [children (->> selected
|
||||
(mapcat #(cp/get-children % objects))
|
||||
(filterv (comp not nil?)))]
|
||||
|
@ -242,7 +240,7 @@
|
|||
(l/derived selector selected-data =)))
|
||||
|
||||
(def selected-objects-with-children
|
||||
(letfn [(selector [{:keys [selected page-id objects]}]
|
||||
(letfn [(selector [{:keys [selected objects]}]
|
||||
(let [children (->> selected
|
||||
(mapcat #(cp/get-children % objects))
|
||||
(filterv (comp not nil?)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue