diff --git a/frontend/src/app/main/ui/forms.cljs b/frontend/src/app/main/ui/forms.cljs index 4988f589d4..a126ff4320 100644 --- a/frontend/src/app/main/ui/forms.cljs +++ b/frontend/src/app/main/ui/forms.cljs @@ -52,7 +52,8 @@ (let [form (mf/use-ctx context) disabled? (or (and (some? form) (or (not (:valid @form)) - (seq (:external-errors @form)))) + (seq (:async-errors @form)) + (seq (:extra-errors @form)))) (true? disabled)) handle-key-down-save (mf/use-fn diff --git a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs index d45afcd9c2..cc9cb79426 100644 --- a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs @@ -332,6 +332,7 @@ message (tr "workspace.tokens.resolved-value" (or resolved-value value))] (swap! form update :errors dissoc :value) (swap! form update :extra-errors dissoc :value) + (swap! form update :async-errors dissoc :reference) (if (= input-value (str resolved-value)) (reset! hint* {}) (reset! hint* {:message message :type "hint"})))))))] diff --git a/frontend/src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs b/frontend/src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs index cb1f3a1902..038dbeae03 100644 --- a/frontend/src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs @@ -101,13 +101,6 @@ active-tab* (mf/use-state #(if (cft/is-reference? token) :reference :composite)) active-tab (deref active-tab*) - on-toggle-tab - (mf/use-fn - (mf/deps) - (fn [new-tab] - (let [new-tab (keyword new-tab)] - (reset! active-tab* new-tab)))) - token (mf/with-memo [token] (or token {:type token-type})) @@ -144,6 +137,17 @@ (fm/use-form :schema schema :initial initial) + on-toggle-tab + (mf/use-fn + (mf/deps form) + (fn [new-tab] + (let [new-tab (keyword new-tab)] + (if (= new-tab :reference) + (swap! form assoc-in [:async-errors :reference] + {:message "Need valid reference"}) + (swap! form update :async-errors dissoc :reference)) + (reset! active-tab* new-tab)))) + warning-name-change? (not= (get-in @form [:data :name]) (:name initial))