mirror of
https://github.com/penpot/penpot.git
synced 2026-04-29 21:28:20 +00:00
🎉 Add shortcut helper for creating events
This commit is contained in:
parent
892c9ab12c
commit
b747ccc382
@ -242,3 +242,7 @@
|
||||
(l/error :hint "error on event batching stream" :cause cause))
|
||||
(fn []
|
||||
(l/debug :hitn "events batching stream terminated")))))))))
|
||||
|
||||
(defn event
|
||||
[props]
|
||||
(ptk/data-event ::events props))
|
||||
|
||||
@ -912,22 +912,19 @@
|
||||
;; avoid send a lot of events (that are not necessary); this
|
||||
;; decision is made explicitly by the responsible team.
|
||||
(if (ctc/instance-head? shape)
|
||||
(ptk/data-event ::ev/event
|
||||
{::ev/name "use-library-component"
|
||||
::ev/origin origin
|
||||
:is-external-library external-lib?
|
||||
:parent-shape-type parent-type})
|
||||
(ev/event {::ev/name "use-library-component"
|
||||
::ev/origin origin
|
||||
:is-external-library external-lib?
|
||||
:parent-shape-type parent-type})
|
||||
(if (cfh/has-layout? objects (:parent-id shape))
|
||||
(ptk/data-event ::ev/event
|
||||
{::ev/name "layout-add-element"
|
||||
::ev/origin origin
|
||||
:element-type (get shape :type)
|
||||
:parent-type parent-type})
|
||||
(ptk/data-event ::ev/event
|
||||
{::ev/name "create-shape"
|
||||
::ev/origin origin
|
||||
:shape-type (get shape :type)
|
||||
:parent-shape-type parent-type})))))))
|
||||
(ev/event {::ev/name "layout-add-element"
|
||||
::ev/origin origin
|
||||
:element-type (get shape :type)
|
||||
:parent-type parent-type})
|
||||
(ev/event {::ev/name "create-shape"
|
||||
::ev/origin origin
|
||||
:shape-type (get shape :type)
|
||||
:parent-shape-type parent-type})))))))
|
||||
|
||||
(rx/of (dwu/start-undo-transaction undo-id)
|
||||
(dch/commit-changes changes)
|
||||
|
||||
@ -191,8 +191,8 @@
|
||||
(rx/of (add-flow (:id frame))))
|
||||
(if first?
|
||||
;; When the first interaction of the page is created we emit the event "create-prototype"
|
||||
(rx/of (ptk/event ::ev/event {::ev/name "create-prototype"}))
|
||||
(rx/of (ptk/event ::ev/event {::ev/name "add-prototype-interaction"})))))))))
|
||||
(rx/of (ev/event {::ev/name "create-prototype"}))
|
||||
(rx/of (ev/event {::ev/name "add-prototype-interaction"})))))))))
|
||||
|
||||
(defn remove-interaction
|
||||
([shape index]
|
||||
|
||||
@ -486,26 +486,23 @@
|
||||
external-lib? (not= file-id (:component-file shape))
|
||||
origin "workspace:duplicate-shapes"]
|
||||
|
||||
;; NOTE: we don't emit the create-shape event all the time for
|
||||
;; avoid send a lot of events (that are not necessary); this
|
||||
;; decision is made explicitly by the responsible team.
|
||||
;; NOTE: we don't emit the create-shape event all the time for
|
||||
;; avoid send a lot of events (that are not necessary); this
|
||||
;; decision is made explicitly by the responsible team.
|
||||
(if (ctk/instance-head? shape)
|
||||
(ptk/data-event ::ev/event
|
||||
{::ev/name "use-library-component"
|
||||
::ev/origin origin
|
||||
:is-external-library external-lib?
|
||||
:parent-shape-type parent-type})
|
||||
(ev/event {::ev/name "use-library-component"
|
||||
::ev/origin origin
|
||||
:is-external-library external-lib?
|
||||
:parent-shape-type parent-type})
|
||||
(if (cfh/has-layout? objects (:parent-id shape))
|
||||
(ptk/data-event ::ev/event
|
||||
{::ev/name "layout-add-element"
|
||||
::ev/origin origin
|
||||
:element-type (get shape :type)
|
||||
:parent-type parent-type})
|
||||
(ptk/data-event ::ev/event
|
||||
{::ev/name "create-shape"
|
||||
::ev/origin origin
|
||||
:shape-type (get shape :type)
|
||||
:parent-shape-type parent-type})))))))
|
||||
(ev/event {::ev/name "layout-add-element"
|
||||
::ev/origin origin
|
||||
:element-type (get shape :type)
|
||||
:parent-type parent-type})
|
||||
(ev/event {::ev/name "create-shape"
|
||||
::ev/origin origin
|
||||
:shape-type (get shape :type)
|
||||
:parent-shape-type parent-type})))))))
|
||||
|
||||
;; Warning: This order is important for the focus mode.
|
||||
(->> (rx/of
|
||||
|
||||
@ -143,18 +143,15 @@
|
||||
(->> (rx/of (dwe/start-edition-mode (:id shape)))
|
||||
(rx/observe-on :async)))
|
||||
|
||||
(rx/of (ptk/data-event ::ev/event
|
||||
{::ev/name "create-shape"
|
||||
::ev/origin "workspace:add-shape"
|
||||
:type (get shape :type)
|
||||
:parent-type (cfh/get-shape-type objects (:parent-id shape))}))
|
||||
(rx/of (ev/event {::ev/name "create-shape"
|
||||
::ev/origin "workspace:add-shape"
|
||||
:type (get shape :type)
|
||||
:parent-type (cfh/get-shape-type objects (:parent-id shape))}))
|
||||
|
||||
(when (cfh/has-layout? objects (:parent-id shape))
|
||||
(rx/of (ptk/data-event ::ev/event
|
||||
{::ev/name "layout-add-element"
|
||||
::ev/origin "workspace:add-shape"
|
||||
:element-type (get shape :type)})))))))))
|
||||
|
||||
(rx/of (ev/event {::ev/name "layout-add-element"
|
||||
::ev/origin "workspace:add-shape"
|
||||
:element-type (get shape :type)})))))))))
|
||||
|
||||
(defn move-shapes-into-frame
|
||||
[frame-id shapes]
|
||||
@ -295,10 +292,9 @@
|
||||
(dch/commit-changes changes)
|
||||
(dws/select-shapes (d/ordered-set (:id frame-shape)))
|
||||
(ptk/data-event :layout/update {:ids [(:id frame-shape)]})
|
||||
(ptk/event ::ev/event
|
||||
{::ev/name "create-board"
|
||||
:converted-from (cfh/get-selected-type objects selected)
|
||||
:parent-type (cfh/get-shape-type objects (:parent-id frame-shape))})
|
||||
(ev/event {::ev/name "create-board"
|
||||
:converted-from (cfh/get-selected-type objects selected)
|
||||
:parent-type (cfh/get-shape-type objects (:parent-id frame-shape))})
|
||||
(dwu/commit-undo-transaction undo-id))))))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
@ -1090,11 +1090,10 @@
|
||||
emit-layout-event? (and (cfh/has-layout? objects frame-id)
|
||||
(pos? moved-count))]
|
||||
(when emit-layout-event?
|
||||
(rx/of (ptk/data-event ::ev/event
|
||||
{::ev/name "layout-add-element"
|
||||
:source "move-shapes-to-frame"
|
||||
:element-type (cfh/get-selected-type objects ids)
|
||||
:moved moved-count}))))
|
||||
(rx/of (ev/event {::ev/name "layout-add-element"
|
||||
::ev/origin "workspace:move-shapes-to-frame"
|
||||
:element-type (cfh/get-selected-type objects ids)
|
||||
:moved moved-count}))))
|
||||
|
||||
(when (and (some? frame-id) (d/not-empty? changes))
|
||||
(rx/of (dch/commit-changes changes)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user