{"version":3,"file":"useCreateTeam-CdxOI48S.js","sources":["../../../app/javascript/modules/growthmentor/team/composables/useCreateTeam.ts"],"sourcesContent":["import { useStripeTeamSubscription } from '@/modules/growthmentor/team/composables/useStripeTeamSubscription.ts'\nimport { useTeamCoupon } from '@/modules/growthmentor/team/composables/useTeamCoupon.ts'\nimport { useForm } from '@inertiajs/vue3'\nimport { useCurrentUser } from '@/shared/composables/useCurrentUser.js'\nimport { computed } from 'vue'\nimport { usePermissionSystem } from '@/shared/composables/usePermissionSystem.js'\nimport {\n SUBSCRIPTION_STATUS,\n TEAM_ROLE,\n} from '@/shared/data/permissionSystem.js'\nimport { TEAM_SEATS_OPTIONS_VALUES } from '@/shared/data/teamSeatsOptions.ts'\n\nexport const useCreateTeam = () => {\n const { currentUser } = useCurrentUser()\n const { isSubscriptionStatus, hasTeamRole } = usePermissionSystem()\n\n const form = useForm({\n seats: TEAM_SEATS_OPTIONS_VALUES[0],\n })\n\n const {\n startSubscription,\n errors: stripeErrors,\n isLoading: isStripeLoading,\n } = useStripeTeamSubscription()\n const { couponCode: teamCouponCode } = useTeamCoupon()\n\n const createTeam = (teamPlanId: string, couponCode: string | null) => {\n // Coupon code can be either passed as an argument meaning user has entered it manually\n // or it can be taken from the team's data if user has already created a team\n const couponCodeToUse = couponCode || teamCouponCode.value\n\n // Has team created but not paid\n if (\n isSubscriptionStatus(SUBSCRIPTION_STATUS.NOT_PAID) &&\n hasTeamRole(TEAM_ROLE.OWNER)\n ) {\n startSubscription({\n planId: teamPlanId,\n seats: form.seats,\n couponCode: couponCodeToUse,\n }).then(() => {})\n // Team is not created and not paid\n } else {\n form\n .transform((data) => ({\n team: {\n name: `${currentUser.value.firstName}'s Team`,\n seats: data.seats,\n },\n }))\n .post('/team', {\n preserveScroll: true,\n onSuccess: () => {\n startSubscription({\n planId: teamPlanId,\n seats: form.seats,\n couponCode: couponCodeToUse,\n }).then(() => {})\n },\n })\n }\n }\n\n return {\n createTeam,\n stripeErrors,\n form,\n isLoading: computed(() => form.processing || isStripeLoading.value),\n }\n}\n"],"names":["useCreateTeam","currentUser","useCurrentUser","isSubscriptionStatus","hasTeamRole","usePermissionSystem","form","useForm","TEAM_SEATS_OPTIONS_VALUES","startSubscription","stripeErrors","isStripeLoading","useStripeTeamSubscription","teamCouponCode","useTeamCoupon","teamPlanId","couponCode","couponCodeToUse","SUBSCRIPTION_STATUS","TEAM_ROLE","data","computed"],"mappings":"gJAYO,MAAMA,EAAgB,IAAM,CAC3B,KAAA,CAAE,YAAAC,GAAgBC,IAClB,CAAE,qBAAAC,EAAsB,YAAAC,CAAY,EAAIC,EAAoB,EAE5DC,EAAOC,EAAQ,CACnB,MAAOC,EAA0B,CAAC,CAAA,CACnC,EAEK,CACJ,kBAAAC,EACA,OAAQC,EACR,UAAWC,GACTC,EAA0B,EACxB,CAAE,WAAYC,CAAe,EAAIC,EAAc,EAuC9C,MAAA,CACL,WAtCiB,CAACC,EAAoBC,IAA8B,CAG9D,MAAAC,EAAkBD,GAAcH,EAAe,MAInDV,EAAqBe,EAAoB,QAAQ,GACjDd,EAAYe,EAAU,KAAK,EAETV,EAAA,CAChB,OAAQM,EACR,MAAOT,EAAK,MACZ,WAAYW,CAAA,CACb,EAAE,KAAK,IAAM,CAAA,CAAE,EAIbX,EAAA,UAAWc,IAAU,CACpB,KAAM,CACJ,KAAM,GAAGnB,EAAY,MAAM,SAAS,UACpC,MAAOmB,EAAK,KACd,CAAA,EACA,EACD,KAAK,QAAS,CACb,eAAgB,GAChB,UAAW,IAAM,CACGX,EAAA,CAChB,OAAQM,EACR,MAAOT,EAAK,MACZ,WAAYW,CAAA,CACb,EAAE,KAAK,IAAM,CAAA,CAAE,CAClB,CAAA,CACD,CACL,EAKA,aAAAP,EACA,KAAAJ,EACA,UAAWe,EAAS,IAAMf,EAAK,YAAcK,EAAgB,KAAK,CAAA,CAEtE"}