diff --git a/backend/src/app/services/init.clj b/backend/src/app/services/init.clj index 1286e5db4..37edf7d4e 100644 --- a/backend/src/app/services/init.clj +++ b/backend/src/app/services/init.clj @@ -29,7 +29,8 @@ (require 'app.services.mutations.colors) (require 'app.services.mutations.projects) (require 'app.services.mutations.files) - (require 'app.services.mutations.profile)) + (require 'app.services.mutations.profile) + (require 'app.services.mutations.viewer)) (defstate query-services :start (load-query-services)) diff --git a/frontend/src/app/main/data/viewer.cljs b/frontend/src/app/main/data/viewer.cljs index 407f5b9b8..7fc1a5f46 100644 --- a/frontend/src/app/main/data/viewer.cljs +++ b/frontend/src/app/main/data/viewer.cljs @@ -82,7 +82,7 @@ (vec)))) (defn bundle-fetched - [{:keys [project file page] :as bundle}] + [{:keys [project file page share-token] :as bundle}] (us/verify ::bundle bundle) (ptk/reify ::file-fetched ptk/UpdateEvent @@ -93,7 +93,8 @@ :objects objects :file file :page page - :frames frames}))))) + :frames frames + :share-token share-token}))))) (def create-share-link (ptk/reify ::create-share-link @@ -101,8 +102,8 @@ (watch [_ state stream] (let [file-id (get-in state [:viewer-local :file-id]) page-id (get-in state [:viewer-local :page-id])] - (->> (rp/mutation :create-file-share-token {:file-id file-id - :page-id page-id}) + (->> (rp/mutation! :create-file-share-token {:file-id file-id + :page-id page-id}) (rx/map (fn [{:keys [token]}] #(assoc-in % [:viewer-data :share-token] token)))))))) @@ -233,8 +234,10 @@ (let [page-id (get-in state [:viewer-local :page-id]) file-id (get-in state [:viewer-local :file-id]) frames (get-in state [:viewer-data :frames]) + share-token (get-in state [:viewer-data :share-token]) index (d/index-of-pred frames #(= (:id %) frame-id))] - (rx/of (rt/nav :viewer {:page-id page-id :file-id file-id} {:index index})))))) + (rx/of (rt/nav :viewer {:page-id page-id :file-id file-id} {:token share-token + :index index})))))) ;; --- Shortcuts diff --git a/frontend/src/app/main/ui/viewer/header.cljs b/frontend/src/app/main/ui/viewer/header.cljs index b559e0a3a..44fddb528 100644 --- a/frontend/src/app/main/ui/viewer/header.cljs +++ b/frontend/src/app/main/ui/viewer/header.cljs @@ -10,6 +10,7 @@ (ns app.main.ui.viewer.header (:require [rumext.alpha :as mf] + [cuerdas.core :as str] [app.main.ui.icons :as i] [app.main.data.messages :as dm] [app.main.data.viewer :as dv] @@ -84,7 +85,8 @@ delete #(st/emit! dv/delete-share-link) href (.-href js/location) - link (str href "&token=" token) + href (subs href 0 (str/index-of href "?")) + link (str href "?token=" token "&index=0") copy-link (fn [event]