From d6fb1170d34f6f756dbddc41c1194c491ee22a3a Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 11 Feb 2026 17:11:51 +0100 Subject: [PATCH] :bug: Avoid self reference on dropdown options --- .../management/forms/controls/combobox.cljs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs index 4ac19066f9..33e79e3870 100644 --- a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs @@ -85,6 +85,15 @@ (let [cursor (.-selectionStart input-node)] (extract-partial-token value cursor))) +(defn remove-self-token [filtered-options current-token] + (let [group (:type current-token) + current-id (:id current-token) + filtered-options (deref filtered-options)] + (update filtered-options group + (fn [options] + (remove #(= (:id %) current-id) options))))) + + (defn- select-option-by-id [id options-ref input-node value] (let [cursor (.-selectionStart input-node) @@ -126,6 +135,7 @@ [{:keys [name tokens token token-type empty-to-end ref] :rest props}] (let [form (mf/use-ctx fc/context) + _ (prn "token" token) input-name name token-name (get-in @form [:data :name] nil) @@ -163,9 +173,15 @@ (mf/with-memo [raw-tokens-by-type token-type] (csu/filter-tokens-for-input raw-tokens-by-type token-type)) + visible-options + (mf/with-memo [filtered-tokens-by-type token] + (if token + (remove-self-token filtered-tokens-by-type token) + filtered-tokens-by-type)) + dropdown-options - (mf/with-memo [filtered-tokens-by-type filter-term] - (csu/get-token-dropdown-options filtered-tokens-by-type (str "{" filter-term))) + (mf/with-memo [visible-options filter-term] + (csu/get-token-dropdown-options visible-options (str "{" filter-term))) set-option-ref (mf/use-fn