0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-15 17:21:17 -05:00

Fix race condition on page delete.

This commit is contained in:
Andrey Antukh 2016-03-29 21:56:10 +03:00
parent f43faa30b6
commit 7caba13173
2 changed files with 11 additions and 7 deletions

View file

@ -177,21 +177,24 @@
;; --- Delete Page (by id)
(defrecord DeletePage [id]
(defrecord DeletePage [id next]
rs/WatchEvent
(-apply-watch [_ state s]
(letfn [(on-success [_]
(rs/swap #(stpr/purge-page % id)))
(rx/of
(rs/swap #(stpr/purge-page % id))
next))
(on-failure [e]
(uum/error (tr "errors.delete-page"))
(rx/empty))]
(->> (rp/do :delete/page id)
(rx/map on-success)
(rx/mapcat on-success)
(rx/filter identity)
(rx/catch on-failure)))))
(defn delete-page
[id]
(DeletePage. id))
([id] (DeletePage. id nil))
([id next] (DeletePage. id next)))
;; --- Pinned Page History Fetched

View file

@ -52,8 +52,9 @@
delete (fn [e]
(dom/prevent-default e)
(dom/stop-propagation e)
(rs/emit! (udp/delete-page (:id page))
(dp/go-to (:project page))))]
(let [next (dp/go-to (:project page))
event (udp/delete-page (:id page) next)]
(rs/emit! event)))]
(html
[:li {:class (when active? "selected")
:on-click navigate}