From 4a7b5618ff8c71dbeabda7a1f35846cb44bdf055 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 30 Nov 2020 10:51:44 +0100 Subject: [PATCH] :bug: Fix unauthorized error on handoff on share-link. --- frontend/src/app/main/data/viewer.cljs | 16 +++++++++++++ frontend/src/app/main/ui.cljs | 7 ++++-- frontend/src/app/main/ui/viewer/header.cljs | 26 ++++++--------------- 3 files changed, 28 insertions(+), 21 deletions(-) diff --git a/frontend/src/app/main/data/viewer.cljs b/frontend/src/app/main/data/viewer.cljs index 5c63e62ea..739cc0cef 100644 --- a/frontend/src/app/main/data/viewer.cljs +++ b/frontend/src/app/main/data/viewer.cljs @@ -331,6 +331,22 @@ (when index (rx/of (go-to-frame-by-index index))))))) + +(defn go-to-section + [section] + (ptk/reify ::go-to-section + ptk/WatchEvent + (watch [_ state stream] + (let [route (:route state) + screen (-> route :data :name keyword) + pparams (:path-params route) + qparams (:query-params route)] + (rx/of + (if (= :handoff section) + (rt/nav :handoff pparams qparams) + (rt/nav :viewer pparams (assoc qparams :section section)))))))) + + (defn set-current-frame [frame-id] (ptk/reify ::current-frame ptk/UpdateEvent diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index 0783ebca1..8a8ea4b9e 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -161,10 +161,13 @@ :handoff (let [file-id (get-in route [:path-params :file-id]) page-id (get-in route [:path-params :page-id]) - index (get-in route [:query-params :index])] + index (get-in route [:query-params :index]) + token (get-in route [:query-params :token])] + [:& handoff {:page-id page-id :file-id file-id - :index index}]) + :index index + :token token}]) :render-object (do diff --git a/frontend/src/app/main/ui/viewer/header.cljs b/frontend/src/app/main/ui/viewer/header.cljs index ae063c32e..058a8df87 100644 --- a/frontend/src/app/main/ui/viewer/header.cljs +++ b/frontend/src/app/main/ui/viewer/header.cljs @@ -213,20 +213,7 @@ (mf/use-callback (mf/deps file-id page-id) (fn [section] - (st/emit! - (case section - :interactions - (rt/nav :viewer - {:file-id file-id :page-id page-id} - {:index index :section "interactions"}) - :comments - (rt/nav :viewer - {:file-id file-id :page-id page-id} - {:index index :section "comments"}) - :handoff - (rt/nav :handoff - {:file-id file-id :page-id page-id} - {:index index})))))] + (st/emit! (dv/go-to-section section))))] [:header.viewer-header [:div.main-icon @@ -249,11 +236,12 @@ :alt "View mode"} i/play] - [:button.mode-zone-button.tooltip.tooltip-bottom - {:on-click #(navigate :comments) - :class (dom/classnames :active (= section :comments)) - :alt "Comments"} - i/chat] + (when-not anonymous? + [:button.mode-zone-button.tooltip.tooltip-bottom + {:on-click #(navigate :comments) + :class (dom/classnames :active (= section :comments)) + :alt "Comments"} + i/chat]) [:button.mode-zone-button.tooltip.tooltip-bottom {:on-click #(navigate :handoff)