From a4865522ccaf7b4bb5772f72c3e9db85008afd18 Mon Sep 17 00:00:00 2001 From: Florian Schroedl Date: Tue, 13 Aug 2024 15:25:36 +0200 Subject: [PATCH] Select token set on create --- frontend/src/app/main/data/tokens.cljs | 39 +++++++++++++------ .../ui/workspace/tokens/context_menu.cljs | 2 +- .../app/main/ui/workspace/tokens/form.cljs | 2 +- 3 files changed, 30 insertions(+), 13 deletions(-) diff --git a/frontend/src/app/main/data/tokens.cljs b/frontend/src/app/main/data/tokens.cljs index d0063518f..7b0e65f3d 100644 --- a/frontend/src/app/main/data/tokens.cljs +++ b/frontend/src/app/main/data/tokens.cljs @@ -94,8 +94,22 @@ (defn add-token-to-token-set [token token-set] (update token-set :items conj (:id token))) +(defn get-selected-token-set [state] + (when-let [id (get-in state [:workspace-local :selected-token-set-id])] + (get-token-set state id))) + +(defn assoc-selected-token-set-id [state id] + (assoc-in state [:workspace-local :selected-token-set-id] id)) + +(defn set-selected-token-set-id + [id] + (ptk/reify ::set-selected-token-set-id + ptk/UpdateEvent + (update [_ state] + (assoc-selected-token-set-id state id)))) + (defn update-create-token - [token set-id] + [token] (let [token (update token :id #(or % (uuid/next)))] (ptk/reify ::add-token ptk/WatchEvent @@ -107,20 +121,22 @@ (pcb/add-token token)) (-> (pcb/empty-changes it) (pcb/update-token token prev-token))) - token-set (get-token-set state set-id) + token-set (get-selected-token-set state) create-set? (not token-set) + new-token-set {:id (uuid/next) + :name "Global" + :tokens [(:id token)]} changes (cond create-set? (-> token-changes - (pcb/add-token-set {:id (uuid/next) - :name "Global" - :tokens [(:id token)]})) + (pcb/add-token-set new-token-set)) :else (let [updated-token-set (if (contains? token-set (:id token)) token-set (update token-set :tokens conj (:id token)))] - (-> token-changes - (pcb/update-token-set token-set updated-token-set))))] - (js/console.log "changes" changes) - (rx/of (dch/commit-changes changes))))))) + (-> token-changes + (pcb/update-token-set token-set updated-token-set))))] + (rx/of + (set-selected-token-set-id (:id new-token-set)) + (dch/commit-changes changes))))))) (defn delete-token [id] @@ -135,11 +151,12 @@ (rx/of (dch/commit-changes changes)))))) (defn duplicate-token - [id set-id] + [id] (let [new-token (-> (get-token-data-from-token-id id) (dissoc :id) (update :name #(str/concat % "-copy")))] - (update-create-token new-token set-id))) + (update-create-token new-token))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; TEMP (Move to test) diff --git a/frontend/src/app/main/ui/workspace/tokens/context_menu.cljs b/frontend/src/app/main/ui/workspace/tokens/context_menu.cljs index 917cf7e59..615f758d4 100644 --- a/frontend/src/app/main/ui/workspace/tokens/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/context_menu.cljs @@ -207,7 +207,7 @@ [{:title "Delete Token" :action #(st/emit! (dt/delete-token (:id token)))} {:title "Duplicate Token" - :action #(st/emit! (dt/duplicate-token (:id token) nil))} + :action #(st/emit! (dt/duplicate-token (:id token)))} {:title "Edit Token" :action (fn [event] (let [{:keys [key fields]} modal diff --git a/frontend/src/app/main/ui/workspace/tokens/form.cljs b/frontend/src/app/main/ui/workspace/tokens/form.cljs index 53c9a1d7a..452190628 100644 --- a/frontend/src/app/main/ui/workspace/tokens/form.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/form.cljs @@ -246,7 +246,7 @@ Token names should only contain letters and digits separated by . characters.")} :value final-value} final-description (assoc :description final-description) (:id token) (assoc :id (:id token)))] - (st/emit! (dt/update-create-token new-token nil)) + (st/emit! (dt/update-create-token new-token)) (st/emit! (wtu/update-workspace-tokens)) (modal/hide!)))))))))] [:form