import { useMutation } from "@tanstack/react-query"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; import type { ApiResponse, SubscribeTeamInput } from "@calcom/platform-types"; export const useUpgradeTeamSubscriptionInStripe = ( { onSuccess, onError, teamId, }: { teamId?: number | null; onSuccess: (redirectUrl: string) => void; onError: () => void; } = { onSuccess: () => { return; }, onError: () => { return; }, } ) => { const mutation = useMutation, unknown, SubscribeTeamInput>({ mutationFn: (data) => { return fetch(`/api/v2/billing/${teamId}/upgrade`, { method: "post", headers: { "Content-type": "application/json" }, body: JSON.stringify(data), }).then((res) => res?.json()); }, onSuccess: (data) => { if (data.status === SUCCESS_STATUS) { onSuccess?.(data.data?.url); } else { onError?.(); } }, onError: () => { onError?.(); }, }); return mutation; };