mirror of
https://github.com/penpot/penpot.git
synced 2025-07-22 20:47:13 +02:00
♻️ Refactor thumbnail rendering on workspace
This commit is contained in:
parent
1d69da1ca5
commit
48834f96d3
29 changed files with 644 additions and 616 deletions
|
@ -57,7 +57,7 @@
|
|||
(-> (fonts/ensure-loaded! font-id)
|
||||
(p/then #(when (not (dom/check-font? font))
|
||||
(load-font font)))
|
||||
(p/catch #(.error js/console (dm/str "Cannot load font" font-id) %)))))
|
||||
(p/catch #(.error js/console (dm/str "Cannot load font " font-id) %)))))
|
||||
|
||||
(defn- calc-text-node-positions
|
||||
[shape-id]
|
||||
|
|
|
@ -51,8 +51,8 @@
|
|||
|
||||
(defn revoke-uri
|
||||
[url]
|
||||
(assert (string? url) "invalid arguments")
|
||||
(js/URL.revokeObjectURL url))
|
||||
(when ^boolean (str/starts-with? url "blob:")
|
||||
(js/URL.revokeObjectURL url)))
|
||||
|
||||
(defn create-uri
|
||||
"Create a url from blob."
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
"A lightweight layer on top of webworkers api."
|
||||
(:require
|
||||
[app.common.uuid :as uuid]
|
||||
[app.util.object :as obj]
|
||||
[app.worker.messages :as wm]
|
||||
[beicon.core :as rx]))
|
||||
|
||||
|
@ -25,11 +26,14 @@
|
|||
(rx/take-while #(not (:completed %)) ob)
|
||||
(rx/take 1 ob)))
|
||||
|
||||
data (wm/encode message)
|
||||
transfer (:transfer message)
|
||||
data (cond-> (wm/encode (dissoc message :transfer))
|
||||
(some? transfer)
|
||||
(obj/set! "transfer" transfer))
|
||||
instance (:instance worker)]
|
||||
|
||||
(if (some? instance)
|
||||
(do (.postMessage instance data)
|
||||
(do (.postMessage instance data transfer)
|
||||
(->> (:stream worker)
|
||||
(rx/filter #(= (:reply-to %) sender-id))
|
||||
(take-messages)
|
||||
|
@ -38,27 +42,36 @@
|
|||
(rx/empty)))))
|
||||
|
||||
(defn ask!
|
||||
[worker message]
|
||||
(send-message!
|
||||
worker
|
||||
{:sender-id (uuid/next)
|
||||
:payload message}))
|
||||
([worker message]
|
||||
(ask! worker message nil))
|
||||
([worker message transfer]
|
||||
(send-message!
|
||||
worker
|
||||
{:sender-id (uuid/next)
|
||||
:payload message
|
||||
:transfer transfer})))
|
||||
|
||||
(defn ask-many!
|
||||
[worker message]
|
||||
(send-message!
|
||||
worker
|
||||
{:sender-id (uuid/next)
|
||||
:payload message}
|
||||
{:many? true}))
|
||||
([worker message]
|
||||
(ask-many! worker message nil))
|
||||
([worker message transfer]
|
||||
(send-message!
|
||||
worker
|
||||
{:sender-id (uuid/next)
|
||||
:payload message
|
||||
:transfer transfer}
|
||||
{:many? true})))
|
||||
|
||||
(defn ask-buffered!
|
||||
[worker message]
|
||||
(send-message!
|
||||
worker
|
||||
{:sender-id (uuid/next)
|
||||
:payload message
|
||||
:buffer? true}))
|
||||
([worker message]
|
||||
(ask-buffered! worker message nil))
|
||||
([worker message transfer]
|
||||
(send-message!
|
||||
worker
|
||||
{:sender-id (uuid/next)
|
||||
:payload message
|
||||
:buffer? true
|
||||
:transfer transfer})))
|
||||
|
||||
(defn init
|
||||
"Return a initialized webworker instance."
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue