diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index 3e0140e58f..e6beceb1cf 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -1692,5 +1692,6 @@ "subtitle_analytics": "Learn more about your team's activity", "event_trends": "Event Trends", "clear_filters": "Clear Filters", - "insights": "Insights" + "insights": "Insights", + "email_invite_team": "{{email}} has been invited" } diff --git a/packages/features/ee/teams/components/AddNewTeamMembers.tsx b/packages/features/ee/teams/components/AddNewTeamMembers.tsx index b09e32148b..b40b00ceb0 100644 --- a/packages/features/ee/teams/components/AddNewTeamMembers.tsx +++ b/packages/features/ee/teams/components/AddNewTeamMembers.tsx @@ -7,7 +7,8 @@ import MemberInvitationModal from "@calcom/features/ee/teams/components/MemberIn import { classNames } from "@calcom/lib"; import { WEBAPP_URL, APP_NAME } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; -import { RouterOutputs, trpc } from "@calcom/trpc/react"; +import type { RouterOutputs } from "@calcom/trpc/react"; +import { trpc } from "@calcom/trpc/react"; import { Avatar, Badge, Button, showToast, SkeletonContainer, SkeletonText } from "@calcom/ui"; import { FiPlus, FiArrowRight, FiTrash2 } from "@calcom/ui/components/icon"; @@ -43,9 +44,17 @@ export const AddNewTeamMembersForm = ({ const utils = trpc.useContext(); const router = useRouter(); const inviteMemberMutation = trpc.viewer.teams.inviteMember.useMutation({ - async onSuccess() { + async onSuccess(data) { await utils.viewer.teams.get.invalidate(); setMemberInviteModal(false); + if (data.sendEmailInvitation) { + showToast( + t("email_invite_team", { + email: data.usernameOrEmail, + }), + "success" + ); + } }, onError: (error) => { showToast(error.message, "error"); diff --git a/packages/features/ee/teams/components/TeamListItem.tsx b/packages/features/ee/teams/components/TeamListItem.tsx index 6ef0d2ae4a..65e5701a58 100644 --- a/packages/features/ee/teams/components/TeamListItem.tsx +++ b/packages/features/ee/teams/components/TeamListItem.tsx @@ -56,9 +56,17 @@ export default function TeamListItem(props: Props) { const [openMemberInvitationModal, setOpenMemberInvitationModal] = useState(false); const teamQuery = trpc.viewer.teams.get.useQuery({ teamId: team?.id }); const inviteMemberMutation = trpc.viewer.teams.inviteMember.useMutation({ - async onSuccess() { + async onSuccess(data) { await utils.viewer.teams.get.invalidate(); setOpenMemberInvitationModal(false); + if (data.sendEmailInvitation) { + showToast( + t("email_invite_team", { + email: data.usernameOrEmail, + }), + "success" + ); + } }, onError: (error) => { showToast(error.message, "error"); diff --git a/packages/features/ee/teams/pages/team-members-view.tsx b/packages/features/ee/teams/pages/team-members-view.tsx index 05c16c9ce6..a776f27ff3 100644 --- a/packages/features/ee/teams/pages/team-members-view.tsx +++ b/packages/features/ee/teams/pages/team-members-view.tsx @@ -32,9 +32,17 @@ const MembersView = () => { ); const inviteMemberMutation = trpc.viewer.teams.inviteMember.useMutation({ - async onSuccess() { + async onSuccess(data) { await utils.viewer.teams.get.invalidate(); setShowMemberInvitationModal(false); + if (data.sendEmailInvitation) { + showToast( + t("email_invite_team", { + email: data.usernameOrEmail, + }), + "success" + ); + } }, onError: (error) => { showToast(error.message, "error"); diff --git a/packages/trpc/server/routers/viewer/teams.tsx b/packages/trpc/server/routers/viewer/teams.tsx index 98affd758b..59650c00a8 100644 --- a/packages/trpc/server/routers/viewer/teams.tsx +++ b/packages/trpc/server/routers/viewer/teams.tsx @@ -386,6 +386,7 @@ export const viewerTeamsRouter = router({ } } if (IS_TEAM_BILLING_ENABLED) await updateQuantitySubscriptionFromStripe(input.teamId); + return input; }), acceptOrLeave: authedProcedure .input(