mirror of
https://github.com/penpot/penpot.git
synced 2025-06-10 21:21:39 +02:00
commit
1f00d91dd7
18 changed files with 338 additions and 292 deletions
|
@ -150,14 +150,15 @@
|
|||
|
||||
(defn- bundle-fetched
|
||||
[features [{:keys [id data] :as file} thumbnails project users comments-users]]
|
||||
(letfn [(resolve-pointer [[key pointer]]
|
||||
(->> (rp/cmd! :get-file-fragment {:file-id id :fragment-id @pointer})
|
||||
(letfn [(resolve-pointer [file-id [key pointer]]
|
||||
(->> (rp/cmd! :get-file-fragment {:file-id file-id :fragment-id @pointer})
|
||||
(rx/map :content)
|
||||
(rx/map #(vector key %))))
|
||||
(resolve-pointers [in-to coll]
|
||||
|
||||
(resolve-pointers [file-id coll]
|
||||
(->> (rx/from (seq coll))
|
||||
(rx/merge-map resolve-pointer)
|
||||
(rx/reduce conj in-to)))]
|
||||
(rx/merge-map (partial resolve-pointer file-id))
|
||||
(rx/reduce conj {})))]
|
||||
|
||||
(ptk/reify ::bundle-fetched
|
||||
ptk/UpdateEvent
|
||||
|
@ -186,7 +187,7 @@
|
|||
(rx/merge-map
|
||||
(fn [[_ page :as kp]]
|
||||
(if (t/pointer? page)
|
||||
(resolve-pointer kp)
|
||||
(resolve-pointer id kp)
|
||||
(rx/of kp))))
|
||||
(rx/merge-map
|
||||
(fn [[id page]]
|
||||
|
@ -212,15 +213,17 @@
|
|||
|
||||
(->> data
|
||||
(filter (comp t/pointer? val))
|
||||
(resolve-pointers {})
|
||||
(resolve-pointers id)
|
||||
(rx/map workspace-data-pointers-loaded))
|
||||
|
||||
(->> (rp/cmd! :get-file-libraries {:file-id id :features features})
|
||||
(rx/mapcat identity)
|
||||
(rx/mapcat
|
||||
(fn [file]
|
||||
(->> (filter (comp t/pointer? val) file)
|
||||
(resolve-pointers file))))
|
||||
(fn [{:keys [id data] :as file}]
|
||||
(->> (filter (comp t/pointer? val) data)
|
||||
(resolve-pointers id)
|
||||
(rx/map #(update file :data merge %)))))
|
||||
(rx/reduce conj [])
|
||||
(rx/map libraries-fetched)))))))
|
||||
|
||||
(rx/take-until stoper)))))))
|
||||
|
|
|
@ -148,12 +148,7 @@
|
|||
(->> (rp/cmd! :update-file params)
|
||||
(rx/mapcat (fn [lagged]
|
||||
(log/debug :hint "changes persisted" :lagged (count lagged))
|
||||
(let [lagged-updates
|
||||
(cond->> lagged
|
||||
(= #{sid} (into #{} (map :session-id) lagged))
|
||||
(map #(assoc % :changes [])))
|
||||
|
||||
frame-updates
|
||||
(let [frame-updates
|
||||
(-> (group-by :page-id changes)
|
||||
(update-vals #(into #{} (mapcat :frames) %)))]
|
||||
|
||||
|
@ -162,9 +157,13 @@
|
|||
(rx/mapcat (fn [[page-id frames]]
|
||||
(->> frames (map #(vector page-id %)))))
|
||||
(rx/map (fn [[page-id frame-id]] (dwt/update-thumbnail (:id file) page-id frame-id))))
|
||||
(->> (rx/of lagged-updates)
|
||||
(rx/mapcat seq)
|
||||
(rx/map #(shapes-changes-persisted file-id %)))))))
|
||||
(->> (rx/from lagged)
|
||||
(rx/merge-map (fn [{:keys [changes] :as entry}]
|
||||
(rx/merge
|
||||
(rx/from
|
||||
(for [[page-id changes] (group-by :page-id changes)]
|
||||
(dch/update-indices page-id changes)))
|
||||
(rx/of (shapes-changes-persisted file-id entry))))))))))
|
||||
(rx/catch (fn [cause]
|
||||
(rx/concat
|
||||
(if (= :authentication (:type cause))
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
(derive :get-team-members ::query)
|
||||
(derive :get-team-stats ::query)
|
||||
(derive :get-team-invitations ::query)
|
||||
(derive :get-team-shared-files ::query)
|
||||
|
||||
(defn handle-response
|
||||
[{:keys [status body] :as response}]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue