0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-06 04:41:57 -05:00

Merge remote-tracking branch 'origin/staging' into develop

This commit is contained in:
Alejandro Alonso 2025-03-05 17:07:23 +01:00
commit 2c789e48f3
2 changed files with 19 additions and 20 deletions

View file

@ -62,18 +62,21 @@
;; --- Navigate (Event)
(defn navigated
[match]
[match send-event-info?]
(ptk/reify ::navigated
IDeref
(-deref [_] match)
ev/Event
(-data [_]
(let [route (dm/get-in match [:data :name])
params (get match :query-params)]
(assoc params
::ev/name "navigate"
:route (name route))))
ptk/WatchEvent
(watch [_ _ _]
(when send-event-info?
(let [route (dm/get-in match [:data :name])
params (get match :query-params)]
(rx/of (ptk/event
::ev/event
(assoc params
::ev/name "navigate"
:route (name route)))))))
ptk/UpdateEvent
(update [_ state]
@ -189,7 +192,7 @@
;; Check the urls to see if we need to send the navigated event.
;; If two paths are the same we only send the event when there is a
;; change in the parameters `file-id`, `page-id` or `team-id`
(defn- send-navigate?
(defn- send-event-info?
[old-url new-url]
(let [params [:file-id :page-id :team-id]
new-uri (u/uri new-url)
@ -215,15 +218,12 @@
(let [stopper (rx/filter (ptk/type? ::initialize-history) stream)
history (:history state)
router (:router state)]
(ts/schedule #(on-change router (.getToken ^js history)))
(ts/schedule #(on-change router (.getToken ^js history) true))
(->> (rx/concat
(rx/of nil nil)
(rx/create
(fn [subs]
(let [key (e/listen history "navigate"
(fn [o]
(.log js/console ">" o)
(rx/push! subs (.-token ^js o))))]
(let [key (e/listen history "navigate" (fn [o] (rx/push! subs (.-token ^js o))))]
(fn []
(bhistory/disable! history)
(e/unlistenByKey key))))))
@ -231,7 +231,6 @@
(rx/take-until stopper)
(rx/subs!
(fn [[old-url new-url]]
(if (nil? old-url)
(when (some? new-url) (on-change router new-url))
(when (send-navigate? old-url new-url)
(on-change router new-url))))))))))
(when (some? new-url)
(let [send? (or (nil? old-url) (send-event-info? old-url new-url))]
(on-change router new-url send?))))))))))

View file

@ -88,7 +88,7 @@
:plugin-url plugin))))
(defn on-navigate
[router path]
[router path send-event-info?]
(let [location (.-location js/document)
[base-path qs] (str/split path "?")
location-path (dm/str (.-origin location) (.-pathname location))
@ -102,7 +102,7 @@
(st/emit! (rt/assign-exception {:type :not-found}))
(some? match)
(st/emit! (rt/navigated match))
(st/emit! (rt/navigated match send-event-info?))
:else
;; We just recheck with an additional profile request; this