diff --git a/.env.example b/.env.example index a3945cb0aa..7a792c9f9f 100644 --- a/.env.example +++ b/.env.example @@ -92,11 +92,10 @@ TWILIO_MESSAGING_SID= NEXT_PUBLIC_IS_E2E= # Used for internal billing system -STRIPE_TEAM_MONTHLY_PRICE_ID= -STRIPE_TEAM_YEARLY_PRICE_ID= -STRIPE_PRIVATE_KEY= -STRIPE_WEBHOOK_SECRET= -STRIPE_CLIENT_ID= +STRIPE_TEAM_MONTHLY_PRICE_ID= +STRIPE_PRIVATE_KEY= +STRIPE_WEBHOOK_SECRET= +STRIPE_CLIENT_ID= # Use for internal Public API Keys and optional API_KEY_PREFIX=cal_ diff --git a/apps/web/components/team/TeamCreateModal.tsx b/apps/web/components/team/TeamCreateModal.tsx deleted file mode 100644 index a1dc2e9b3a..0000000000 --- a/apps/web/components/team/TeamCreateModal.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import { useRef, useState } from "react"; - -import { useLocale } from "@calcom/lib/hooks/useLocale"; -import { trpc } from "@calcom/trpc/react"; -import { Button } from "@calcom/ui"; -import { Icon } from "@calcom/ui/Icon"; -import { Alert } from "@calcom/ui/v2/core/Alert"; -import { Dialog, DialogContent, DialogFooter } from "@calcom/ui/v2/core/Dialog"; - -interface Props { - isOpen: boolean; - onClose: () => void; -} - -export default function TeamCreate(props: Props) { - const { t } = useLocale(); - const utils = trpc.useContext(); - const [errorMessage, setErrorMessage] = useState(null); - const nameRef = useRef() as React.MutableRefObject; - - const createTeamMutation = trpc.useMutation("viewer.teams.create", { - onSuccess: () => { - utils.invalidateQueries(["viewer.teams.list"]); - props.onClose(); - }, - onError: (e) => { - setErrorMessage(e?.message || t("something_went_wrong")); - }, - }); - - const createTeam = () => { - createTeamMutation.mutate({ name: nameRef?.current?.value }); - }; - - return ( - <> - - -
-
- -
-
- -
-

{t("create_new_team_description")}

-
-
-
-
-
- - -
- {errorMessage && } - -
-
- - ); -} diff --git a/apps/web/pages/teams/index.tsx b/apps/web/pages/teams/index.tsx index 3b54332f3f..9e698a8e51 100644 --- a/apps/web/pages/teams/index.tsx +++ b/apps/web/pages/teams/index.tsx @@ -1,5 +1,6 @@ import { useState } from "react"; +import { WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; import { Icon } from "@calcom/ui/Icon"; @@ -9,12 +10,10 @@ import Button from "@calcom/ui/v2/core/Button"; import EmptyScreen from "@calcom/ui/v2/core/EmptyScreen"; import SkeletonLoaderTeamList from "@components/team/SkeletonloaderTeamList"; -import TeamCreateModal from "@components/team/TeamCreateModal"; import TeamList from "@components/team/TeamList"; function Teams() { const { t } = useLocale(); - const [showCreateTeamModal, setShowCreateTeamModal] = useState(false); const [errorMessage, setErrorMessage] = useState(""); const { data, isLoading } = trpc.useQuery(["viewer.teams.list"], { @@ -25,22 +24,22 @@ function Teams() { const teams = data?.filter((m) => m.accepted) || []; const invites = data?.filter((m) => !m.accepted) || []; + const handleNewTeam = () => { + // Hey + }; return ( setShowCreateTeamModal(true)}> + }> <> {!!errorMessage && } - {showCreateTeamModal && ( - setShowCreateTeamModal(false)} /> - )} {invites.length > 0 && (

{t("open_invitations")}

@@ -54,11 +53,10 @@ function Teams() { headline={t("no_teams")} description={t("no_teams_description")} buttonRaw={ - } - buttonOnClick={() => setShowCreateTeamModal(true)} /> )} {teams.length > 0 && } diff --git a/apps/web/pages/video/[uid].tsx b/apps/web/pages/video/[uid].tsx index a3655f933f..ea81652b21 100644 --- a/apps/web/pages/video/[uid].tsx +++ b/apps/web/pages/video/[uid].tsx @@ -2,7 +2,6 @@ import DailyIframe from "@daily-co/daily-js"; import { NextPageContext } from "next"; import { getSession } from "next-auth/react"; import Head from "next/head"; -import Link from "next/link"; import { useEffect } from "react"; import { SEO_IMG_OGIMG_VIDEO, WEBSITE_URL } from "@calcom/lib/constants"; @@ -64,20 +63,15 @@ export default function JoinCall(props: JoinCallPageProps) {
- - { - // eslint-disable-next-line @next/next/no-img-element - Cal.com Logo - } - + Cal.com Logo
); diff --git a/packages/app-store/zapier/lib/nodeScheduler.ts b/packages/app-store/zapier/lib/nodeScheduler.ts index 6aa7b0bdab..f0096a9f43 100644 --- a/packages/app-store/zapier/lib/nodeScheduler.ts +++ b/packages/app-store/zapier/lib/nodeScheduler.ts @@ -49,7 +49,8 @@ export async function scheduleTrigger( export async function cancelScheduledJobs( booking: { uid: string; scheduledJobs?: string[] }, - appId?: string | null + appId?: string | null, + isReschedule?: boolean ) { let scheduledJobs = booking.scheduledJobs || []; @@ -70,14 +71,16 @@ export async function cancelScheduledJobs( scheduledJobs = []; } - await prisma.booking.update({ - where: { - uid: booking.uid, - }, - data: { - scheduledJobs: scheduledJobs, - }, - }); + if (!isReschedule) { + await prisma.booking.update({ + where: { + uid: booking.uid, + }, + data: { + scheduledJobs: scheduledJobs, + }, + }); + } }); } } diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index 65af9330f7..3f37f65306 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -887,7 +887,7 @@ async function handler(req: NextApiRequest & { userId?: number | undefined }) { subscribersMeetingEnded.forEach((subscriber) => { if (rescheduleUid && originalRescheduledBooking) { - cancelScheduledJobs(originalRescheduledBooking); + cancelScheduledJobs(originalRescheduledBooking, undefined, true); } if (booking && booking.status === BookingStatus.ACCEPTED) { scheduleTrigger(booking, subscriber.subscriberUrl, subscriber); diff --git a/packages/features/ee/teams/components/v2/AddNewTeamMembers.tsx b/packages/features/ee/teams/components/v2/AddNewTeamMembers.tsx index e8fcd03d8a..0db2e73df1 100644 --- a/packages/features/ee/teams/components/v2/AddNewTeamMembers.tsx +++ b/packages/features/ee/teams/components/v2/AddNewTeamMembers.tsx @@ -2,14 +2,12 @@ import { useRouter } from "next/router"; import { Suspense, useState } from "react"; import MemberInvitationModal from "@calcom/features/ee/teams/components/MemberInvitationModal"; -import { BillingFrequency } from "@calcom/features/ee/teams/payments"; import { classNames } from "@calcom/lib"; import { WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; import { Icon } from "@calcom/ui"; import { Avatar, Badge, Button, showToast } from "@calcom/ui/v2/core"; -import { Label } from "@calcom/ui/v2/core/form"; import { SkeletonContainer, SkeletonText } from "@calcom/ui/v2/core/skeleton"; const AddNewTeamMemberSkeleton = () => { @@ -53,7 +51,6 @@ const AddNewTeamMembers = ({ teamId }: { teamId: number }) => { }); const [memberInviteModal, setMemberInviteModal] = useState(false); - const [billingFrequency, setBillingFrequency] = useState("monthly"); if (isLoading) return ; @@ -124,34 +121,6 @@ const AddNewTeamMembers = ({ teamId }: { teamId: number }) => { /> )} - <> - -
-
{ - setBillingFrequency("monthly"); - }}> -

{t("monthly")}

-
-
{ - setBillingFrequency("yearly"); - }}> -

{t("yearly")}

-
-
- -