0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-21 06:02:32 -05:00

🐛 Fix problem with promises in plugins

This commit is contained in:
alonso.torres 2024-11-04 17:12:45 +01:00
parent 59050a7bc6
commit 6c0dce580d
7 changed files with 23 additions and 30 deletions

View file

@ -40,8 +40,7 @@
[app.plugins.viewport :as viewport]
[app.util.code-gen :as cg]
[app.util.object :as obj]
[beicon.v2.core :as rx]
[promesa.core :as p]))
[beicon.v2.core :as rx]))
;;
;; PLUGINS PUBLIC API - The plugins will able to access this functions
@ -174,7 +173,7 @@
:else
(let [file-id (:current-file-id @st/state)]
(p/create
(js/Promise.
(fn [resolve reject]
(->> (dwm/upload-media-url name file-id url)
(rx/take 1)
@ -184,7 +183,7 @@
(uploadMediaData
[_ name data mime-type]
(let [file-id (:current-file-id @st/state)]
(p/create
(js/Promise.
(fn [resolve reject]
(->> (dwm/process-blobs
{:file-id file-id

View file

@ -19,13 +19,12 @@
[app.plugins.shape :as shape]
[app.plugins.user :as user]
[app.plugins.utils :as u]
[beicon.v2.core :as rx]
[promesa.core :as p]))
[beicon.v2.core :as rx]))
(deftype CommentProxy [$plugin $file $page $thread $id]
Object
(remove [_]
(p/create
(js/Promise.
(fn [resolve reject]
(cond
(not (r/check-permission $plugin "comment:write"))
@ -79,7 +78,7 @@
Object
(findComments
[_]
(p/create
(js/Promise.
(fn [resolve reject]
(cond
(not (r/check-permission $plugin "comment:read"))
@ -106,7 +105,7 @@
(u/display-not-valid :reply "Not valid")
:else
(p/create
(js/Promise.
(fn [resolve reject]
(->> (rp/cmd! :create-comment {:thread-id $id :content content})
(rx/subs! #(resolve (comment-proxy $plugin $file $page $id $users %)) reject))))))
@ -121,9 +120,9 @@
(u/display-not-valid :remove "Cannot change content from another user's comments")
:else
(p/create
(js/Promise.
(fn [resolve]
(p/create
(js/Promise.
(st/emit! (dc/delete-comment-thread-on-workspace {:id $id} #(resolve))))))))))
(defn comment-thread-proxy? [p]

View file

@ -20,8 +20,7 @@
[app.plugins.utils :as u]
[app.util.http :as http]
[app.util.object :as obj]
[beicon.v2.core :as rx]
[promesa.core :as p]))
[beicon.v2.core :as rx]))
(deftype FileProxy [$plugin $id]
Object
@ -128,7 +127,7 @@
file (u/proxy->file self)
features (features/get-team-enabled-features @st/state)
team-id (:current-team-id @st/state)]
(p/create
(js/Promise.
(fn [resolve reject]
(->> (uw/ask-many!
{:cmd export-cmd

View file

@ -30,8 +30,7 @@
[app.plugins.utils :as u]
[app.util.object :as obj]
[beicon.v2.core :as rx]
[potok.v2.core :as ptk]
[promesa.core :as p]))
[potok.v2.core :as ptk]))
(declare lib-color-proxy)
(declare lib-typography-proxy)
@ -915,7 +914,7 @@
(availableLibraries
[_]
(let [team-id (:current-team-id @st/state)]
(p/create
(js/Promise.
(fn [resolve reject]
(let [current-libs (into #{} (map first) (get @st/state :workspace-libraries))]
(->> (rp/cmd! :get-team-shared-files {:team-id team-id})
@ -939,7 +938,7 @@
(u/display-not-valid :connectLibrary "Plugin doesn't have 'library:write' permission")
:else
(p/create
(js/Promise.
(fn [resolve reject]
(cond
(not (string? library-id))

View file

@ -29,8 +29,7 @@
[app.plugins.utils :as u]
[app.util.object :as obj]
[beicon.v2.core :as rx]
[cuerdas.core :as str]
[promesa.core :as p]))
[cuerdas.core :as str]))
(deftype FlowProxy [$plugin $file $page $id]
Object
@ -288,7 +287,7 @@
(some? board)
(-> (update :x - (:x board))
(update :y - (:y board))))]
(p/create
(js/Promise.
(fn [resolve]
(st/emit!
(dc/create-thread-on-workspace
@ -315,10 +314,10 @@
(u/display-not-valid :removeCommentThread "Plugin doesn't have 'content:write' permission")
:else
(p/create
(js/Promise.
(fn [resolve]
(let [thread-id (obj/get thread "$id")]
(p/create
(js/Promise.
(st/emit! (dc/delete-comment-thread-on-workspace {:id thread-id} #(resolve)))))))))
(findCommentThreads
@ -326,7 +325,7 @@
(let [only-yours (boolean (obj/get criteria "onlyYours" false))
show-resolved (boolean (obj/get criteria "showResolved" true))
user-id (-> @st/state :profile :id)]
(p/create
(js/Promise.
(fn [resolve reject]
(cond
(not (r/check-permission $plugin "comment:read"))

View file

@ -52,8 +52,7 @@
[app.util.object :as obj]
[app.util.path.format :as upf]
[beicon.v2.core :as rx]
[cuerdas.core :as str]
[promesa.core :as p]))
[cuerdas.core :as str]))
(declare shape-proxy)
(declare shape-proxy?)
@ -542,7 +541,7 @@
:type (:type value :png)
:suffix (:suffix value "")
:scale (:scale value 1)}]}]
(p/create
(js/Promise.
(fn [resolve reject]
(->> (rp/cmd! :export payload)
(rx/mapcat #(rp/cmd! :export {:cmd :get-resource :wait true :id (:id %) :blob? true}))

View file

@ -12,8 +12,7 @@
[app.common.types.container :as ctn]
[app.common.types.file :as ctf]
[app.main.store :as st]
[app.util.object :as obj]
[promesa.core :as p]))
[app.util.object :as obj]))
(defn locate-file
[id]
@ -175,7 +174,7 @@
[]
(let [ret-v (atom nil)
ret-p
(p/create
(js/Promise.
(fn [resolve _]
(add-watch
ret-v