mirror of
https://github.com/penpot/penpot.git
synced 2025-06-29 03:37:01 +02:00
Fix race condition on page delete.
This commit is contained in:
parent
f43faa30b6
commit
7caba13173
2 changed files with 11 additions and 7 deletions
|
@ -177,21 +177,24 @@
|
||||||
|
|
||||||
;; --- Delete Page (by id)
|
;; --- Delete Page (by id)
|
||||||
|
|
||||||
(defrecord DeletePage [id]
|
(defrecord DeletePage [id next]
|
||||||
rs/WatchEvent
|
rs/WatchEvent
|
||||||
(-apply-watch [_ state s]
|
(-apply-watch [_ state s]
|
||||||
(letfn [(on-success [_]
|
(letfn [(on-success [_]
|
||||||
(rs/swap #(stpr/purge-page % id)))
|
(rx/of
|
||||||
|
(rs/swap #(stpr/purge-page % id))
|
||||||
|
next))
|
||||||
(on-failure [e]
|
(on-failure [e]
|
||||||
(uum/error (tr "errors.delete-page"))
|
(uum/error (tr "errors.delete-page"))
|
||||||
(rx/empty))]
|
(rx/empty))]
|
||||||
(->> (rp/do :delete/page id)
|
(->> (rp/do :delete/page id)
|
||||||
(rx/map on-success)
|
(rx/mapcat on-success)
|
||||||
|
(rx/filter identity)
|
||||||
(rx/catch on-failure)))))
|
(rx/catch on-failure)))))
|
||||||
|
|
||||||
(defn delete-page
|
(defn delete-page
|
||||||
[id]
|
([id] (DeletePage. id nil))
|
||||||
(DeletePage. id))
|
([id next] (DeletePage. id next)))
|
||||||
|
|
||||||
;; --- Pinned Page History Fetched
|
;; --- Pinned Page History Fetched
|
||||||
|
|
||||||
|
|
|
@ -52,8 +52,9 @@
|
||||||
delete (fn [e]
|
delete (fn [e]
|
||||||
(dom/prevent-default e)
|
(dom/prevent-default e)
|
||||||
(dom/stop-propagation e)
|
(dom/stop-propagation e)
|
||||||
(rs/emit! (udp/delete-page (:id page))
|
(let [next (dp/go-to (:project page))
|
||||||
(dp/go-to (:project page))))]
|
event (udp/delete-page (:id page) next)]
|
||||||
|
(rs/emit! event)))]
|
||||||
(html
|
(html
|
||||||
[:li {:class (when active? "selected")
|
[:li {:class (when active? "selected")
|
||||||
:on-click navigate}
|
:on-click navigate}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue