mirror of
https://github.com/penpot/penpot.git
synced 2025-07-16 13:35:20 +02:00
✨ Improve team deletion process.
This commit is contained in:
parent
e7a1833c44
commit
0dd805da7f
8 changed files with 57 additions and 30 deletions
|
@ -16,6 +16,7 @@
|
|||
[app.main.repo :as rp]
|
||||
[app.util.i18n :as i18n :refer [tr]]
|
||||
[app.util.router :as rt]
|
||||
[app.util.timers :as tm]
|
||||
[beicon.core :as rx]
|
||||
[cljs.spec.alpha :as s]
|
||||
[potok.core :as ptk]))
|
||||
|
@ -402,7 +403,7 @@
|
|||
(uuid? reassign-to)
|
||||
(assoc :reassign-to reassign-to))]
|
||||
(->> (rp/mutation! :leave-team params)
|
||||
(rx/tap on-success)
|
||||
(rx/tap #(tm/schedule on-success))
|
||||
(rx/catch on-error))))))
|
||||
|
||||
(defn invite-team-member
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
[app.util.i18n :as i18n :refer [tr]]
|
||||
[app.util.object :as obj]
|
||||
[app.util.router :as rt]
|
||||
[beicon.core :as rx]
|
||||
[cljs.spec.alpha :as s]
|
||||
[goog.functions :as f]
|
||||
[rumext.alpha :as mf]))
|
||||
|
@ -287,27 +288,39 @@
|
|||
members-map (mf/deref refs/dashboard-team-members)
|
||||
members (vals members-map)
|
||||
|
||||
on-rename-clicked
|
||||
(st/emitf (modal/show :team-form {:team team}))
|
||||
|
||||
on-leaved-success
|
||||
(fn []
|
||||
(st/emit! (modal/hide)
|
||||
(du/fetch-teams)))
|
||||
|
||||
leave-fn
|
||||
(st/emitf (dd/leave-team (with-meta {} {:on-success on-leaved-success})))
|
||||
|
||||
leave-and-reassign-fn
|
||||
(fn [member-id]
|
||||
(let [params {:reassign-to member-id}]
|
||||
(st/emit! (dd/go-to-projects (:default-team-id profile))
|
||||
(dd/leave-team (with-meta params {:on-success on-leaved-success})))))
|
||||
|
||||
delete-fn
|
||||
on-success
|
||||
(fn []
|
||||
(st/emit! (dd/go-to-projects (:default-team-id profile))
|
||||
(dd/delete-team (with-meta team {:on-success on-leaved-success}))))
|
||||
(modal/hide)
|
||||
(du/fetch-teams)))
|
||||
|
||||
on-error
|
||||
(fn [{:keys [code] :as error}]
|
||||
(condp = code
|
||||
:no-enough-members-for-leave
|
||||
(rx/of (dm/error (tr "errors.team-leave.insufficient-members")))
|
||||
|
||||
:member-does-not-exist
|
||||
(rx/of (dm/error (tr "errors.team-leave.member-does-not-exists")))
|
||||
|
||||
:owner-cant-leave-team
|
||||
(rx/of (dm/error (tr "errors.team-leave.owner-cant-leave")))
|
||||
|
||||
(rx/throw error)))
|
||||
|
||||
leave-fn
|
||||
(fn [member-id]
|
||||
(let [params (cond-> {} (uuid? member-id) (assoc :reassign-to member-id))]
|
||||
(st/emit! (dd/leave-team (with-meta params
|
||||
{:on-success on-success
|
||||
:on-error on-error})))))
|
||||
delete-fn
|
||||
(fn []
|
||||
(st/emit! (dd/delete-team (with-meta team {:on-success on-success
|
||||
:on-error on-error}))))
|
||||
on-rename-clicked
|
||||
(fn []
|
||||
(st/emit! (modal/show :team-form {:team team})))
|
||||
|
||||
on-leave-clicked
|
||||
(st/emitf (modal/show
|
||||
|
@ -324,7 +337,7 @@
|
|||
{:type ::leave-and-reassign
|
||||
:profile profile
|
||||
:team team
|
||||
:accept leave-and-reassign-fn})))
|
||||
:accept leave-fn})))
|
||||
|
||||
on-delete-clicked
|
||||
(st/emitf
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
(fn []
|
||||
(let [profile (deref refs/profile)]
|
||||
(if (du/is-authenticated? profile)
|
||||
(let [team-id (du/get-current-team-id profile)]
|
||||
(let [team-id (:default-team-id profile)]
|
||||
(st/emit! (rt/nav :dashboard-projects {:team-id team-id})))
|
||||
(st/emit! (rt/nav :auth-login {}))))))]
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue