From 3a6876eeec3616aaaddefc7d208deb0dfc7c879f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 5 Sep 2022 15:53:19 +0200 Subject: [PATCH 1/2] :sparkles: Disallow to view a file with components-v2 --- backend/src/app/rpc/queries/viewer.clj | 1 + frontend/src/app/main/data/viewer.cljs | 18 +++++++++++++++--- frontend/src/app/util/router.cljs | 5 +++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/backend/src/app/rpc/queries/viewer.clj b/backend/src/app/rpc/queries/viewer.clj index e60a5e3b49..0312da21c8 100644 --- a/backend/src/app/rpc/queries/viewer.clj +++ b/backend/src/app/rpc/queries/viewer.clj @@ -45,6 +45,7 @@ (s/def ::file-id ::us/uuid) (s/def ::profile-id ::us/uuid) (s/def ::share-id ::us/uuid) +(s/def ::components-v2 ::us/boolean) (s/def ::view-only-bundle (s/keys :req-un [::file-id] :opt-un [::profile-id ::share-id ::components-v2])) diff --git a/frontend/src/app/main/data/viewer.cljs b/frontend/src/app/main/data/viewer.cljs index 1f10b70077..404295f8cf 100644 --- a/frontend/src/app/main/data/viewer.cljs +++ b/frontend/src/app/main/data/viewer.cljs @@ -15,9 +15,12 @@ [app.common.types.shape.interactions :as ctsi] [app.main.data.comments :as dcm] [app.main.data.fonts :as df] + [app.main.data.modal :as modal] [app.main.features :as features] [app.main.repo :as rp] + [app.main.store :as st] [app.util.globals :as ug] + [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [beicon.core :as rx] [cljs.spec.alpha :as s] @@ -117,9 +120,18 @@ (->> (rp/query! :view-only-bundle params') (rx/mapcat - (fn [{:keys [fonts] :as bundle}] - (rx/of (df/fonts-fetched fonts) - (bundle-fetched (merge bundle params)))))))))) + (fn [{:keys [fonts] :as bundle}] + (->> (rx/of (df/fonts-fetched fonts) + (bundle-fetched (merge bundle params)))))) + (rx/catch (fn [err] + (let [team-id (-> state :teams keys first)] + (if (and (= (:type err) :restriction) + (= (:code err) :feature-disabled)) + (rx/of (modal/show + {:type :alert + :message (tr "errors.components-v2") + :on-accept #(st/emit! (rt/nav ""))})) + (rx/throw err)))))))))) (declare go-to-frame-auto) diff --git a/frontend/src/app/util/router.cljs b/frontend/src/app/util/router.cljs index 21a89434cc..e10a24be24 100644 --- a/frontend/src/app/util/router.cljs +++ b/frontend/src/app/util/router.cljs @@ -27,8 +27,9 @@ ([router id] (resolve router id {} {})) ([router id path-params] (resolve router id path-params {})) ([router id path-params query-params] - (when-let [match (r/match-by-name router id path-params)] - (r/match->path match query-params)))) + (if-let [match (r/match-by-name router id path-params)] + (r/match->path match query-params) + ""))) (defn create [routes] From f1b536034ad751507f516d832ec2e7364470501e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 5 Sep 2022 16:05:07 +0200 Subject: [PATCH 2/2] :sparkles: Show error instead of dialog --- frontend/src/app/main/data/viewer.cljs | 15 +++++---------- frontend/src/app/util/router.cljs | 5 ++--- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/frontend/src/app/main/data/viewer.cljs b/frontend/src/app/main/data/viewer.cljs index 404295f8cf..3ee9a55cc7 100644 --- a/frontend/src/app/main/data/viewer.cljs +++ b/frontend/src/app/main/data/viewer.cljs @@ -15,10 +15,9 @@ [app.common.types.shape.interactions :as ctsi] [app.main.data.comments :as dcm] [app.main.data.fonts :as df] - [app.main.data.modal :as modal] + [app.main.data.messages :as msg] [app.main.features :as features] [app.main.repo :as rp] - [app.main.store :as st] [app.util.globals :as ug] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] @@ -124,14 +123,10 @@ (->> (rx/of (df/fonts-fetched fonts) (bundle-fetched (merge bundle params)))))) (rx/catch (fn [err] - (let [team-id (-> state :teams keys first)] - (if (and (= (:type err) :restriction) - (= (:code err) :feature-disabled)) - (rx/of (modal/show - {:type :alert - :message (tr "errors.components-v2") - :on-accept #(st/emit! (rt/nav ""))})) - (rx/throw err)))))))))) + (if (and (= (:type err) :restriction) + (= (:code err) :feature-disabled)) + (rx/of (msg/error (tr "errors.components-v2") {:timeout nil})) + (rx/throw err))))))))) (declare go-to-frame-auto) diff --git a/frontend/src/app/util/router.cljs b/frontend/src/app/util/router.cljs index e10a24be24..21a89434cc 100644 --- a/frontend/src/app/util/router.cljs +++ b/frontend/src/app/util/router.cljs @@ -27,9 +27,8 @@ ([router id] (resolve router id {} {})) ([router id path-params] (resolve router id path-params {})) ([router id path-params query-params] - (if-let [match (r/match-by-name router id path-params)] - (r/match->path match query-params) - ""))) + (when-let [match (r/match-by-name router id path-params)] + (r/match->path match query-params)))) (defn create [routes]