diff --git a/backend/src/app/email.clj b/backend/src/app/email.clj index a8ee40c4d2..5bcf741f1c 100644 --- a/backend/src/app/email.clj +++ b/backend/src/app/email.clj @@ -226,8 +226,8 @@ [:priority {:optional true} [:enum :high :low]] [:extra-data {:optional true} ::sm/text]]) -(def ^:private valid-context? - (sm/validator schema:context)) +(def ^:private check-context + (sm/check-fn schema:context)) (defn template-factory [& {:keys [id schema]}] @@ -236,10 +236,8 @@ (sm/check-fn schema) (constantly nil))] (fn [context] - (assert (valid-context? context) "expected a valid context") - (check-fn context) - - (let [email (build-email-template id context)] + (let [context (-> context check-context check-fn) + email (build-email-template id context)] (when-not email (ex/raise :type :internal :code :email-template-does-not-exists @@ -271,7 +269,7 @@ "Schedule an already defined email to be sent using asynchronously using worker task." [{:keys [::conn ::factory] :as context}] - (assert (db/connection? conn) "expected a valid database connection") + (assert (db/connectable? conn) "expected a valid database connection or pool") (let [email (if factory (factory context) @@ -348,7 +346,7 @@ [:subject ::sm/text] [:content ::sm/text]]) -(def feedback +(def user-feedback "A profile feedback email." (template-factory :id ::feedback diff --git a/backend/src/app/rpc/commands/feedback.clj b/backend/src/app/rpc/commands/feedback.clj index c641a4ff41..e3525ded47 100644 --- a/backend/src/app/rpc/commands/feedback.clj +++ b/backend/src/app/rpc/commands/feedback.clj @@ -17,7 +17,7 @@ [app.rpc.doc :as-alias doc] [app.util.services :as sv])) -(declare ^:private send-feedback!) +(declare ^:private send-user-feedback!) (def ^:private schema:send-user-feedback [:map {:title "send-user-feedback"} @@ -34,14 +34,16 @@ :hint "feedback not enabled")) (let [profile (profile/get-profile pool profile-id)] - (send-feedback! pool profile params) + (send-user-feedback! pool profile params) nil)) -(defn- send-feedback! +(defn- send-user-feedback! [pool profile params] - (let [dest (cf/get :feedback-destination)] + (let [dest (or (cf/get :user-feedback-destination) + ;; LEGACY + (cf/get :feedback-destination))] (eml/send! {::eml/conn pool - ::eml/factory eml/feedback + ::eml/factory eml/user-feedback :from dest :to dest :profile profile diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index e4530c9f97..404fb8bf08 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -450,7 +450,9 @@ (ptk/reify ::update-team ptk/UpdateEvent (update [_ state] - (assoc-in state [:teams id :name] name)) + (-> state + (assoc-in [:teams id :name] name) + (assoc-in [:team :name] name))) ptk/WatchEvent (watch [_ _ _] diff --git a/frontend/src/app/main/ui/dashboard/team_form.cljs b/frontend/src/app/main/ui/dashboard/team_form.cljs index cf8796b75b..631b17556f 100644 --- a/frontend/src/app/main/ui/dashboard/team_form.cljs +++ b/frontend/src/app/main/ui/dashboard/team_form.cljs @@ -73,7 +73,9 @@ {::mf/register modal/components ::mf/register-as :team-form} [{:keys [team] :as props}] - (let [initial (mf/use-memo (fn [] (or team {}))) + (let [initial (mf/use-memo (fn [] + (or (some-> team (select-keys [:name :id])) + {}))) form (fm/use-form :schema schema:team-form :initial initial) handle-keydown diff --git a/frontend/src/app/util/forms.cljs b/frontend/src/app/util/forms.cljs index e5b710aba2..f628b06b21 100644 --- a/frontend/src/app/util/forms.cljs +++ b/frontend/src/app/util/forms.cljs @@ -148,9 +148,7 @@ (mf/set-ref-val! internal-state initial)) (mf/with-effect [initial] - (if (fn? initial) - (swap! form-mutator update :data merge (initial)) - (swap! form-mutator update :data merge initial))) + (swap! form-mutator d/deep-merge initial)) form-mutator))