diff --git a/apps/web/src/views/members/components/InviteMemberForm.tsx b/apps/web/src/views/members/components/InviteMemberForm.tsx index 081f4b65..f22049cf 100644 --- a/apps/web/src/views/members/components/InviteMemberForm.tsx +++ b/apps/web/src/views/members/components/InviteMemberForm.tsx @@ -18,18 +18,22 @@ import { useWorkspace } from "~/providers/workspace"; import { api } from "~/utils/api"; export function InviteMemberForm({ + numberOfMembers, activeTeamSubscription, + userId, }: { + numberOfMembers: number; activeTeamSubscription: | { - id: string; + id: number | null; plan: string; status: string; - seats: number; - periodStart: Date; - periodEnd: Date; + seats: number | null; + periodStart: Date | null; + periodEnd: Date | null; } | undefined; + userId: string | undefined; }) { const utils = api.useUtils(); const [isCreateAnotherEnabled, setIsCreateAnotherEnabled] = useState(false); @@ -103,32 +107,32 @@ export function InviteMemberForm({ billingType = isYearly ? t`billed annually` : t`billed monthly`; } - const onSubmit = async (member: InviteMemberInput) => { - if (env("NEXT_PUBLIC_KAN_ENV") === "cloud" && !activeTeamSubscription?.id) { - const { data, error } = await authClient.subscription.upgrade({ - plan: "team", - referenceId: workspace.publicId, - metadata: { userId: "123" }, // @todo: add the user id - seats: 1, - successUrl: "/members", - cancelUrl: "/members", - returnUrl: "/members", - disableRedirect: true, + const onSubmit = (member: InviteMemberInput) => { + inviteMember.mutate(member); + }; + + const handleUpgrade = async () => { + const { data, error } = await authClient.subscription.upgrade({ + plan: "team", + referenceId: workspace.publicId, + metadata: { userId }, + seats: numberOfMembers, + successUrl: "/members", + cancelUrl: "/members", + returnUrl: "/members", + disableRedirect: true, + }); + + if (data?.url) { + window.location.href = data.url; + } + + if (error) { + showPopup({ + header: t`Error upgrading subscription`, + message: t`Please try again later, or contact customer support.`, + icon: "error", }); - - if (data?.url) { - window.location.href = data.url; - } - - if (error) { - showPopup({ - header: t`Error upgrading subscription`, - message: t`Please try again later, or contact customer support.`, - icon: "error", - }); - } - } else { - inviteMember.mutate(member); } }; @@ -157,6 +161,10 @@ export function InviteMemberForm({ { if (e.key === "Enter") { @@ -193,19 +201,36 @@ export function InviteMemberForm({