diff --git a/.clj-kondo/config.edn b/.clj-kondo/config.edn index 0c1db4d05..18daa1480 100644 --- a/.clj-kondo/config.edn +++ b/.clj-kondo/config.edn @@ -15,7 +15,7 @@ :hooks {:analyze-call {app.common.data.macros/export hooks.export/export - potok.core/reify hooks.export/potok-reify + potok.v2.core/reify hooks.export/potok-reify app.util.services/defmethod hooks.export/service-defmethod app.common.record/defrecord hooks.export/penpot-defrecord app.db/with-atomic hooks.export/penpot-with-atomic diff --git a/frontend/deps.edn b/frontend/deps.edn index b30b74b78..c96ab0a3e 100644 --- a/frontend/deps.edn +++ b/frontend/deps.edn @@ -6,10 +6,17 @@ org.clojure/clojure {:mvn/version "1.11.1"} binaryage/devtools {:mvn/version "RELEASE"} metosin/reitit-core {:mvn/version "0.5.18"} - - funcool/beicon {:mvn/version "2021.07.05-1"} funcool/okulary {:mvn/version "2022.04.11-16"} - funcool/potok {:mvn/version "2022.12.16-71"} + + funcool/potok2 + {:git/tag "v2.0" + :git/sha "2bb377b" + :git/url "https://github.com/funcool/potok.git"} + + funcool/beicon2 + {:git/tag "v2.0" + :git/sha "e7135e0" + :git/url "https://github.com/funcool/beicon.git"} funcool/rumext {:git/tag "v2.7" diff --git a/frontend/package.json b/frontend/package.json index 2b9c7213a..fd42e11cd 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -46,6 +46,7 @@ "@storybook/react": "^7.5.3", "@storybook/react-vite": "^7.5.3", "@storybook/testing-library": "^0.2.2", + "@types/node": "^20.10.5", "animate.css": "^4.1.1", "autoprefixer": "^10.4.15", "concurrently": "^8.2.2", @@ -73,6 +74,7 @@ "sass": "^1.66.1", "shadow-cljs": "2.26.2", "storybook": "^7.5.3", + "typescript": "^5.3.3", "vite": "^5.0.2" }, "dependencies": { @@ -90,7 +92,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-virtualized": "^9.22.3", - "rxjs": "~7.8.1", + "rxjs": "8.0.0-alpha.13", "sax": "^1.2.4", "source-map-support": "^0.5.21", "tdigest": "^0.1.2", diff --git a/frontend/src/app/libs/file_builder.cljs b/frontend/src/app/libs/file_builder.cljs index 12d8500ab..a1605bfdd 100644 --- a/frontend/src/app/libs/file_builder.cljs +++ b/frontend/src/app/libs/file_builder.cljs @@ -16,7 +16,7 @@ [app.util.webapi :as wapi] [app.util.zip :as uz] [app.worker.export :as e] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str])) (defn parse-data [data] @@ -55,7 +55,7 @@ (->> (rx/from (vals media)) (rx/map #(assoc % :file-id file-id)) - (rx/flat-map + (rx/merge-map (fn [media] (let [file-path (str/concat file-id "/media/" (:id media) (cm/mtype->extension (:mtype media))) blob (data-uri->blob (:uri media))] @@ -79,38 +79,38 @@ render-stream (->> files-stream - (rx/flat-map vals) - (rx/flat-map e/process-pages) + (rx/merge-map vals) + (rx/merge-map e/process-pages) (rx/observe-on :async) - (rx/flat-map e/get-page-data) + (rx/merge-map e/get-page-data) (rx/share)) colors-stream (->> files-stream - (rx/flat-map vals) + (rx/merge-map vals) (rx/map #(vector (:id %) (get-in % [:data :colors]))) (rx/filter #(d/not-empty? (second %))) (rx/map e/parse-library-color)) typographies-stream (->> files-stream - (rx/flat-map vals) + (rx/merge-map vals) (rx/map #(vector (:id %) (get-in % [:data :typographies]))) (rx/filter #(d/not-empty? (second %))) (rx/map e/parse-library-typographies)) media-stream (->> files-stream - (rx/flat-map vals) + (rx/merge-map vals) (rx/map #(vector (:id %) (get-in % [:data :media]))) (rx/filter #(d/not-empty? (second %))) - (rx/flat-map parse-library-media)) + (rx/merge-map parse-library-media)) components-stream (->> files-stream - (rx/flat-map vals) + (rx/merge-map vals) (rx/filter #(d/not-empty? (ctkl/components-seq (:data %)))) - (rx/flat-map e/parse-library-components)) + (rx/merge-map e/parse-library-components)) pages-stream (->> render-stream @@ -132,7 +132,7 @@ typographies-stream) (rx/reduce conj []) (rx/with-latest-from files-stream) - (rx/flat-map (fn [[data _]] + (rx/merge-map (fn [[data _]] (->> (uz/compress-files data) (rx/map #(vector file %))))))))) diff --git a/frontend/src/app/libs/render.cljs b/frontend/src/app/libs/render.cljs index 93f0e5405..9021bb810 100644 --- a/frontend/src/app/libs/render.cljs +++ b/frontend/src/app/libs/render.cljs @@ -8,7 +8,7 @@ (:require [app.common.uuid :as uuid] [app.main.render :as r] - [beicon.core :as rx] + [beicon.v2.core :as rx] [promesa.core :as p])) (defn render-page-export @@ -22,7 +22,7 @@ (fn [resolve reject] (->> (r/render-page data) (rx/take 1) - (rx/subs resolve reject))) ))) + (rx/subs! resolve reject))) ))) (defn exports [] #js {:renderPage render-page-export}) diff --git a/frontend/src/app/main.cljs b/frontend/src/app/main.cljs index 93aea3d18..7ed4bd059 100644 --- a/frontend/src/app/main.cljs +++ b/frontend/src/app/main.cljs @@ -28,10 +28,10 @@ [app.util.dom :as dom] [app.util.i18n :as i18n] [app.util.theme :as theme] - [beicon.core :as rx] + [beicon.v2.core :as rx] [debug] [features] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (log/setup! {:app :info}) diff --git a/frontend/src/app/main/broadcast.cljs b/frontend/src/app/main/broadcast.cljs index b83f2fa91..33e12f12a 100644 --- a/frontend/src/app/main/broadcast.cljs +++ b/frontend/src/app/main/broadcast.cljs @@ -9,8 +9,8 @@ (:require [app.common.exceptions :as ex] [app.common.transit :as t] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defrecord BroadcastMessage [id type data] cljs.core/IDeref diff --git a/frontend/src/app/main/data/comments.cljs b/frontend/src/app/main/data/comments.cljs index d49126157..273aeaf2f 100644 --- a/frontend/src/app/main/data/comments.cljs +++ b/frontend/src/app/main/data/comments.cljs @@ -14,8 +14,8 @@ [app.common.uuid :as uuid] [app.main.data.workspace.state-helpers :as wsh] [app.main.repo :as rp] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (def ^:private schema:comment-thread (sm/define diff --git a/frontend/src/app/main/data/common.cljs b/frontend/src/app/main/data/common.cljs index 2146abbcc..847d2b7a3 100644 --- a/frontend/src/app/main/data/common.cljs +++ b/frontend/src/app/main/data/common.cljs @@ -14,8 +14,8 @@ [app.main.features :as features] [app.main.repo :as rp] [app.util.i18n :refer [tr]] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; SHARE LINK diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index b9dec712e..30787180b 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -30,9 +30,9 @@ [app.util.time :as dt] [app.util.timers :as tm] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] [clojure.set :as set] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (log/set-level! :warn) @@ -419,7 +419,7 @@ (rx/map di/validate-file) (rx/map prepare) (rx/mapcat #(rp/cmd! :update-team-photo %)) - (rx/do on-success) + (rx/tap on-success) (rx/map du/fetch-teams) (rx/catch on-error)))))) diff --git a/frontend/src/app/main/data/events.cljs b/frontend/src/app/main/data/events.cljs index 28eca7384..9fc8bcea5 100644 --- a/frontend/src/app/main/data/events.cljs +++ b/frontend/src/app/main/data/events.cljs @@ -17,9 +17,10 @@ [app.util.object :as obj] [app.util.storage :refer [storage]] [app.util.time :as dt] - [beicon.core :as rx] + [beicon.v2.core :as rx] + [beicon.v2.operators :as rxo] [lambdaisland.uri :as u] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (l/set-level! :info) @@ -238,7 +239,7 @@ profile (->> (rx/from-atom storage {:emit-current-value? true}) (rx/map :profile) (rx/map :id) - (rx/dedupe))] + (rx/pipe (rxo/distinct-contiguous)))] (l/debug :hint "event instrumentation initialized") @@ -259,12 +260,12 @@ (l/debug :hint "events chunk persisted" :total (count chunk)))) (rx/map (constantly chunk)))))) (rx/take-until stoper) - (rx/subs (fn [chunk] - (swap! buffer remove-from-buffer (count chunk))) - (fn [cause] - (l/error :hint "unexpected error on audit persistence" :cause cause)) - (fn [] - (l/debug :hint "audit persistence terminated")))) + (rx/subs! (fn [chunk] + (swap! buffer remove-from-buffer (count chunk))) + (fn [cause] + (l/error :hint "unexpected error on audit persistence" :cause cause)) + (fn [] + (l/debug :hint "audit persistence terminated")))) (->> stream (rx/with-latest-from profile) @@ -290,10 +291,10 @@ (rx/switch-map #(rx/timer (inst-ms session-timeout))) (rx/take-until stoper) - (rx/subs (fn [_] - (l/debug :hint "session reinitialized") - (reset! session nil)) - (fn [cause] - (l/error :hint "error on event batching stream" :cause cause)) - (fn [] - (l/debug :hitn "events batching stream terminated"))))))))) + (rx/subs! (fn [_] + (l/debug :hint "session reinitialized") + (reset! session nil)) + (fn [cause] + (l/error :hint "error on event batching stream" :cause cause)) + (fn [] + (l/debug :hitn "events batching stream terminated"))))))))) diff --git a/frontend/src/app/main/data/exports.cljs b/frontend/src/app/main/data/exports.cljs index 729d5d74f..675f1d4d9 100644 --- a/frontend/src/app/main/data/exports.cljs +++ b/frontend/src/app/main/data/exports.cljs @@ -15,8 +15,8 @@ [app.util.dom :as dom] [app.util.time :as dt] [app.util.websocket :as ws] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (def default-timeout 5000) diff --git a/frontend/src/app/main/data/fonts.cljs b/frontend/src/app/main/data/fonts.cljs index d3a499eba..5c9e3837d 100644 --- a/frontend/src/app/main/data/fonts.cljs +++ b/frontend/src/app/main/data/fonts.cljs @@ -19,9 +19,9 @@ [app.util.i18n :refer [tr]] [app.util.storage :refer [storage]] [app.util.webapi :as wa] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; General purpose events & IMPL diff --git a/frontend/src/app/main/data/media.cljs b/frontend/src/app/main/data/media.cljs index da1049ecf..7fc52b00c 100644 --- a/frontend/src/app/main/data/media.cljs +++ b/frontend/src/app/main/data/media.cljs @@ -11,7 +11,7 @@ [app.main.data.messages :as dm] [app.main.store :as st] [app.util.i18n :refer [tr]] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [cuerdas.core :as str])) diff --git a/frontend/src/app/main/data/messages.cljs b/frontend/src/app/main/data/messages.cljs index d792b7b17..cce234699 100644 --- a/frontend/src/app/main/data/messages.cljs +++ b/frontend/src/app/main/data/messages.cljs @@ -9,8 +9,8 @@ [app.common.data :as d] [app.common.data.macros :as dm] [app.common.schema :as sm] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (declare hide) (declare show) diff --git a/frontend/src/app/main/data/modal.cljs b/frontend/src/app/main/data/modal.cljs index fe7055297..5b5b79524 100644 --- a/frontend/src/app/main/data/modal.cljs +++ b/frontend/src/app/main/data/modal.cljs @@ -10,7 +10,7 @@ [app.common.uuid :as uuid] [app.main.store :as st] [cljs.core :as c] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (defonce components (atom {})) diff --git a/frontend/src/app/main/data/preview.cljs b/frontend/src/app/main/data/preview.cljs index 6d78446ed..452929385 100644 --- a/frontend/src/app/main/data/preview.cljs +++ b/frontend/src/app/main/data/preview.cljs @@ -16,10 +16,10 @@ [app.main.refs :as refs] [app.util.code-gen :as cg] [app.util.timers :as ts] - [beicon.core :as rx] + [beicon.v2.core :as rx] [clojure.set :as set] [cuerdas.core :as str] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (def style-type "css") (def markup-type "html") @@ -80,7 +80,7 @@ (rx/merge-map fonts/fetch-font-css) (rx/reduce conj []) (rx/map #(str/join "\n" %)) - (rx/subs + (rx/subs! (fn [fontfaces-css] (let [style-code (dm/str diff --git a/frontend/src/app/main/data/shortcuts.cljs b/frontend/src/app/main/data/shortcuts.cljs index 4e679c37b..55ea364a3 100644 --- a/frontend/src/app/main/data/shortcuts.cljs +++ b/frontend/src/app/main/data/shortcuts.cljs @@ -13,7 +13,7 @@ [app.common.schema :as sm] [app.config :as cf] [cuerdas.core :as str] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (log/set-level! :warn) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index 2d085c8ed..f29223841 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -21,8 +21,8 @@ [app.util.i18n :as i18n] [app.util.router :as rt] [app.util.storage :refer [storage]] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;; --- SCHEMAS @@ -434,7 +434,7 @@ (rx/map di/validate-file) (rx/map prepare) (rx/mapcat #(rp/cmd! :update-profile-photo %)) - (rx/do on-success) + (rx/tap on-success) (rx/map (constantly (fetch-profile))) (rx/catch on-error)))))) diff --git a/frontend/src/app/main/data/viewer.cljs b/frontend/src/app/main/data/viewer.cljs index 997ee9607..e8c00c8ac 100644 --- a/frontend/src/app/main/data/viewer.cljs +++ b/frontend/src/app/main/data/viewer.cljs @@ -21,8 +21,8 @@ [app.main.repo :as rp] [app.util.globals :as ug] [app.util.router :as rt] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;; --- Local State Initialization diff --git a/frontend/src/app/main/data/websocket.cljs b/frontend/src/app/main/data/websocket.cljs index 218894008..b7ec7c2db 100644 --- a/frontend/src/app/main/data/websocket.cljs +++ b/frontend/src/app/main/data/websocket.cljs @@ -11,8 +11,8 @@ [app.common.uri :as u] [app.config :as cf] [app.util.websocket :as ws] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (l/set-level! :error) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 4ae421679..edb21077c 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -78,10 +78,10 @@ [app.util.router :as rt] [app.util.timers :as tm] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [cuerdas.core :as str] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (def default-workspace-local {:zoom 1}) @@ -444,7 +444,7 @@ uris (into #{} xform (wsh/lookup-page-objects state page-id))] (->> (rx/from uris) - (rx/subs #(http/fetch-data-uri % false))))))) + (rx/subs! #(http/fetch-data-uri % false))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Workspace Page CRUD diff --git a/frontend/src/app/main/data/workspace/bool.cljs b/frontend/src/app/main/data/workspace/bool.cljs index 971b543f7..ac9e06dee 100644 --- a/frontend/src/app/main/data/workspace/bool.cljs +++ b/frontend/src/app/main/data/workspace/bool.cljs @@ -18,9 +18,9 @@ [app.main.data.workspace.changes :as dch] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.state-helpers :as wsh] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (defn selected-shapes-idx [state] diff --git a/frontend/src/app/main/data/workspace/changes.cljs b/frontend/src/app/main/data/workspace/changes.cljs index 33f4c87e1..9b7f1c54d 100644 --- a/frontend/src/app/main/data/workspace/changes.cljs +++ b/frontend/src/app/main/data/workspace/changes.cljs @@ -20,8 +20,8 @@ [app.main.data.workspace.undo :as dwu] [app.main.store :as st] [app.main.worker :as uw] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;; Change this to :info :debug or :trace to debug this module (log/set-level! :warn) diff --git a/frontend/src/app/main/data/workspace/collapse.cljs b/frontend/src/app/main/data/workspace/collapse.cljs index bd8ab1766..07bd85838 100644 --- a/frontend/src/app/main/data/workspace/collapse.cljs +++ b/frontend/src/app/main/data/workspace/collapse.cljs @@ -8,7 +8,7 @@ (:require [app.common.files.helpers :as cfh] [app.common.uuid :as uuid] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) ;; --- Shape attrs (Layers Sidebar) diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs index 94f03694a..a89467786 100644 --- a/frontend/src/app/main/data/workspace/colors.cljs +++ b/frontend/src/app/main/data/workspace/colors.cljs @@ -23,8 +23,8 @@ [app.main.data.workspace.undo :as dwu] [app.util.color :as uc] [app.util.storage :refer [storage]] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;; A set of keys that are used for shared state identifiers (def ^:const colorpicker-selected-broadcast-key ::colorpicker-selected) @@ -353,7 +353,7 @@ ;; Stream that updates the stroke/width and stops if `esc` pressed (->> sub (rx/take-until stop?) - (rx/flat-map update-events)) + (rx/merge-map update-events)) ;; Hide the modal if the stop event is emitted (->> stop? diff --git a/frontend/src/app/main/data/workspace/comments.cljs b/frontend/src/app/main/data/workspace/comments.cljs index 3c3f71f74..ed0734e70 100644 --- a/frontend/src/app/main/data/workspace/comments.cljs +++ b/frontend/src/app/main/data/workspace/comments.cljs @@ -22,8 +22,8 @@ [app.main.streams :as ms] [app.util.mouse :as mse] [app.util.router :as rt] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (declare handle-interrupt) (declare handle-comment-layer-click) diff --git a/frontend/src/app/main/data/workspace/common.cljs b/frontend/src/app/main/data/workspace/common.cljs index 994a0d0de..19c610c14 100644 --- a/frontend/src/app/main/data/workspace/common.cljs +++ b/frontend/src/app/main/data/workspace/common.cljs @@ -13,8 +13,8 @@ [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] [app.util.router :as rt] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;; Change this to :info :debug or :trace to debug this module (log/set-level! :warn) diff --git a/frontend/src/app/main/data/workspace/drawing.cljs b/frontend/src/app/main/data/workspace/drawing.cljs index a12d2991a..0254cd291 100644 --- a/frontend/src/app/main/data/workspace/drawing.cljs +++ b/frontend/src/app/main/data/workspace/drawing.cljs @@ -14,8 +14,8 @@ [app.main.data.workspace.drawing.common :as common] [app.main.data.workspace.drawing.curve :as curve] [app.main.data.workspace.path :as path] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (declare start-drawing) (declare handle-drawing) diff --git a/frontend/src/app/main/data/workspace/drawing/box.cljs b/frontend/src/app/main/data/workspace/drawing/box.cljs index d8ccdf4c9..7884b123a 100644 --- a/frontend/src/app/main/data/workspace/drawing/box.cljs +++ b/frontend/src/app/main/data/workspace/drawing/box.cljs @@ -25,8 +25,8 @@ [app.main.snap :as snap] [app.main.streams :as ms] [app.util.mouse :as mse] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn adjust-ratio [point initial] diff --git a/frontend/src/app/main/data/workspace/drawing/common.cljs b/frontend/src/app/main/data/workspace/drawing/common.cljs index 455f49330..4865d0c4c 100644 --- a/frontend/src/app/main/data/workspace/drawing/common.cljs +++ b/frontend/src/app/main/data/workspace/drawing/common.cljs @@ -16,8 +16,8 @@ [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] [app.main.worker :as uw] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn clear-drawing [] diff --git a/frontend/src/app/main/data/workspace/drawing/curve.cljs b/frontend/src/app/main/data/workspace/drawing/curve.cljs index f77078281..c223df896 100644 --- a/frontend/src/app/main/data/workspace/drawing/curve.cljs +++ b/frontend/src/app/main/data/workspace/drawing/curve.cljs @@ -23,8 +23,8 @@ [app.main.streams :as ms] [app.util.mouse :as mse] [app.util.path.simplify-curve :as ups] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (def simplify-tolerance 0.3) diff --git a/frontend/src/app/main/data/workspace/edition.cljs b/frontend/src/app/main/data/workspace/edition.cljs index f5e3b3486..781629a3f 100644 --- a/frontend/src/app/main/data/workspace/edition.cljs +++ b/frontend/src/app/main/data/workspace/edition.cljs @@ -10,8 +10,8 @@ [app.common.types.shape.layout :as ctl] [app.main.data.workspace.common :as dwc] [app.main.data.workspace.state-helpers :as wsh] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn interrupt? [e] (= e :interrupt)) diff --git a/frontend/src/app/main/data/workspace/fix_bool_contents.cljs b/frontend/src/app/main/data/workspace/fix_bool_contents.cljs index 63a54e7d7..8d0ac516e 100644 --- a/frontend/src/app/main/data/workspace/fix_bool_contents.cljs +++ b/frontend/src/app/main/data/workspace/fix_bool_contents.cljs @@ -10,8 +10,8 @@ [app.common.geom.shapes :as gsh] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.state-helpers :as wsh] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;; This event will update the file so the boolean data has a pre-generated path data ;; to increase performance. diff --git a/frontend/src/app/main/data/workspace/fix_broken_shapes.cljs b/frontend/src/app/main/data/workspace/fix_broken_shapes.cljs index 9e2e28af3..c110de09b 100644 --- a/frontend/src/app/main/data/workspace/fix_broken_shapes.cljs +++ b/frontend/src/app/main/data/workspace/fix_broken_shapes.cljs @@ -7,8 +7,8 @@ (ns app.main.data.workspace.fix-broken-shapes (:require [app.main.data.workspace.changes :as dch] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn- generate-broken-link-changes [attr {:keys [objects id] :as container}] diff --git a/frontend/src/app/main/data/workspace/fix_deleted_fonts.cljs b/frontend/src/app/main/data/workspace/fix_deleted_fonts.cljs index b5fa36a1e..06fb37621 100644 --- a/frontend/src/app/main/data/workspace/fix_deleted_fonts.cljs +++ b/frontend/src/app/main/data/workspace/fix_deleted_fonts.cljs @@ -12,8 +12,8 @@ [app.main.data.workspace.changes :as dch] [app.main.data.workspace.state-helpers :as wsh] [app.main.fonts :as fonts] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;; This event will update the file so the texts with non existing custom fonts try to be fixed. ;; This can happen when: diff --git a/frontend/src/app/main/data/workspace/grid.cljs b/frontend/src/app/main/data/workspace/grid.cljs index bf5ed9207..d8e8b93db 100644 --- a/frontend/src/app/main/data/workspace/grid.cljs +++ b/frontend/src/app/main/data/workspace/grid.cljs @@ -12,8 +12,8 @@ [app.common.files.changes-builder :as pcb] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.state-helpers :as wsh] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Grid diff --git a/frontend/src/app/main/data/workspace/grid_layout/editor.cljs b/frontend/src/app/main/data/workspace/grid_layout/editor.cljs index 5512447b5..dc6e99fa5 100644 --- a/frontend/src/app/main/data/workspace/grid_layout/editor.cljs +++ b/frontend/src/app/main/data/workspace/grid_layout/editor.cljs @@ -9,7 +9,7 @@ [app.common.geom.rect :as grc] [app.common.types.shape.layout :as ctl] [app.main.data.workspace.state-helpers :as wsh] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (defn hover-grid-cell [grid-id cell-id add-to-set] diff --git a/frontend/src/app/main/data/workspace/grid_layout/shortcuts.cljs b/frontend/src/app/main/data/workspace/grid_layout/shortcuts.cljs index d003186a8..078858fd7 100644 --- a/frontend/src/app/main/data/workspace/grid_layout/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/grid_layout/shortcuts.cljs @@ -10,8 +10,8 @@ [app.main.data.workspace :as dw] [app.main.data.workspace.common :as dwc] [app.main.store :as st] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Shortcuts diff --git a/frontend/src/app/main/data/workspace/groups.cljs b/frontend/src/app/main/data/workspace/groups.cljs index 76e8e0df1..656173f5e 100644 --- a/frontend/src/app/main/data/workspace/groups.cljs +++ b/frontend/src/app/main/data/workspace/groups.cljs @@ -19,8 +19,8 @@ [app.main.data.workspace.selection :as dws] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn shapes-for-grouping [objects selected] diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs index 9e4fc3e6f..5df3d41a0 100644 --- a/frontend/src/app/main/data/workspace/guides.cljs +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -13,8 +13,8 @@ [app.common.types.page :as ctp] [app.main.data.workspace.changes :as dwc] [app.main.data.workspace.state-helpers :as wsh] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn make-update-guide [guide] (fn [other] diff --git a/frontend/src/app/main/data/workspace/highlight.cljs b/frontend/src/app/main/data/workspace/highlight.cljs index f9191cceb..6f91445ba 100644 --- a/frontend/src/app/main/data/workspace/highlight.cljs +++ b/frontend/src/app/main/data/workspace/highlight.cljs @@ -8,7 +8,7 @@ (:require [app.common.data.macros :as dm] [clojure.set :as set] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) ;; --- Manage shape's highlight status diff --git a/frontend/src/app/main/data/workspace/interactions.cljs b/frontend/src/app/main/data/workspace/interactions.cljs index a7610d2e5..ab2584940 100644 --- a/frontend/src/app/main/data/workspace/interactions.cljs +++ b/frontend/src/app/main/data/workspace/interactions.cljs @@ -20,8 +20,8 @@ [app.main.data.workspace.undo :as dwu] [app.main.streams :as ms] [app.util.mouse :as mse] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;; --- Flows diff --git a/frontend/src/app/main/data/workspace/layers.cljs b/frontend/src/app/main/data/workspace/layers.cljs index 9b6423d31..afde3c03a 100644 --- a/frontend/src/app/main/data/workspace/layers.cljs +++ b/frontend/src/app/main/data/workspace/layers.cljs @@ -11,9 +11,9 @@ [app.common.math :as mth] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.state-helpers :as wsh] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) ;; -- Opacity ---------------------------------------------------------- diff --git a/frontend/src/app/main/data/workspace/layout.cljs b/frontend/src/app/main/data/workspace/layout.cljs index 16fdb7f28..5b7209c67 100644 --- a/frontend/src/app/main/data/workspace/layout.cljs +++ b/frontend/src/app/main/data/workspace/layout.cljs @@ -10,7 +10,7 @@ [app.common.data.macros :as dm] [app.util.storage :refer [storage]] [clojure.set :as set] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (def valid-flags #{:sitemap diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 2b7cf1534..29adb8394 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -45,9 +45,9 @@ [app.util.i18n :refer [tr]] [app.util.router :as rt] [app.util.time :as dt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) ;; Change this to :info :debug or :trace to debug this module, or :warn to reset to default (log/set-level! :warn) diff --git a/frontend/src/app/main/data/workspace/media.cljs b/frontend/src/app/main/data/workspace/media.cljs index 984a073e5..5369e376a 100644 --- a/frontend/src/app/main/data/workspace/media.cljs +++ b/frontend/src/app/main/data/workspace/media.cljs @@ -30,9 +30,9 @@ [app.main.store :as st] [app.util.http :as http] [app.util.i18n :refer [tr]] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] - [potok.core :as ptk] + [potok.v2.core :as ptk] [promesa.core :as p] [tubax.core :as tubax])) @@ -122,13 +122,13 @@ (->> (rx/from uris) (rx/filter (comp not svg-url?)) (rx/mapcat upload) - (rx/do on-image)) + (rx/tap on-image)) (->> (rx/from uris) (rx/filter svg-url?) (rx/merge-map (partial fetch-svg name)) (rx/merge-map svg->clj) - (rx/do on-svg))))) + (rx/tap on-svg))))) (defn- process-blobs [{:keys [file-id local? name blobs force-media on-image on-svg]}] @@ -154,14 +154,14 @@ (rx/filter (comp not svg-blob?)) (rx/map prepare-blob) (rx/mapcat #(rp/cmd! :upload-file-media-object %)) - (rx/do on-image)) + (rx/tap on-image)) (->> (rx/from blobs) (rx/map dmm/validate-file) (rx/filter svg-blob?) (rx/merge-map extract-content) (rx/merge-map svg->clj) - (rx/do on-svg))))) + (rx/tap on-svg))))) (defn handle-media-error [error on-error] (if (ex/ex-info? error) @@ -278,7 +278,7 @@ (rx/map dmm/validate-file) (rx/map prepare) (rx/mapcat #(rp/cmd! :upload-file-media-object %)) - (rx/do on-upload-success) + (rx/tap on-upload-success) (rx/catch handle-media-error)))))) ;; --- Upload File Media objects @@ -423,7 +423,7 @@ :timeout nil :tag :media-loading})) (->> (rp/cmd! :clone-file-media-object params) - (rx/do on-success) + (rx/tap on-success) (rx/catch on-error) (rx/finalize #(st/emit! (msg/hide-tag :media-loading))))))))) diff --git a/frontend/src/app/main/data/workspace/modifiers.cljs b/frontend/src/app/main/data/workspace/modifiers.cljs index 0c1721ff9..dcdd9c4fa 100644 --- a/frontend/src/app/main/data/workspace/modifiers.cljs +++ b/frontend/src/app/main/data/workspace/modifiers.cljs @@ -27,8 +27,8 @@ [app.main.data.workspace.guides :as-alias dwg] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;; -- temporary modifiers ------------------------------------------- diff --git a/frontend/src/app/main/data/workspace/notifications.cljs b/frontend/src/app/main/data/workspace/notifications.cljs index 8a88ddf70..1447cb113 100644 --- a/frontend/src/app/main/data/workspace/notifications.cljs +++ b/frontend/src/app/main/data/workspace/notifications.cljs @@ -20,9 +20,9 @@ [app.util.mouse :as mse] [app.util.object :as obj] [app.util.time :as dt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [clojure.set :as set] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (declare process-message) (declare handle-presence) diff --git a/frontend/src/app/main/data/workspace/path/changes.cljs b/frontend/src/app/main/data/workspace/path/changes.cljs index 21990a28b..dd188e72e 100644 --- a/frontend/src/app/main/data/workspace/path/changes.cljs +++ b/frontend/src/app/main/data/workspace/path/changes.cljs @@ -13,8 +13,8 @@ [app.main.data.workspace.path.helpers :as helpers] [app.main.data.workspace.path.state :as st] [app.main.data.workspace.state-helpers :as wsh] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn generate-path-changes "Generates changes to update the new content of the shape" diff --git a/frontend/src/app/main/data/workspace/path/common.cljs b/frontend/src/app/main/data/workspace/path/common.cljs index 6bfd0d000..689248412 100644 --- a/frontend/src/app/main/data/workspace/path/common.cljs +++ b/frontend/src/app/main/data/workspace/path/common.cljs @@ -8,7 +8,7 @@ (:require [app.common.schema :as sm] [app.main.data.workspace.path.state :as st] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (def valid-commands #{:move-to diff --git a/frontend/src/app/main/data/workspace/path/drawing.cljs b/frontend/src/app/main/data/workspace/path/drawing.cljs index 912a90718..8152b7a23 100644 --- a/frontend/src/app/main/data/workspace/path/drawing.cljs +++ b/frontend/src/app/main/data/workspace/path/drawing.cljs @@ -27,8 +27,8 @@ [app.main.data.workspace.path.undo :as undo] [app.main.data.workspace.state-helpers :as wsh] [app.util.mouse :as mse] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (declare change-edit-mode) diff --git a/frontend/src/app/main/data/workspace/path/edition.cljs b/frontend/src/app/main/data/workspace/path/edition.cljs index 31080603c..8f83f67ee 100644 --- a/frontend/src/app/main/data/workspace/path/edition.cljs +++ b/frontend/src/app/main/data/workspace/path/edition.cljs @@ -28,8 +28,8 @@ [app.main.streams :as ms] [app.util.mouse :as mse] [app.util.path.tools :as upt] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn modify-handler [id index prefix dx dy match-opposite?] (ptk/reify ::modify-handler diff --git a/frontend/src/app/main/data/workspace/path/helpers.cljs b/frontend/src/app/main/data/workspace/path/helpers.cljs index 4249c23fe..feb898abb 100644 --- a/frontend/src/app/main/data/workspace/path/helpers.cljs +++ b/frontend/src/app/main/data/workspace/path/helpers.cljs @@ -15,7 +15,7 @@ [app.common.svg.path.subpath :as ups] [app.main.data.workspace.path.common :as common] [app.util.mouse :as mse] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (defn end-path-event? [event] diff --git a/frontend/src/app/main/data/workspace/path/selection.cljs b/frontend/src/app/main/data/workspace/path/selection.cljs index 24b7b0bf4..c60c13f4a 100644 --- a/frontend/src/app/main/data/workspace/path/selection.cljs +++ b/frontend/src/app/main/data/workspace/path/selection.cljs @@ -14,8 +14,8 @@ [app.main.data.workspace.path.state :as st] [app.main.streams :as ms] [app.util.mouse :as mse] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn path-pointer-enter [position] (ptk/reify ::path-pointer-enter diff --git a/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs b/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs index 56e02a4f3..c73ad3dfc 100644 --- a/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs +++ b/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs @@ -12,8 +12,8 @@ [app.common.types.container :as ctn] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.state-helpers :as wsh] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn convert-selected-to-path [] (ptk/reify ::convert-selected-to-path diff --git a/frontend/src/app/main/data/workspace/path/shortcuts.cljs b/frontend/src/app/main/data/workspace/path/shortcuts.cljs index 1b307e88b..ffbf36578 100644 --- a/frontend/src/app/main/data/workspace/path/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/path/shortcuts.cljs @@ -10,8 +10,8 @@ [app.main.data.workspace :as dw] [app.main.data.workspace.path :as drp] [app.main.store :as st] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Shortcuts diff --git a/frontend/src/app/main/data/workspace/path/streams.cljs b/frontend/src/app/main/data/workspace/path/streams.cljs index 264a145a1..2acc5ceba 100644 --- a/frontend/src/app/main/data/workspace/path/streams.cljs +++ b/frontend/src/app/main/data/workspace/path/streams.cljs @@ -15,9 +15,9 @@ [app.main.store :as st] [app.main.streams :as ms] [app.util.mouse :as mse] - [beicon.core :as rx] + [beicon.v2.core :as rx] [okulary.core :as l] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (defonce drag-threshold 5) diff --git a/frontend/src/app/main/data/workspace/path/tools.cljs b/frontend/src/app/main/data/workspace/path/tools.cljs index 9743a3c8a..b302655f8 100644 --- a/frontend/src/app/main/data/workspace/path/tools.cljs +++ b/frontend/src/app/main/data/workspace/path/tools.cljs @@ -14,8 +14,8 @@ [app.main.data.workspace.path.state :as st] [app.main.data.workspace.state-helpers :as wsh] [app.util.path.tools :as upt] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn process-path-tool "Generic function that executes path transformations with the content and selected nodes" diff --git a/frontend/src/app/main/data/workspace/path/undo.cljs b/frontend/src/app/main/data/workspace/path/undo.cljs index 2819cc48f..754490dda 100644 --- a/frontend/src/app/main/data/workspace/path/undo.cljs +++ b/frontend/src/app/main/data/workspace/path/undo.cljs @@ -12,9 +12,9 @@ [app.main.data.workspace.path.changes :as changes] [app.main.data.workspace.path.state :as st] [app.main.store :as store] - [beicon.core :as rx] + [beicon.v2.core :as rx] [okulary.core :as l] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (defn undo-event? [event] diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 509defdeb..dd056da35 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -18,9 +18,9 @@ [app.main.store :as st] [app.util.router :as rt] [app.util.time :as dt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [okulary.core :as l] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (log/set-level! :info) diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index 0b1c64589..497202d7c 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -36,10 +36,11 @@ [app.main.streams :as ms] [app.main.worker :as uw] [app.util.mouse :as mse] - [beicon.core :as rx] + [beicon.v2.core :as rx] + [beicon.v2.operators :as rxo] [clojure.set :as set] [linked.set :as lks] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (defn interrupt? [e] @@ -111,8 +112,8 @@ (->> selrect-stream (rx/buffer-time 100) - (rx/map #(last %)) - (rx/dedupe) + (rx/map last) + (rx/pipe (rxo/distinct-contiguous)) (rx/map #(select-shapes-by-current-selrect preserve? ignore-groups?)))) (->> (rx/of (update-selrect nil)) diff --git a/frontend/src/app/main/data/workspace/shape_layout.cljs b/frontend/src/app/main/data/workspace/shape_layout.cljs index e27ce0191..f13c52381 100644 --- a/frontend/src/app/main/data/workspace/shape_layout.cljs +++ b/frontend/src/app/main/data/workspace/shape_layout.cljs @@ -24,8 +24,8 @@ [app.main.data.workspace.shapes :as dws] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (def layout-keys [:layout diff --git a/frontend/src/app/main/data/workspace/shapes.cljs b/frontend/src/app/main/data/workspace/shapes.cljs index f83eab3a1..3bfe0e266 100644 --- a/frontend/src/app/main/data/workspace/shapes.cljs +++ b/frontend/src/app/main/data/workspace/shapes.cljs @@ -24,8 +24,8 @@ [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] [app.main.features :as features] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn add-shape ([shape] diff --git a/frontend/src/app/main/data/workspace/specialized_panel.cljs b/frontend/src/app/main/data/workspace/specialized_panel.cljs index 467c67077..41f25f14f 100644 --- a/frontend/src/app/main/data/workspace/specialized_panel.cljs +++ b/frontend/src/app/main/data/workspace/specialized_panel.cljs @@ -9,8 +9,8 @@ [app.common.data :as d] [app.main.data.workspace.common :as-alias dwc] [app.main.data.workspace.state-helpers :as wsh] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn interrupt? [e] (or (= e :interrupt) (= e ::interrupt))) diff --git a/frontend/src/app/main/data/workspace/svg_upload.cljs b/frontend/src/app/main/data/workspace/svg_upload.cljs index b0af4608b..d0a262312 100644 --- a/frontend/src/app/main/data/workspace/svg_upload.cljs +++ b/frontend/src/app/main/data/workspace/svg_upload.cljs @@ -19,9 +19,9 @@ [app.main.data.workspace.undo :as dwu] [app.main.repo :as rp] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (defn extract-name [href] (let [query-idx (str/last-index-of href "?") diff --git a/frontend/src/app/main/data/workspace/texts.cljs b/frontend/src/app/main/data/workspace/texts.cljs index 9f9988e21..767310130 100644 --- a/frontend/src/app/main/data/workspace/texts.cljs +++ b/frontend/src/app/main/data/workspace/texts.cljs @@ -29,9 +29,9 @@ [app.util.router :as rt] [app.util.text-editor :as ted] [app.util.timers :as ts] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) ;; -- Attrs diff --git a/frontend/src/app/main/data/workspace/thumbnails.cljs b/frontend/src/app/main/data/workspace/thumbnails.cljs index 774c73426..c4774c222 100644 --- a/frontend/src/app/main/data/workspace/thumbnails.cljs +++ b/frontend/src/app/main/data/workspace/thumbnails.cljs @@ -24,8 +24,8 @@ [app.util.time :as tp] [app.util.timers :as tm] [app.util.webapi :as wapi] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (l/set-level! :info) @@ -246,7 +246,7 @@ (rx/filter dch/commit-changes?) (rx/observe-on :async) (rx/with-latest-from workspace-data-s) - (rx/flat-map (partial extract-frame-changes page-id)) + (rx/merge-map (partial extract-frame-changes page-id)) (rx/tap #(l/trc :hint "inconming change" :origin "local" :frame-id (dm/str %)))) ;; NOTIFICATIONS CHANGES @@ -254,7 +254,7 @@ (rx/filter (ptk/type? ::wnt/handle-file-change)) (rx/observe-on :async) (rx/with-latest-from workspace-data-s) - (rx/flat-map (partial extract-frame-changes page-id)) + (rx/merge-map (partial extract-frame-changes page-id)) (rx/tap #(l/trc :hint "inconming change" :origin "notifications" :frame-id (dm/str %)))) ;; PERSISTENCE CHANGES diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 115d7f3a9..fa44b8746 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -35,8 +35,8 @@ [app.util.dom :as dom] [app.util.keyboard :as kbd] [app.util.mouse :as mse] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) ;; -- Helpers -------------------------------------------------------- diff --git a/frontend/src/app/main/data/workspace/undo.cljs b/frontend/src/app/main/data/workspace/undo.cljs index 7bc8b61fd..3c6036c8f 100644 --- a/frontend/src/app/main/data/workspace/undo.cljs +++ b/frontend/src/app/main/data/workspace/undo.cljs @@ -12,8 +12,8 @@ [app.common.logging :as log] [app.common.schema :as sm] [app.util.time :as dt] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (def discard-transaction-time-millis (* 20 1000)) diff --git a/frontend/src/app/main/data/workspace/viewport.cljs b/frontend/src/app/main/data/workspace/viewport.cljs index 1bbb48ccf..55eadd321 100644 --- a/frontend/src/app/main/data/workspace/viewport.cljs +++ b/frontend/src/app/main/data/workspace/viewport.cljs @@ -16,8 +16,8 @@ [app.common.math :as mth] [app.main.data.workspace.state-helpers :as wsh] [app.util.mouse :as mse] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn initialize-viewport [{:keys [width height] :as size}] diff --git a/frontend/src/app/main/data/workspace/zoom.cljs b/frontend/src/app/main/data/workspace/zoom.cljs index 8aba81a0b..379776ede 100644 --- a/frontend/src/app/main/data/workspace/zoom.cljs +++ b/frontend/src/app/main/data/workspace/zoom.cljs @@ -15,8 +15,8 @@ [app.main.data.workspace.state-helpers :as wsh] [app.main.streams :as ms] [app.util.mouse :as mse] - [beicon.core :as rx] - [potok.core :as ptk])) + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) (defn- impl-update-zoom [{:keys [vbox] :as local} center zoom] diff --git a/frontend/src/app/main/errors.cljs b/frontend/src/app/main/errors.cljs index 58d1dc7e3..ed0ad6598 100644 --- a/frontend/src/app/main/errors.cljs +++ b/frontend/src/app/main/errors.cljs @@ -20,7 +20,7 @@ [app.util.storage :refer [storage]] [app.util.timers :as ts] [cuerdas.core :as str] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (defn- print-data! [data] diff --git a/frontend/src/app/main/features.cljs b/frontend/src/app/main/features.cljs index a23b2a27d..51b30ed17 100644 --- a/frontend/src/app/main/features.cljs +++ b/frontend/src/app/main/features.cljs @@ -12,11 +12,11 @@ [app.common.logging :as log] [app.config :as cf] [app.main.store :as st] - [beicon.core :as rx] + [beicon.v2.core :as rx] [clojure.set :as set] [cuerdas.core :as str] [okulary.core :as l] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (log/set-level! :trace) diff --git a/frontend/src/app/main/features/pointer_map.cljs b/frontend/src/app/main/features/pointer_map.cljs index 842ae418a..993427e55 100644 --- a/frontend/src/app/main/features/pointer_map.cljs +++ b/frontend/src/app/main/features/pointer_map.cljs @@ -9,7 +9,7 @@ (:require [app.common.transit :as t] [app.main.repo :as rp] - [beicon.core :as rx])) + [beicon.v2.core :as rx])) (defn resolve-file [{:keys [id data] :as file}] diff --git a/frontend/src/app/main/fonts.cljs b/frontend/src/app/main/fonts.cljs index 905762bed..889f1c7f7 100644 --- a/frontend/src/app/main/fonts.cljs +++ b/frontend/src/app/main/fonts.cljs @@ -17,7 +17,7 @@ [app.util.globals :as globals] [app.util.http :as http] [app.util.object :as obj] - [beicon.core :as rx] + [beicon.v2.core :as rx] [clojure.set :as set] [cuerdas.core :as str] [lambdaisland.uri :as u] @@ -144,7 +144,7 @@ (->> (fetch-gfont-css url) (rx/map process-gfont-css) (rx/tap #(on-loaded id)) - (rx/subs (partial add-font-css! id))) + (rx/subs! (partial add-font-css! id))) nil))) ;; --- LOADER: CUSTOM diff --git a/frontend/src/app/main/rasterizer.cljs b/frontend/src/app/main/rasterizer.cljs index 4479155db..6fcb4dc8a 100644 --- a/frontend/src/app/main/rasterizer.cljs +++ b/frontend/src/app/main/rasterizer.cljs @@ -18,7 +18,7 @@ [app.config :as cf] [app.util.dom :as dom] [app.util.http :as http] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str])) (defonce ready? false) @@ -123,18 +123,18 @@ (log/err :hint "rasterizer iframe blocked by adblocker" :origin origin :cause cause) (rx/of false))) - (rx/subs (fn [allowed?] - (if allowed? - (do - (dom/append-child! js/document.body iframe) - (set! instance iframe)) + (rx/subs! (fn [allowed?] + (if allowed? + (do + (dom/append-child! js/document.body iframe) + (set! instance iframe)) - (let [new-origin (dm/str (assoc cf/public-uri :path "/rasterizer.html"))] - (log/warn :hint "fallback to main domain" :origin new-origin) + (let [new-origin (dm/str (assoc cf/public-uri :path "/rasterizer.html"))] + (log/warn :hint "fallback to main domain" :origin new-origin) - (dom/set-attribute! iframe "src" new-origin) - (dom/append-child! js/document.body iframe) + (dom/set-attribute! iframe "src" new-origin) + (dom/append-child! js/document.body iframe) - (set! origin new-origin) - (set! cf/rasterizer-uri cf/public-uri) - (set! instance iframe)))))))) + (set! origin new-origin) + (set! cf/rasterizer-uri cf/public-uri) + (set! instance iframe)))))))) diff --git a/frontend/src/app/main/render.cljs b/frontend/src/app/main/render.cljs index 2066ad30c..df7cf722e 100644 --- a/frontend/src/app/main/render.cljs +++ b/frontend/src/app/main/render.cljs @@ -48,7 +48,7 @@ [app.util.strings :as ust] [app.util.thumbnails :as th] [app.util.timers :as ts] - [beicon.core :as rx] + [beicon.v2.core :as rx] [clojure.set :as set] [cuerdas.core :as str] [rumext.v2 :as mf])) @@ -550,7 +550,7 @@ (mapcat get-image-data))] (->> (rx/from images) (rx/map #(cfg/resolve-file-media %)) - (rx/flat-map http/fetch-data-uri)))) + (rx/merge-map http/fetch-data-uri)))) (defn populate-fonts-cache [objects] (let [texts (->> objects @@ -561,10 +561,10 @@ (->> (rx/from texts) (rx/map fonts/get-content-fonts) (rx/reduce set/union #{}) - (rx/flat-map identity) - (rx/flat-map fonts/fetch-font-css) - (rx/flat-map fonts/extract-fontface-urls) - (rx/flat-map http/fetch-data-uri)))) + (rx/merge-map identity) + (rx/merge-map fonts/fetch-font-css) + (rx/merge-map fonts/extract-fontface-urls) + (rx/merge-map http/fetch-data-uri)))) (defn render-page [data] diff --git a/frontend/src/app/main/repo.cljs b/frontend/src/app/main/repo.cljs index e99f9a461..a38298143 100644 --- a/frontend/src/app/main/repo.cljs +++ b/frontend/src/app/main/repo.cljs @@ -12,7 +12,7 @@ [app.config :as cf] [app.util.http :as http] [app.util.sse :as sse] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str])) (defn handle-response diff --git a/frontend/src/app/main/snap.cljs b/frontend/src/app/main/snap.cljs index 0735eebe1..1b7cf7c9e 100644 --- a/frontend/src/app/main/snap.cljs +++ b/frontend/src/app/main/snap.cljs @@ -19,7 +19,7 @@ [app.main.refs :as refs] [app.main.worker :as uw] [app.util.range-tree :as rt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [clojure.set :as set])) (def ^:const snap-accuracy 10) diff --git a/frontend/src/app/main/store.cljs b/frontend/src/app/main/store.cljs index 906702b84..46e77f4d7 100644 --- a/frontend/src/app/main/store.cljs +++ b/frontend/src/app/main/store.cljs @@ -9,9 +9,10 @@ [app.common.logging :as log] [app.util.object :as obj] [app.util.timers :as tm] - [beicon.core :as rx] + [beicon.v2.core :as rx] + [beicon.v2.operators :as rxo] [okulary.core :as l] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (log/set-level! :info) @@ -65,7 +66,7 @@ (->> stream (rx/filter (ptk/type? :app.main.data.workspace.changes/commit-changes)) (rx/map #(-> % deref :hint-origin str)) - (rx/dedupe)) + (rx/pipe (rxo/distinct-contiguous))) (->> stream (rx/map ptk/type) (rx/filter #(contains? allowed %)) @@ -75,7 +76,7 @@ (> (count buffer) 20) (pop))) #queue []) - (rx/subs #(reset! buffer (vec %)))) + (rx/subs! #(reset! buffer (vec %)))) buffer)) (defn emit! diff --git a/frontend/src/app/main/streams.cljs b/frontend/src/app/main/streams.cljs index b17f5808d..536e98b66 100644 --- a/frontend/src/app/main/streams.cljs +++ b/frontend/src/app/main/streams.cljs @@ -12,7 +12,8 @@ [app.util.globals :as globals] [app.util.keyboard :as kbd] [app.util.mouse :as mse] - [beicon.core :as rx])) + [beicon.v2.core :as rx] + [beicon.v2.operators :as rxo])) ;; --- User Events @@ -33,23 +34,23 @@ ob (->> pointer (rx/filter #(= :viewport (mse/get-pointer-source %))) (rx/map mse/get-pointer-position))] - (rx/subscribe-with ob sub) + (rx/sub! ob sub) sub)) (defonce mouse-position-ctrl (let [sub (rx/behavior-subject nil) ob (->> pointer (rx/map mse/get-pointer-ctrl-mod) - (rx/dedupe))] - (rx/subscribe-with ob sub) + (rx/pipe (rxo/distinct-contiguous)))] + (rx/sub! ob sub) sub)) (defonce mouse-position-meta (let [sub (rx/behavior-subject nil) ob (->> pointer (rx/map mse/get-pointer-meta-mod) - (rx/dedupe))] - (rx/subscribe-with ob sub) + (rx/pipe (rxo/distinct-contiguous)))] + (rx/sub! ob sub) sub)) (defonce mouse-position-mod @@ -61,16 +62,16 @@ (let [sub (rx/behavior-subject nil) ob (->> pointer (rx/map mse/get-pointer-shift-mod) - (rx/dedupe))] - (rx/subscribe-with ob sub) + (rx/pipe (rxo/distinct-contiguous)))] + (rx/sub! ob sub) sub)) (defonce mouse-position-alt (let [sub (rx/behavior-subject nil) ob (->> pointer (rx/map mse/get-pointer-alt-mod) - (rx/dedupe))] - (rx/subscribe-with ob sub) + (rx/pipe (rxo/distinct-contiguous)))] + (rx/sub! ob sub) sub)) (defonce ^:private window-blur @@ -93,8 +94,8 @@ ;; registering the key pressed but on blurring the ;; window (unfocus) the key down is never arrived. (rx/merge window-blur) - (rx/dedupe))] - (rx/subscribe-with ob sub) + (rx/pipe (rxo/distinct-contiguous)))] + (rx/sub! ob sub) sub)) (defonce keyboard-ctrl @@ -107,8 +108,8 @@ ;; registering the key pressed but on blurring the ;; window (unfocus) the key down is never arrived. (rx/merge window-blur) - (rx/dedupe))] - (rx/subscribe-with ob sub) + (rx/pipe (rxo/distinct-contiguous)))] + (rx/sub! ob sub) sub)) (defonce keyboard-meta @@ -121,8 +122,8 @@ ;; registering the key pressed but on blurring the ;; window (unfocus) the key down is never arrived. (rx/merge window-blur) - (rx/dedupe))] - (rx/subscribe-with ob sub) + (rx/pipe (rxo/distinct-contiguous)))] + (rx/sub! ob sub) sub)) (defonce keyboard-mod @@ -136,6 +137,6 @@ (rx/filter kbd/space?) (rx/filter (complement kbd/editing-event?)) (rx/map kbd/key-down-event?) - (rx/dedupe))] - (rx/subscribe-with ob sub) + (rx/pipe (rxo/distinct-contiguous)))] + (rx/sub! ob sub) sub)) diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index 2092a2fb5..249ed8e99 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -25,7 +25,7 @@ [app.util.i18n :refer [tr]] [app.util.keyboard :as k] [app.util.router :as rt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [rumext.v2 :as mf])) @@ -40,7 +40,7 @@ [event provider params] (dom/prevent-default event) (->> (rp/cmd! :login-with-oidc (assoc params :provider provider)) - (rx/subs (fn [{:keys [redirect-uri] :as rsp}] + (rx/subs! (fn [{:keys [redirect-uri] :as rsp}] (if redirect-uri (.replace js/location redirect-uri) (log/error :hint "unexpected response from OIDC method" @@ -60,7 +60,7 @@ (dom/stop-propagation event) (let [{:keys [on-error]} (meta params)] (->> (rp/cmd! :login-with-ldap params) - (rx/subs (fn [profile] + (rx/subs! (fn [profile] (if-let [token (:invitation-token profile)] (st/emit! (rt/nav :auth-verify-token {} {:token token})) (st/emit! (du/login-from-token {:profile profile})))) diff --git a/frontend/src/app/main/ui/auth/recovery_request.cljs b/frontend/src/app/main/ui/auth/recovery_request.cljs index 04202336d..f9138025f 100644 --- a/frontend/src/app/main/ui/auth/recovery_request.cljs +++ b/frontend/src/app/main/ui/auth/recovery_request.cljs @@ -18,7 +18,7 @@ [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index da8f5277a..432c852ae 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -22,7 +22,7 @@ [app.main.ui.messages :as msgs] [app.util.i18n :refer [tr tr-html]] [app.util.router :as rt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [rumext.v2 :as mf])) @@ -109,7 +109,7 @@ (->> (rp/cmd! :prepare-register-profile cdata) (rx/map #(merge % params)) (rx/finalize #(reset! submitted? false)) - (rx/subs + (rx/subs! on-success (partial handle-prepare-register-error form))))))] @@ -303,7 +303,7 @@ (let [params (:clean-data @form)] (->> (rp/cmd! :register-profile params) (rx/finalize #(reset! submitted? false)) - (rx/subs on-success + (rx/subs! on-success (partial handle-register-error form))))))] (if new-css-system @@ -375,7 +375,7 @@ [:div {:class (stl/css :link-entry :go-back)} [:& lk/link {:action #(st/emit! (rt/nav :auth-register {} {}))} (tr "labels.go-back")]]]] - + ;; OLD [:div.form-container [:h1 {:data-test "register-title"} (tr "auth.register-title")] diff --git a/frontend/src/app/main/ui/auth/verify_token.cljs b/frontend/src/app/main/ui/auth/verify_token.cljs index c8f917cb9..db8f7745a 100644 --- a/frontend/src/app/main/ui/auth/verify_token.cljs +++ b/frontend/src/app/main/ui/auth/verify_token.cljs @@ -18,7 +18,7 @@ [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [app.util.timers :as ts] - [beicon.core :as rx] + [beicon.v2.core :as rx] [rumext.v2 :as mf])) (defmulti handle-token (fn [token] (:iss token))) @@ -69,7 +69,7 @@ (mf/with-effect [] (dom/set-html-title (tr "title.default")) (->> (rp/cmd! :verify-token {:token token}) - (rx/subs + (rx/subs! (fn [tdata] (handle-token tdata)) (fn [{:keys [type code] :as error}] diff --git a/frontend/src/app/main/ui/components/copy_button.cljs b/frontend/src/app/main/ui/components/copy_button.cljs index 745567979..49cb7f63e 100644 --- a/frontend/src/app/main/ui/components/copy_button.cljs +++ b/frontend/src/app/main/ui/components/copy_button.cljs @@ -12,7 +12,7 @@ [app.main.ui.icons :as i] [app.util.timers :as timers] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] [rumext.v2 :as mf])) (mf/defc copy-button [{:keys [data on-copied children class]}] diff --git a/frontend/src/app/main/ui/dashboard/comments.cljs b/frontend/src/app/main/ui/dashboard/comments.cljs index 9f3b4e28a..45c4d75d6 100644 --- a/frontend/src/app/main/ui/dashboard/comments.cljs +++ b/frontend/src/app/main/ui/dashboard/comments.cljs @@ -19,7 +19,7 @@ [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as kbd] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (mf/defc comments-icon diff --git a/frontend/src/app/main/ui/dashboard/export.cljs b/frontend/src/app/main/ui/dashboard/export.cljs index 7f6c30028..d1ff72b12 100644 --- a/frontend/src/app/main/ui/dashboard/export.cljs +++ b/frontend/src/app/main/ui/dashboard/export.cljs @@ -16,7 +16,7 @@ [app.main.worker :as uw] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] - [beicon.core :as rx] + [beicon.v2.core :as rx] [rumext.v2 :as mf])) (def ^:const options [:all :merge :detach]) @@ -101,8 +101,9 @@ :features features :export-type selected :files files}) - (rx/delay-emit 1000) - (rx/subs + (rx/mapcat #(->> (rx/of %) + (rx/delay 1000))) + (rx/subs! (fn [msg] (cond (= :error (:type msg)) diff --git a/frontend/src/app/main/ui/dashboard/file_menu.cljs b/frontend/src/app/main/ui/dashboard/file_menu.cljs index cfd6b748f..d0ebba7aa 100644 --- a/frontend/src/app/main/ui/dashboard/file_menu.cljs +++ b/frontend/src/app/main/ui/dashboard/file_menu.cljs @@ -18,8 +18,8 @@ [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] - [beicon.core :as rx] - [potok.core :as ptk] + [beicon.v2.core :as rx] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (defn get-project-name @@ -195,7 +195,7 @@ (when show? (->> (rp/cmd! :get-all-projects) (rx/map group-by-team) - (rx/subs #(when (mf/ref-val mounted-ref) + (rx/subs! #(when (mf/ref-val mounted-ref) (reset! teams %))))))) (when current-team diff --git a/frontend/src/app/main/ui/dashboard/fonts.cljs b/frontend/src/app/main/ui/dashboard/fonts.cljs index f81d194f5..30cfa5f39 100644 --- a/frontend/src/app/main/ui/dashboard/fonts.cljs +++ b/frontend/src/app/main/ui/dashboard/fonts.cljs @@ -20,7 +20,7 @@ [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as kbd] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] [rumext.v2 :as mf])) @@ -75,7 +75,7 @@ (mf/deps team installed-fonts) (fn [blobs] (->> (df/process-upload blobs (:id team)) - (rx/subs (fn [result] + (rx/subs! (fn [result] (swap! fonts df/merge-and-group-fonts installed-fonts result)) (fn [error] (js/console.error "error" error)))))) @@ -87,7 +87,7 @@ (swap! uploading conj (:id item)) (->> (rp/cmd! :create-font-variant item) (rx/delay-at-least 2000) - (rx/subs (fn [font] + (rx/subs! (fn [font] (swap! fonts dissoc (:id item)) (swap! uploading disj (:id item)) (st/emit! (df/add-font font))) diff --git a/frontend/src/app/main/ui/dashboard/grid.cljs b/frontend/src/app/main/ui/dashboard/grid.cljs index 663e26710..57108c88b 100644 --- a/frontend/src/app/main/ui/dashboard/grid.cljs +++ b/frontend/src/app/main/ui/dashboard/grid.cljs @@ -35,7 +35,7 @@ [app.util.keyboard :as kbd] [app.util.time :as dt] [app.util.timers :as ts] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] [rumext.v2 :as mf])) @@ -75,7 +75,7 @@ (mf/with-effect [file-id revn visible? thumbnail-uri] (when (and visible? (not thumbnail-uri)) (->> (ask-for-thumbnail file-id revn) - (rx/subs (fn [url] + (rx/subs! (fn [url] (st/emit! (dd/set-file-thumbnail file-id url))) (fn [cause] (log/error :hint "unable to render thumbnail" diff --git a/frontend/src/app/main/ui/dashboard/import.cljs b/frontend/src/app/main/ui/dashboard/import.cljs index f85df2def..d0d4b4d2c 100644 --- a/frontend/src/app/main/ui/dashboard/import.cljs +++ b/frontend/src/app/main/ui/dashboard/import.cljs @@ -25,9 +25,9 @@ [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as kbd] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (log/set-level! :debug) @@ -319,9 +319,9 @@ (->> (uw/ask-many! {:cmd :analyze-import :files files}) - (rx/delay-emit emit-delay) + (rx/mapcat #(rx/delay emit-delay (rx/of %))) (rx/filter some?) - (rx/subs + (rx/subs! (fn [{:keys [uri data error type] :as msg}] (if (some? error) (swap! state update :files set-analyze-error uri) @@ -337,7 +337,7 @@ :project-id project-id :files files :features @features/features-ref}) - (rx/subs + (rx/subs! (fn [{:keys [file-id status message errors] :as msg}] (swap! state update :files update-status file-id status message errors)))))) diff --git a/frontend/src/app/main/ui/dashboard/projects.cljs b/frontend/src/app/main/ui/dashboard/projects.cljs index 01538627e..572c72f77 100644 --- a/frontend/src/app/main/ui/dashboard/projects.cljs +++ b/frontend/src/app/main/ui/dashboard/projects.cljs @@ -31,7 +31,7 @@ [app.util.time :as dt] [cuerdas.core :as str] [okulary.core :as l] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (mf/defc header diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs index 8b469639a..4b61fb2ba 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.cljs +++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs @@ -33,10 +33,10 @@ [app.util.object :as obj] [app.util.router :as rt] [app.util.timers :as ts] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [goog.functions :as f] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (mf/defc sidebar-project diff --git a/frontend/src/app/main/ui/dashboard/team.cljs b/frontend/src/app/main/ui/dashboard/team.cljs index 919675791..2f4f57a65 100644 --- a/frontend/src/app/main/ui/dashboard/team.cljs +++ b/frontend/src/app/main/ui/dashboard/team.cljs @@ -27,7 +27,7 @@ [app.main.ui.icons :as i] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [cuerdas.core :as str] [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/dashboard/team_form.cljs b/frontend/src/app/main/ui/dashboard/team_form.cljs index 5333e7225..08a8d1df8 100644 --- a/frontend/src/app/main/ui/dashboard/team_form.cljs +++ b/frontend/src/app/main/ui/dashboard/team_form.cljs @@ -17,7 +17,7 @@ [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/dashboard/templates.cljs b/frontend/src/app/main/ui/dashboard/templates.cljs index 0bd2394cd..c733d4f3e 100644 --- a/frontend/src/app/main/ui/dashboard/templates.cljs +++ b/frontend/src/app/main/ui/dashboard/templates.cljs @@ -23,7 +23,7 @@ [app.util.keyboard :as kbd] [app.util.router :as rt] [okulary.core :as l] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (def builtin-templates diff --git a/frontend/src/app/main/ui/delete_shared.cljs b/frontend/src/app/main/ui/delete_shared.cljs index 1fb568b96..a1e341f45 100644 --- a/frontend/src/app/main/ui/delete_shared.cljs +++ b/frontend/src/app/main/ui/delete_shared.cljs @@ -16,7 +16,7 @@ [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as k] - [beicon.core :as rx] + [beicon.v2.core :as rx] [goog.events :as events] [rumext.v2 :as mf])) @@ -85,7 +85,7 @@ (rx/mapcat identity) (rx/map (juxt :id :name)) (rx/reduce conj []) - (rx/subs #(reset! references* %)))) + (rx/subs! #(reset! references* %)))) (mf/with-effect [accept-fn] (letfn [(on-keydown [event] diff --git a/frontend/src/app/main/ui/hooks.cljs b/frontend/src/app/main/ui/hooks.cljs index ec41de80f..79bf1fa81 100644 --- a/frontend/src/app/main/ui/hooks.cljs +++ b/frontend/src/app/main/ui/hooks.cljs @@ -19,7 +19,8 @@ [app.util.storage :refer [storage]] [app.util.timers :as ts] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] + [beicon.v2.operators :as rxo] [goog.functions :as f] [rumext.v2 :as mf])) @@ -35,8 +36,8 @@ (let [[state reset-state!] (mf/useState #(if (satisfies? IDeref ob) @ob nil))] (mf/useEffect (fn [] - (let [sub (rx/subscribe ob #(reset-state! %))] - #(rx/cancel! sub))) + (let [sub (rx/sub! ob #(reset-state! %))] + #(rx/dispose! sub))) #js [ob]) state)) @@ -106,7 +107,7 @@ cleanup (fn [] - (some-> (:subscr @state) rx/unsub!) + (some-> (:subscr @state) rx/dispose!) (swap! state (fn [state] (-> state (cancel-timer) @@ -217,7 +218,7 @@ (mf/use-effect deps (fn [] - (let [sub (->> stream (rx/subs on-subscribe))] + (let [sub (->> stream (rx/subs! on-subscribe))] #(rx/dispose! sub)))))) ;; https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state @@ -339,8 +340,8 @@ intersecting?))) - (rx/dedupe)) - subs (rx/subscribe stream update-state!)] + (rx/pipe (rxo/distinct-contiguous))) + subs (rx/sub! stream update-state!)] (.observe ^js @intersection-observer node) (fn [] (.unobserve ^js @intersection-observer node) @@ -383,7 +384,7 @@ (let [node (mf/ref-val rowref) mnt? (volatile! true) sub (->> (wapi/observe-resize node) - (rx/subs (fn [entries] + (rx/subs! (fn [entries] (let [row (first entries) row-rect (.-contentRect ^js row) row-width (.-width ^js row-rect)] diff --git a/frontend/src/app/main/ui/onboarding.cljs b/frontend/src/app/main/ui/onboarding.cljs index d29b8540c..8b9801d8a 100644 --- a/frontend/src/app/main/ui/onboarding.cljs +++ b/frontend/src/app/main/ui/onboarding.cljs @@ -20,7 +20,7 @@ [app.main.ui.onboarding.templates] [app.util.i18n :as i18n :refer [tr]] [app.util.timers :as tm] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) ;; --- ONBOARDING LIGHTBOX diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index c71c62410..bb2d5c977 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -21,7 +21,7 @@ [app.util.router :as rt] [app.util.timers :as tm] [cljs.spec.alpha :as s] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (s/def ::name ::us/not-empty-string) diff --git a/frontend/src/app/main/ui/onboarding/templates.cljs b/frontend/src/app/main/ui/onboarding/templates.cljs index 2ce17a7d8..1744f69c7 100644 --- a/frontend/src/app/main/ui/onboarding/templates.cljs +++ b/frontend/src/app/main/ui/onboarding/templates.cljs @@ -16,7 +16,7 @@ [app.util.http :as http] [app.util.i18n :as i18n :refer [tr]] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] [rumext.v2 :as mf])) (mf/defc template-item @@ -39,7 +39,7 @@ (fn [] (reset! downloading? true) (->> (http/send! {:method :get :uri link :response-type :blob :mode :no-cors}) - (rx/subs (fn [{:keys [body] :as response}] + (rx/subs! (fn [{:keys [body] :as response}] (open-import-modal {:name name :uri (wapi/create-uri body)})) (fn [error] (js/console.log "error" error)) diff --git a/frontend/src/app/main/ui/routes.cljs b/frontend/src/app/main/ui/routes.cljs index 20a103ccb..1a796f32d 100644 --- a/frontend/src/app/main/ui/routes.cljs +++ b/frontend/src/app/main/ui/routes.cljs @@ -14,9 +14,9 @@ [app.main.repo :as rp] [app.main.store :as st] [app.util.router :as rt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (s/def ::page-id ::us/uuid) (s/def ::file-id ::us/uuid) @@ -112,7 +112,7 @@ ;; some race conditions that causes unexpected redirects on ;; invitations workflows (and probably other cases). (->> (rp/cmd! :get-profile) - (rx/subs (fn [{:keys [id] :as profile}] + (rx/subs! (fn [{:keys [id] :as profile}] (cond (= id uuid/zero) (st/emit! (rt/nav :auth-login)) diff --git a/frontend/src/app/main/ui/settings/change_email.cljs b/frontend/src/app/main/ui/settings/change_email.cljs index 6cd6ae69f..08ab6ea6f 100644 --- a/frontend/src/app/main/ui/settings/change_email.cljs +++ b/frontend/src/app/main/ui/settings/change_email.cljs @@ -20,7 +20,7 @@ [app.main.ui.icons :as i] [app.main.ui.messages :as msgs] [app.util.i18n :as i18n :refer [tr]] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/settings/delete_account.cljs b/frontend/src/app/main/ui/settings/delete_account.cljs index 5f13bcf85..a9c26b730 100644 --- a/frontend/src/app/main/ui/settings/delete_account.cljs +++ b/frontend/src/app/main/ui/settings/delete_account.cljs @@ -15,7 +15,7 @@ [app.main.ui.icons :as i] [app.main.ui.messages :as msgs] [app.util.i18n :as i18n :refer [tr]] - [beicon.core :as rx] + [beicon.v2.core :as rx] [rumext.v2 :as mf])) (defn on-error diff --git a/frontend/src/app/main/ui/settings/feedback.cljs b/frontend/src/app/main/ui/settings/feedback.cljs index d8e41518b..46bbc1e1b 100644 --- a/frontend/src/app/main/ui/settings/feedback.cljs +++ b/frontend/src/app/main/ui/settings/feedback.cljs @@ -17,7 +17,7 @@ [app.main.ui.context :as ctx] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [rumext.v2 :as mf])) @@ -60,7 +60,7 @@ (reset! loading true) (let [data (:clean-data @form)] (->> (rp/cmd! :send-user-feedback data) - (rx/subs on-succes on-error)))))] + (rx/subs! on-succes on-error)))))] (if new-css-system [:& fm/form {:class (stl/css :feedback-form) diff --git a/frontend/src/app/main/ui/settings/sidebar.cljs b/frontend/src/app/main/ui/settings/sidebar.cljs index cb13feab0..5d3fc8c8b 100644 --- a/frontend/src/app/main/ui/settings/sidebar.cljs +++ b/frontend/src/app/main/ui/settings/sidebar.cljs @@ -18,7 +18,7 @@ [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as kbd] [app.util.router :as rt] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (mf/defc sidebar-content diff --git a/frontend/src/app/main/ui/shapes/embed.cljs b/frontend/src/app/main/ui/shapes/embed.cljs index 8d0f04b39..4e9fe7d49 100644 --- a/frontend/src/app/main/ui/shapes/embed.cljs +++ b/frontend/src/app/main/ui/shapes/embed.cljs @@ -8,7 +8,7 @@ (:require [app.main.ui.hooks :as hooks] [app.util.http :as http] - [beicon.core :as rx] + [beicon.v2.core :as rx] [rumext.v2 :as mf])) (def context (mf/create-context false)) @@ -37,7 +37,7 @@ (rx/filter some?) (url-mapping) (rx/reduce conj {}) - (rx/subs (fn [data] + (rx/subs! (fn [data] (when-not (= data (mf/ref-val uri-data)) (mf/set-ref-val! uri-data data) (reset! state inc)))))] diff --git a/frontend/src/app/main/ui/shapes/text/fontfaces.cljs b/frontend/src/app/main/ui/shapes/text/fontfaces.cljs index 44a12e8c0..ceca03f53 100644 --- a/frontend/src/app/main/ui/shapes/text/fontfaces.cljs +++ b/frontend/src/app/main/ui/shapes/text/fontfaces.cljs @@ -10,7 +10,7 @@ [app.common.files.helpers :as cfh] [app.main.fonts :as fonts] [app.util.object :as obj] - [beicon.core :as rx] + [beicon.v2.core :as rx] [clojure.set :as set] [cuerdas.core :as str] [rumext.v2 :as mf])) @@ -28,7 +28,7 @@ (->> (rx/from fonts) (rx/merge-map fonts/fetch-font-css) (rx/reduce conj []) - (rx/subs + (rx/subs! (fn [result] (let [css (str/join "\n" result)] (when-not (= (mf/ref-val fonts-css-ref) css) diff --git a/frontend/src/app/main/ui/viewer/inspect/code.cljs b/frontend/src/app/main/ui/viewer/inspect/code.cljs index 698d84613..b91b7df99 100644 --- a/frontend/src/app/main/ui/viewer/inspect/code.cljs +++ b/frontend/src/app/main/ui/viewer/inspect/code.cljs @@ -30,9 +30,9 @@ [app.util.dom :as dom] [app.util.http :as http] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (def embed-images? true) @@ -224,7 +224,7 @@ #(->> (rx/from fonts) (rx/merge-map fonts/fetch-font-css) (rx/reduce conj []) - (rx/subs + (rx/subs! (fn [result] (let [css (str/join "\n" result)] (reset! fontfaces-css* css)))))) @@ -237,7 +237,7 @@ (->> (http/fetch-data-uri uri true) (rx/catch (fn [_] (rx/of (hash-map uri uri))))))) (rx/reduce conj {}) - (rx/subs + (rx/subs! (fn [result] (reset! images-data* result))))) diff --git a/frontend/src/app/main/ui/viewer/share_link.cljs b/frontend/src/app/main/ui/viewer/share_link.cljs index a12e30da8..41bd3ed20 100644 --- a/frontend/src/app/main/ui/viewer/share_link.cljs +++ b/frontend/src/app/main/ui/viewer/share_link.cljs @@ -24,7 +24,7 @@ [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [app.util.webapi :as wapi] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (log/set-level! :warn) diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index d9e9ba124..ed1f369f7 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -31,10 +31,10 @@ [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as kbd] [app.util.router :as rt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] [okulary.core :as l] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (def ref:workspace-persistence @@ -393,12 +393,12 @@ :num-files 1})) (->> (rx/of file) - (rx/flat-map + (rx/merge-map (fn [file] (->> (rp/cmd! :has-file-libraries {:file-id (:id file)}) (rx/map #(assoc file :has-libraries? %))))) (rx/reduce conj []) - (rx/subs + (rx/subs! (fn [files] (modal/show! {:type :export diff --git a/frontend/src/app/main/ui/workspace/left_header.cljs b/frontend/src/app/main/ui/workspace/left_header.cljs index 28af7d7ec..4ff00abca 100644 --- a/frontend/src/app/main/ui/workspace/left_header.cljs +++ b/frontend/src/app/main/ui/workspace/left_header.cljs @@ -31,7 +31,7 @@ [app.util.keyboard :as kbd] [app.util.router :as rt] [cuerdas.core :as str] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) ;; --- Header menu and submenus diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs index 85d5932a6..9ea7a1f6c 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs @@ -30,7 +30,7 @@ [app.util.keyboard :as kbd] [cuerdas.core :as str] [okulary.core :as l] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (mf/defc color-item diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs index 9905ba70a..aa8dbccbc 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs @@ -33,7 +33,7 @@ [app.util.i18n :as i18n :refer [tr]] [cuerdas.core :as str] [okulary.core :as l] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (def drag-data* (atom {:local? false})) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.cljs index 7291a1544..0bb270ec3 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.cljs @@ -31,7 +31,7 @@ [app.util.i18n :as i18n :refer [tr]] [cuerdas.core :as str] [okulary.core :as l] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (mf/defc graphics-item diff --git a/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs b/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs index ea01a4bae..400dc5adb 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs @@ -28,7 +28,7 @@ [app.util.i18n :refer [tr]] [app.util.keyboard :as kbd] [app.util.timers :as ts] - [beicon.core :as rx] + [beicon.v2.core :as rx] [okulary.core :as l] [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 12608e85e..6933fb1c8 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -46,7 +46,7 @@ [app.main.ui.workspace.viewport.viewport-ref :refer [create-viewport-ref]] [app.main.ui.workspace.viewport.widgets :as widgets] [app.util.debug :as dbg] - [beicon.core :as rx] + [beicon.v2.core :as rx] [rumext.v2 :as mf])) ;; --- Viewport diff --git a/frontend/src/app/main/ui/workspace/viewport/actions.cljs b/frontend/src/app/main/ui/workspace/viewport/actions.cljs index 82b983c0b..64fe00e77 100644 --- a/frontend/src/app/main/ui/workspace/viewport/actions.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/actions.cljs @@ -30,7 +30,7 @@ [app.util.object :as obj] [app.util.timers :as timers] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/workspace/viewport/gradients.cljs b/frontend/src/app/main/ui/workspace/viewport/gradients.cljs index 6fd05d586..f1cb78ee2 100644 --- a/frontend/src/app/main/ui/workspace/viewport/gradients.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/gradients.cljs @@ -17,7 +17,7 @@ [app.main.store :as st] [app.util.dom :as dom] [app.util.mouse :as mse] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] [rumext.v2 :as mf])) @@ -157,7 +157,7 @@ (rx/filter mse/pointer-event?) (rx/filter #(= :viewport (mse/get-pointer-source %))) (rx/map mse/get-pointer-position) - (rx/subs + (rx/subs! (fn [pt] (case @moving-point :from-p (when on-change-start (on-change-start pt)) diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs index d4fd7b19a..c195917cf 100644 --- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs @@ -32,7 +32,8 @@ [app.util.dom :as dom] [app.util.globals :as globals] [app.util.keyboard :as kbd] - [beicon.core :as rx] + [beicon.v2.core :as rx] + [beicon.v2.operators :as rxo] [goog.events :as events] [rumext.v2 :as mf]) (:import goog.events.EventType)) @@ -112,7 +113,7 @@ ^boolean (kbd/underscore? kevent) ^boolean (kbd/equals? kevent) ^boolean (kbd/plus? kevent)))) - (rx/dedupe))) + (rx/pipe (rxo/distinct-contiguous)))) kbd-shift-s (mf/with-memo [] @@ -120,7 +121,7 @@ (rx/filter kbd/shift-key?) (rx/filter (complement kbd/editing-event?)) (rx/map kbd/key-down-event?) - (rx/dedupe))) + (rx/pipe (rxo/distinct-contiguous)))) kbd-z-s (mf/with-memo [] @@ -128,7 +129,7 @@ (rx/filter kbd/z?) (rx/filter (complement kbd/editing-event?)) (rx/map kbd/key-down-event?) - (rx/dedupe)))] + (rx/pipe (rxo/distinct-contiguous))))] (hooks/use-stream ms/keyboard-alt (partial reset! alt*)) (hooks/use-stream ms/keyboard-space (partial reset! space*)) diff --git a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs index 36601aaf4..fb295276f 100644 --- a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs @@ -18,7 +18,7 @@ [app.util.dom :as dom] [app.util.keyboard :as kbd] [app.util.object :as obj] - [beicon.core :as rx] + [beicon.v2.core :as rx] [goog.events :as events] [rumext.v2 :as mf]) (:import goog.events.EventType)) @@ -144,7 +144,7 @@ (assoc result :styles styles))) (rx/mapcat thr/render-node) - (rx/subs (fn [image-bitmap] + (rx/subs! (fn [image-bitmap] (.drawImage canvas-context image-bitmap 0 0) (let [width (unchecked-get canvas "width") height (unchecked-get canvas "height") @@ -168,7 +168,7 @@ (fn [] (let [sub (->> update-str (rx/debounce 10) - (rx/subs handle-draw-picker-canvas))] + (rx/subs! handle-draw-picker-canvas))] #(rx/dispose! sub)))) (mf/use-effect diff --git a/frontend/src/app/main/ui/workspace/viewport/presence.cljs b/frontend/src/app/main/ui/workspace/viewport/presence.cljs index 0aa64ade4..bf4af1a0a 100644 --- a/frontend/src/app/main/ui/workspace/viewport/presence.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/presence.cljs @@ -9,7 +9,7 @@ [app.main.refs :as refs] [app.util.time :as dt] [app.util.timers :as ts] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs index d37930839..f0739fbc2 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_distances.cljs @@ -15,7 +15,7 @@ [app.main.refs :as refs] [app.main.snap :as ams] [app.main.ui.formats :as fmt] - [beicon.core :as rx] + [beicon.v2.core :as rx] [clojure.set :as set] [cuerdas.core :as str] [rumext.v2 :as mf])) @@ -256,7 +256,7 @@ ;; know it is a static value and will not go to ;; change (rx/switch-map (partial query-worker page-id coord)) - (rx/subs (fn [[lt-shapes gt-shapes]] + (rx/subs! (fn [[lt-shapes gt-shapes]] (reset! lt-shapes* lt-shapes) (reset! gt-shapes* gt-shapes))))] ;; On unmount dispose diff --git a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs index d7f891a23..a65ab0366 100644 --- a/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/snap_points.cljs @@ -13,7 +13,7 @@ [app.common.geom.snap :as sp] [app.common.types.shape.layout :as ctl] [app.main.snap :as snap] - [beicon.core :as rx] + [beicon.v2.core :as rx] [rumext.v2 :as mf])) (def ^:private line-color "var(--color-snap)") @@ -56,12 +56,12 @@ frame-id (snap/snap-frame-id shapes)] (->> (rx/of bounds) - (rx/flat-map + (rx/merge-map (fn [bounds] (->> (sp/rect->snap-points bounds) (map #(vector frame-id %))))) - (rx/flat-map + (rx/merge-map (fn [[frame-id point]] (->> (snap/get-snap-points page-id frame-id remove-snap? zoom point coord) (rx/map #(mapcat second %)) @@ -124,7 +124,7 @@ (fn [result] (apply d/concat-vec (seq result)))) - (rx/subs + (rx/subs! (fn [data] (let [rs (filter (fn [[_ snaps _]] (> (count snaps) 0)) data)] (reset! state rs)))))] diff --git a/frontend/src/app/rasterizer.cljs b/frontend/src/app/rasterizer.cljs index 3244b1430..d6eeb474c 100644 --- a/frontend/src/app/rasterizer.cljs +++ b/frontend/src/app/rasterizer.cljs @@ -17,7 +17,7 @@ [app.util.http :as http] [app.util.object :as obj] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str])) (log/set-level! :info) @@ -229,7 +229,7 @@ (when (and (some? payload) (= scope "penpot/rasterizer")) (->> (render payload) - (rx/subs (partial send-success! id) + (rx/subs! (partial send-success! id) (partial send-failure! id)))))))) (defn- listen diff --git a/frontend/src/app/render.cljs b/frontend/src/app/render.cljs index 1bb1d1387..f3f13a098 100644 --- a/frontend/src/app/render.cljs +++ b/frontend/src/app/render.cljs @@ -21,11 +21,11 @@ [app.main.store :as st] [app.util.dom :as dom] [app.util.globals :as glob] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] [garden.core :refer [css]] [okulary.core :as l] - [potok.core :as ptk] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (log/setup! {:app :info}) diff --git a/frontend/src/app/util/cache.cljs b/frontend/src/app/util/cache.cljs index fcb54c917..61cd08adc 100644 --- a/frontend/src/app/util/cache.cljs +++ b/frontend/src/app/util/cache.cljs @@ -7,7 +7,7 @@ (ns app.util.cache (:require [app.util.time :as dt] - [beicon.core :as rx])) + [beicon.v2.core :as rx])) (defonce cache (atom {})) (defonce pending (atom {})) diff --git a/frontend/src/app/util/http.cljs b/frontend/src/app/util/http.cljs index 35c8ae485..220128bdf 100644 --- a/frontend/src/app/util/http.cljs +++ b/frontend/src/app/util/http.cljs @@ -15,7 +15,7 @@ [app.util.globals :as globals] [app.util.time :as dt] [app.util.webapi :as wapi] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] [promesa.core :as p])) @@ -58,7 +58,7 @@ :or {mode :cors headers {} credentials "same-origin"}}] - (rx/Observable.create + (rx/create (fn [subscriber] (let [controller (js/AbortController.) signal (.-signal ^js controller) @@ -172,7 +172,7 @@ (p/create (fn [resolve reject] (->> (rx/take 1 observable) - (rx/subs resolve reject))))) + (rx/subs! resolve reject))))) (defn fetch-data-uri ([uri] diff --git a/frontend/src/app/util/router.cljs b/frontend/src/app/util/router.cljs index 2fd4b738d..83284596a 100644 --- a/frontend/src/app/util/router.cljs +++ b/frontend/src/app/util/router.cljs @@ -12,9 +12,9 @@ [app.util.browser-history :as bhistory] [app.util.dom :as dom] [app.util.timers :as ts] - [beicon.core :as rx] + [beicon.v2.core :as rx] [goog.events :as e] - [potok.core :as ptk] + [potok.v2.core :as ptk] [reitit.core :as r])) ;; --- Router API @@ -159,4 +159,4 @@ (bhistory/disable! history) (e/unlistenByKey key))))) (rx/take-until stoper) - (rx/subs #(on-change router %))))))) + (rx/subs! #(on-change router %))))))) diff --git a/frontend/src/app/util/sse.cljs b/frontend/src/app/util/sse.cljs index 222e1bda7..0913f052a 100644 --- a/frontend/src/app/util/sse.cljs +++ b/frontend/src/app/util/sse.cljs @@ -7,7 +7,7 @@ (ns app.util.sse (:require ["eventsource-parser/stream" :as sse] - [beicon.core :as rx])) + [beicon.v2.core :as rx])) (defn create-stream [^js/ReadableStream stream] diff --git a/frontend/src/app/util/theme.cljs b/frontend/src/app/util/theme.cljs index e962bcbf1..a31c79f83 100644 --- a/frontend/src/app/util/theme.cljs +++ b/frontend/src/app/util/theme.cljs @@ -11,7 +11,7 @@ [app.config :as cfg] [app.util.dom :as dom] [app.util.storage :refer [storage]] - [beicon.core :as rx] + [beicon.v2.core :as rx] [rumext.v2 :as mf])) (defonce theme (get @storage ::theme cfg/default-theme)) diff --git a/frontend/src/app/util/timers.cljs b/frontend/src/app/util/timers.cljs index 0e5a01c33..f3e4bd436 100644 --- a/frontend/src/app/util/timers.cljs +++ b/frontend/src/app/util/timers.cljs @@ -7,7 +7,7 @@ (ns app.util.timers (:require [app.common.data :as d] - [beicon.core :as rx] + [beicon.v2.core :as rx] [promesa.core :as p])) (defn schedule diff --git a/frontend/src/app/util/webapi.cljs b/frontend/src/app/util/webapi.cljs index 97994f240..9d1ba5c2e 100644 --- a/frontend/src/app/util/webapi.cljs +++ b/frontend/src/app/util/webapi.cljs @@ -11,7 +11,7 @@ [app.common.exceptions :as ex] [app.common.logging :as log] [app.util.object :as obj] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] [promesa.core :as p])) @@ -247,7 +247,7 @@ (fn [blob] (->> (read-file-as-data-url blob) (rx/catch (fn [err] (reject err))) - (rx/subs (fn [result] (resolve result))))))) + (rx/subs! (fn [result] (resolve result))))))) (catch :default e (reject e)))))) diff --git a/frontend/src/app/util/websocket.cljs b/frontend/src/app/util/websocket.cljs index 61187b2a6..016eb9c0a 100644 --- a/frontend/src/app/util/websocket.cljs +++ b/frontend/src/app/util/websocket.cljs @@ -8,7 +8,7 @@ "A interface to webworkers exposed functionality." (:require [app.common.transit :as t] - [beicon.core :as rx] + [beicon.v2.core :as rx] [goog.events :as ev]) (:import goog.net.WebSocket diff --git a/frontend/src/app/util/worker.cljs b/frontend/src/app/util/worker.cljs index 2100b5850..f1b27cc7c 100644 --- a/frontend/src/app/util/worker.cljs +++ b/frontend/src/app/util/worker.cljs @@ -10,7 +10,7 @@ [app.common.uuid :as uuid] [app.util.object :as obj] [app.worker.messages :as wm] - [beicon.core :as rx])) + [beicon.v2.core :as rx])) (declare handle-response) (defrecord Worker [instance stream]) diff --git a/frontend/src/app/util/zip.cljs b/frontend/src/app/util/zip.cljs index fbb0b2787..bf1995a69 100644 --- a/frontend/src/app/util/zip.cljs +++ b/frontend/src/app/util/zip.cljs @@ -9,7 +9,7 @@ (:require ["jszip" :as zip] [app.util.http :as http] - [beicon.core :as rx] + [beicon.v2.core :as rx] [promesa.core :as p])) (defn compress-files @@ -29,7 +29,7 @@ :response-type :blob :method :get}) (rx/map :body) - (rx/flat-map zip/loadAsync))) + (rx/merge-map zip/loadAsync))) (defn- process-file [entry path type] @@ -65,4 +65,4 @@ (.forEach zip get-file) (->> (rx/from (p/all @promises)) - (rx/flat-map identity)))) + (rx/merge-map identity)))) diff --git a/frontend/src/app/worker.cljs b/frontend/src/app/worker.cljs index 9ee1e1e69..8ca98681b 100644 --- a/frontend/src/app/worker.cljs +++ b/frontend/src/app/worker.cljs @@ -17,7 +17,7 @@ [app.worker.selection] [app.worker.snaps] [app.worker.thumbnails] - [beicon.core :as rx] + [beicon.v2.core :as rx] [promesa.core :as p])) (log/setup! {:app :info}) @@ -130,7 +130,7 @@ ;; 1ms debounce, after 1ms without messages will process the buffer (rx/debounce 1) - (rx/subs (fn [[messages dropped last]] + (rx/subs! (fn [[messages dropped last]] ;; Send back the dropped messages replies (doseq [msg dropped] (drop-message msg)) diff --git a/frontend/src/app/worker/export.cljs b/frontend/src/app/worker/export.cljs index 43f8a5e9a..7425135f3 100644 --- a/frontend/src/app/worker/export.cljs +++ b/frontend/src/app/worker/export.cljs @@ -20,7 +20,7 @@ [app.util.webapi :as wapi] [app.util.zip :as uz] [app.worker.impl :as impl] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str])) (def ^:const current-version 2) @@ -139,7 +139,7 @@ (->> (rx/from (vals media)) (rx/map #(assoc % :file-id file-id)) - (rx/flat-map + (rx/merge-map (fn [media] (let [file-path (str/concat file-id "/media/" (:id media) (cm/mtype->extension (:mtype media)))] (->> (http/send! @@ -345,44 +345,44 @@ render-stream (->> files-stream - (rx/flat-map vals) - (rx/flat-map process-pages) + (rx/merge-map vals) + (rx/merge-map process-pages) (rx/observe-on :async) - (rx/flat-map get-page-data) + (rx/merge-map get-page-data) (rx/share)) colors-stream (->> files-stream - (rx/flat-map vals) + (rx/merge-map vals) (rx/map #(vector (:id %) (get-in % [:data :colors]))) (rx/filter #(d/not-empty? (second %))) (rx/map parse-library-color)) typographies-stream (->> files-stream - (rx/flat-map vals) + (rx/merge-map vals) (rx/map #(vector (:id %) (get-in % [:data :typographies]))) (rx/filter #(d/not-empty? (second %))) (rx/map parse-library-typographies)) media-stream (->> files-stream - (rx/flat-map vals) + (rx/merge-map vals) (rx/map #(vector (:id %) (get-in % [:data :media]))) (rx/filter #(d/not-empty? (second %))) - (rx/flat-map parse-library-media)) + (rx/merge-map parse-library-media)) components-stream (->> files-stream - (rx/flat-map vals) + (rx/merge-map vals) (rx/filter #(d/not-empty? (ctkl/components-seq (:data %)))) - (rx/flat-map parse-library-components)) + (rx/merge-map parse-library-components)) deleted-components-stream (->> files-stream - (rx/flat-map vals) + (rx/merge-map vals) (rx/filter #(d/not-empty? (get-in % [:data :deleted-components]))) - (rx/flat-map parse-deleted-components)) + (rx/merge-map parse-deleted-components)) pages-stream (->> render-stream @@ -405,7 +405,7 @@ typographies-stream) (rx/reduce conj []) (rx/with-latest-from files-stream) - (rx/flat-map (fn [[data files]] + (rx/merge-map (fn [[data files]] (->> (uz/compress-files data) (rx/map #(vector (get files file-id) %))))))))) diff --git a/frontend/src/app/worker/import.cljs b/frontend/src/app/worker/import.cljs index a4a132f32..96bd5d7b9 100644 --- a/frontend/src/app/worker/import.cljs +++ b/frontend/src/app/worker/import.cljs @@ -26,7 +26,7 @@ [app.util.webapi :as wapi] [app.util.zip :as uz] [app.worker.impl :as impl] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cuerdas.core :as str] [tubax.core :as tubax])) @@ -147,7 +147,7 @@ libraries (->> context :libraries (mapv resolve))] (->> (rx/from libraries) (rx/map #(hash-map :file-id file-id :library-id %)) - (rx/flat-map (partial rp/cmd! :link-file-to-library))))) + (rx/merge-map (partial rp/cmd! :link-file-to-library))))) (defn send-changes "Creates batches of changes to be sent to the backend" @@ -197,7 +197,7 @@ :content blob :is-local true})) (rx/tap #(progress! context :upload-media name)) - (rx/flat-map #(rp/cmd! :upload-file-media-object %)))) + (rx/merge-map #(rp/cmd! :upload-file-media-object %)))) (defn resolve-text-content [node context] (let [resolve (:resolve context)] @@ -408,7 +408,7 @@ (rx/reduce conj {}))] (->> pre-process-images - (rx/flat-map + (rx/merge-map (fn [pre-proc] (->> (rx/from nodes) (rx/filter cip/shape?) @@ -510,7 +510,7 @@ (assoc :id (resolve id)))] (fb/add-library-color file color)))] (->> (get-file context :colors) - (rx/flat-map (comp d/kebab-keys cip/string->uuid)) + (rx/merge-map (comp d/kebab-keys cip/string->uuid)) (rx/reduce add-color file))) (rx/of file))) @@ -520,7 +520,7 @@ (if (:has-typographies context) (let [resolve (:resolve context)] (->> (get-file context :typographies) - (rx/flat-map (comp d/kebab-keys cip/string->uuid)) + (rx/merge-map (comp d/kebab-keys cip/string->uuid)) (rx/map (fn [[id typography]] (-> typography (d/kebab-keys) @@ -534,7 +534,7 @@ (if (:has-media context) (let [resolve (:resolve context)] (->> (get-file context :media-list) - (rx/flat-map (comp d/kebab-keys cip/string->uuid)) + (rx/merge-map (comp d/kebab-keys cip/string->uuid)) (rx/mapcat (fn [[id media]] (let [media (assoc media :id (resolve id))] @@ -562,7 +562,7 @@ (filter #(= :symbol (:tag %)))))] (->> (get-file context :components) - (rx/flat-map split-components) + (rx/merge-map split-components) (rx/concat-reduce (partial import-component context) file))) (rx/of file))) @@ -574,7 +574,7 @@ (filter #(= :symbol (:tag %)))))] (->> (get-file context :deleted-components) - (rx/flat-map split-components) + (rx/merge-map split-components) (rx/concat-reduce (partial import-deleted-component context) file))) (rx/of file))) @@ -585,18 +585,18 @@ context (assoc context :progress progress-str)] [progress-str (->> (rx/of file) - (rx/flat-map (partial process-pages context)) + (rx/merge-map (partial process-pages context)) (rx/tap #(progress! context :process-colors)) - (rx/flat-map (partial process-library-colors context)) + (rx/merge-map (partial process-library-colors context)) (rx/tap #(progress! context :process-typographies)) - (rx/flat-map (partial process-library-typographies context)) + (rx/merge-map (partial process-library-typographies context)) (rx/tap #(progress! context :process-media)) - (rx/flat-map (partial process-library-media context)) + (rx/merge-map (partial process-library-media context)) (rx/tap #(progress! context :process-components)) - (rx/flat-map (partial process-library-components context)) + (rx/merge-map (partial process-library-components context)) (rx/tap #(progress! context :process-deleted-components)) - (rx/flat-map (partial process-deleted-components context)) - (rx/flat-map (partial send-changes context)) + (rx/merge-map (partial process-deleted-components context)) + (rx/merge-map (partial send-changes context)) (rx/tap #(rx/end! progress-str)))])) (defn create-files @@ -606,13 +606,13 @@ (rx/concat (->> (rx/from files) (rx/map #(merge context %)) - (rx/flat-map (fn [context] + (rx/merge-map (fn [context] (->> (create-file context features) (rx/map #(vector % (first (get data (:file-id context))))))))) (->> (rx/from files) (rx/map #(merge context %)) - (rx/flat-map link-file-libraries) + (rx/merge-map link-file-libraries) (rx/ignore))))) (defn parse-mtype [ba] @@ -627,7 +627,7 @@ [{:keys [files]}] (->> (rx/from files) - (rx/flat-map + (rx/merge-map (fn [file] (let [st (->> (http/send! {:uri (:uri file) @@ -642,8 +642,8 @@ (->> (rx/merge (->> st (rx/filter (fn [data] (= "application/zip" (:type data)))) - (rx/flat-map #(zip/loadAsync (:body %))) - (rx/flat-map #(get-file {:zip %} :manifest)) + (rx/merge-map #(zip/loadAsync (:body %))) + (rx/merge-map #(get-file {:zip %} :manifest)) (rx/map (comp d/kebab-keys cip/string->uuid)) (rx/map #(hash-map :uri (:uri file) :data % :type "application/zip"))) (->> st @@ -677,7 +677,7 @@ (rx/merge (->> (create-files context zip-files) - (rx/flat-map + (rx/merge-map (fn [[file data]] (->> (uz/load-from-url (:uri data)) (rx/map #(-> context (assoc :zip %) (merge data))) @@ -703,7 +703,7 @@ :error-data (ex-data cause)}))))))) (->> (rx/from binary-files) - (rx/flat-map + (rx/merge-map (fn [data] (->> (http/send! {:uri (:uri data) diff --git a/frontend/src/app/worker/thumbnails.cljs b/frontend/src/app/worker/thumbnails.cljs index 93f968852..0c548b52d 100644 --- a/frontend/src/app/worker/thumbnails.cljs +++ b/frontend/src/app/worker/thumbnails.cljs @@ -15,7 +15,7 @@ [app.main.render :as render] [app.util.http :as http] [app.worker.impl :as impl] - [beicon.core :as rx] + [beicon.v2.core :as rx] [okulary.core :as l] [rumext.v2 :as mf])) diff --git a/frontend/src/debug.cljs b/frontend/src/debug.cljs index a3132c9ae..4b1058f61 100644 --- a/frontend/src/debug.cljs +++ b/frontend/src/debug.cljs @@ -34,10 +34,10 @@ [app.util.http :as http] [app.util.object :as obj] [app.util.timers :as timers] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.pprint :refer [pprint]] [cuerdas.core :as str] - [potok.core :as ptk] + [potok.v2.core :as ptk] [promesa.core :as p])) (l/set-level! :debug) @@ -289,7 +289,7 @@ (rx/filter ptk/event?) (rx/filter (fn [s] (and (dbg/enabled? :events) (not (debug-exclude-events (ptk/type s)))))) - (rx/subs #(println "[stream]: " (ptk/repr-event %)))))) + (rx/subs! #(println "[stream]: " (ptk/repr-event %)))))) (defn ^:export apply-changes "Takes a Transit JSON changes" @@ -432,7 +432,7 @@ (->> (rp/cmd! :update-file params) - (rx/subs (fn [_] + (rx/subs! (fn [_] (when reload? (dom/reload-current-window))) (fn [cause] @@ -463,7 +463,7 @@ :query {:file-id file-id}}) (rx/map http/conditional-decode-transit) (rx/mapcat rp/handle-response) - (rx/subs (fn [result] + (rx/subs! (fn [result] (let [result (map (fn [row] (update row :id str)) result)] @@ -481,7 +481,7 @@ :body (http/transit-data {:file-id file-id :label label})}) (rx/map http/conditional-decode-transit) (rx/mapcat rp/handle-response) - (rx/subs (fn [{:keys [id]}] + (rx/subs! (fn [{:keys [id]}] (println "Snapshot saved:" (str id))) (fn [cause] (js/console.log "EE:" cause)))))) @@ -496,7 +496,7 @@ :body (http/transit-data {:file-id file-id :id id})}) (rx/map http/conditional-decode-transit) (rx/mapcat rp/handle-response) - (rx/subs (fn [_] + (rx/subs! (fn [_] (println "Snapshot restored " id) #_(.reload js/location)) (fn [cause] diff --git a/frontend/test/frontend_tests/helpers/events.cljs b/frontend/test/frontend_tests/helpers/events.cljs index 62c4b47f3..21353f768 100644 --- a/frontend/test/frontend_tests/helpers/events.cljs +++ b/frontend/test/frontend_tests/helpers/events.cljs @@ -12,9 +12,9 @@ [app.common.schema :as sm] [app.common.uuid :as uuid] [app.main.data.workspace :as dw] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.test :as t] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) ;; ---- Helpers to manage global events @@ -26,48 +26,48 @@ (pp/pprint (sm/humanize-explain data)))) (defn prepare-store - "Create a store with the given initial state. Wait until - a :the/end event occurs, and then call the function with - the final state at this point." - [state done completed-cb] - (let [store (ptk/store {:state state :on-error on-error}) - stream (ptk/input-stream store) - stream (->> stream - (rx/take-until (rx/filter #(= :the/end %) stream)) - (rx/last) - (rx/do (fn [] - (completed-cb @store))) - (rx/subs (fn [_] (done)) - (fn [cause] - (js/console.log "[error]:" cause)) - (fn [_] - (js/console.log "[complete]"))))] - store)) + "Create a store with the given initial state. Wait until a :the/end + event occurs, and then call the function with the final state at + this point." + [state done completed-cb] + (let [store (ptk/store {:state state :on-error on-error}) + stream (ptk/input-stream store) + stream (->> stream + (rx/take-until (rx/filter #(= :the/end %) stream)) + (rx/last) + (rx/tap (fn [] + (completed-cb @store))) + (rx/subs! (fn [_] (done)) + (fn [cause] + (js/console.log "[error]:" cause)) + (fn [_] + (js/console.log "[complete]"))))] + store)) ;; Remove definitely when we ensure that the above method works ;; well in more advanced tests. #_(defn do-update - "Execute an update event and returns the new state." - [event state] - (ptk/update event state)) + "Execute an update event and returns the new state." + [event state] + (ptk/update event state)) #_(defn do-watch - "Execute a watch event and return an observable, that + "Execute a watch event and return an observable, that emits once a list with all new events." - [event state] - (->> (ptk/watch event state nil) - (rx/reduce conj []))) + [event state] + (->> (ptk/watch event state nil) + (rx/reduce conj []))) #_(defn do-watch-update - "Execute a watch event and return an observable, that + "Execute a watch event and return an observable, that emits once the new state, after all new events applied in sequence (considering they are all update events)." - [event state] - (->> (do-watch event state) - (rx/map (fn [new-events] - (reduce - (fn [new-state new-event] - (do-update new-event new-state)) - state - new-events))))) + [event state] + (->> (do-watch event state) + (rx/map (fn [new-events] + (reduce + (fn [new-state new-event] + (do-update new-event new-state)) + state + new-events))))) diff --git a/frontend/test/frontend_tests/helpers_shapes_test.cljs b/frontend/test/frontend_tests/helpers_shapes_test.cljs index 6d0a589ee..8b01ad7a1 100644 --- a/frontend/test/frontend_tests/helpers_shapes_test.cljs +++ b/frontend/test/frontend_tests/helpers_shapes_test.cljs @@ -10,7 +10,7 @@ [app.common.data :as d] [app.common.geom.point :as gpt] [app.main.data.workspace.libraries :as dwl] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.pprint :refer [pprint]] [cljs.test :as t :include-macros true] [clojure.stacktrace :as stk] @@ -18,7 +18,7 @@ [frontend-tests.helpers.libraries :as thl] [frontend-tests.helpers.pages :as thp] [linked.core :as lks] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (t/use-fixtures :each {:before thp/reset-idmap!}) diff --git a/frontend/test/frontend_tests/state_components_sync_test.cljs b/frontend/test/frontend_tests/state_components_sync_test.cljs index aa2c50fb9..bfdbdedc8 100644 --- a/frontend/test/frontend_tests/state_components_sync_test.cljs +++ b/frontend/test/frontend_tests/state_components_sync_test.cljs @@ -17,7 +17,7 @@ [frontend-tests.helpers.events :as the] [frontend-tests.helpers.libraries :as thl] [frontend-tests.helpers.pages :as thp] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (t/use-fixtures :each {:before thp/reset-idmap!}) diff --git a/frontend/test/frontend_tests/state_components_test.cljs b/frontend/test/frontend_tests/state_components_test.cljs index a5e006a30..6b6dca73e 100644 --- a/frontend/test/frontend_tests/state_components_test.cljs +++ b/frontend/test/frontend_tests/state_components_test.cljs @@ -13,7 +13,7 @@ [frontend-tests.helpers.libraries :as thl] [frontend-tests.helpers.pages :as thp] [linked.core :as lks] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (t/use-fixtures :each {:before thp/reset-idmap!}) diff --git a/frontend/test/frontend_tests/test_helpers_shapes.cljs b/frontend/test/frontend_tests/test_helpers_shapes.cljs index 1efd72a05..45921648e 100644 --- a/frontend/test/frontend_tests/test_helpers_shapes.cljs +++ b/frontend/test/frontend_tests/test_helpers_shapes.cljs @@ -7,12 +7,12 @@ [app.test-helpers.events :as the] [app.test-helpers.libraries :as thl] [app.test-helpers.pages :as thp] - [beicon.core :as rx] + [beicon.v2.core :as rx] [cljs.pprint :refer [pprint]] [cljs.test :as t :include-macros true] [clojure.stacktrace :as stk] [linked.core :as lks] - [potok.core :as ptk])) + [potok.v2.core :as ptk])) (t/use-fixtures :each {:before thp/reset-idmap!}) diff --git a/frontend/vendor/beicon/impl/rxjs.cljs b/frontend/vendor/beicon/impl/rxjs.cljs deleted file mode 100644 index 6fa0bcfa0..000000000 --- a/frontend/vendor/beicon/impl/rxjs.cljs +++ /dev/null @@ -1,4 +0,0 @@ -(ns beicon.impl.rxjs - (:require ["rxjs" :as rx])) - -(goog/exportSymbol "rxjsMain" rx) diff --git a/frontend/vendor/beicon/impl/rxjs_operators.cljs b/frontend/vendor/beicon/impl/rxjs_operators.cljs deleted file mode 100644 index 22b4e2313..000000000 --- a/frontend/vendor/beicon/impl/rxjs_operators.cljs +++ /dev/null @@ -1,4 +0,0 @@ -(ns beicon.impl.rxjs-operators - (:require ["rxjs/operators" :as rxop])) - -(goog/exportSymbol "rxjsOperators" rxop) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index f50dbb969..21b825e1a 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -4018,6 +4018,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^20.10.5": + version: 20.10.5 + resolution: "@types/node@npm:20.10.5" + dependencies: + undici-types: "npm:~5.26.4" + checksum: be30609aae0bfe492097815f166ccc07f465220cb604647fa4e5ec05a1d16c012a41b82b5f11ecfe2485cbb479d4d20384b95b809ca0bcff6d94d5bbafa645bb + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.0": version: 2.4.4 resolution: "@types/normalize-package-data@npm:2.4.4" @@ -7580,6 +7589,7 @@ __metadata: "@storybook/react": "npm:^7.5.3" "@storybook/react-vite": "npm:^7.5.3" "@storybook/testing-library": "npm:^0.2.2" + "@types/node": "npm:^20.10.5" animate.css: "npm:^4.1.1" autoprefixer: "npm:^10.4.15" concurrently: "npm:^8.2.2" @@ -7618,13 +7628,14 @@ __metadata: react-dom: "npm:^18.2.0" react-virtualized: "npm:^9.22.3" rimraf: "npm:^5.0.1" - rxjs: "npm:~7.8.1" + rxjs: "npm:8.0.0-alpha.13" sass: "npm:^1.66.1" sax: "npm:^1.2.4" shadow-cljs: "npm:2.26.2" source-map-support: "npm:^0.5.21" storybook: "npm:^7.5.3" tdigest: "npm:^0.1.2" + typescript: "npm:^5.3.3" ua-parser-js: "npm:^1.0.32" vite: "npm:^5.0.2" xregexp: "npm:^5.1.1" @@ -12516,7 +12527,17 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^7.8.1, rxjs@npm:~7.8.1": +"rxjs@npm:8.0.0-alpha.13": + version: 8.0.0-alpha.13 + resolution: "rxjs@npm:8.0.0-alpha.13" + peerDependencies: + "@types/node": ^20.6.3 + typescript: ^5.2.2 + checksum: d3d8a395e7b92158d621d686b819aa5be480f5c17155f695506b9a70a32af886962d23d4040a1d1611d815abe0ba0fd4929b3687da75a62a03a1e90e5b616464 + languageName: node + linkType: hard + +"rxjs@npm:^7.8.1": version: 7.8.1 resolution: "rxjs@npm:7.8.1" dependencies: @@ -13922,6 +13943,26 @@ __metadata: languageName: node linkType: hard +"typescript@npm:^5.3.3": + version: 5.3.3 + resolution: "typescript@npm:5.3.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: e33cef99d82573624fc0f854a2980322714986bc35b9cb4d1ce736ed182aeab78e2cb32b385efa493b2a976ef52c53e20d6c6918312353a91850e2b76f1ea44f + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.3.3#optional!builtin": + version: 5.3.3 + resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 1d0a5f4ce496c42caa9a30e659c467c5686eae15d54b027ee7866744952547f1be1262f2d40de911618c242b510029d51d43ff605dba8fb740ec85ca2d3f9500 + languageName: node + linkType: hard + "ua-parser-js@npm:^0.7.18": version: 0.7.37 resolution: "ua-parser-js@npm:0.7.37"