From e581cf8aebbca9df26c5392d9a2b8c296e771a55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Thu, 3 Dec 2020 09:04:35 +0100 Subject: [PATCH] :recycle: Refactor paste function --- frontend/src/app/main/data/workspace.cljs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 71fc3a70f..817afccaa 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1260,17 +1260,15 @@ ptk/WatchEvent (watch [_ state stream] (try - (let [paste-data (wapi/read-from-paste-event event)] - (when paste-data - (let [text-data (wapi/extract-text paste-data) - decoded-data (when (and paste-data (t/transit? text-data)) - (t/decode text-data))] - (if (and decoded-data (= (:type decoded-data) :copied-shapes)) - (rx/of (paste-shape decoded-data)) - (if-not (empty? text-data) - (rx/of (paste-text text-data)) - (let [images (wapi/extract-images paste-data)] - (rx/from (map paste-image images)))))))) + (let [paste-data (wapi/read-from-paste-event event) + image-data (wapi/extract-images paste-data) + text-data (wapi/extract-text paste-data) + decoded-data (and (t/transit? text-data) (t/decode text-data))] + (cond + (seq image-data) (rx/from (map paste-image image-data)) + decoded-data (rx/of (paste-shape decoded-data)) + (string? text-data) (rx/of (paste-text text-data)) + :else (rx/empty))) (catch :default err (js/console.error "Clipboard error:" err))))))