Refactors EE code (#3490)
* WIP * WIP * Type and migration fixes * Adds missing default import * Fixes import * Fixes tRPC imports in App Store * Migrate stripe helpers * WIP * Type fixes * Type fix? * WIP * WIP * Update index.ts * Fixes * Update workflow.tsx * Moved queries to lib * Moves QueryCell * Migrates MultiSelectCheckboxes * WIP * CryptoSection type fixes * WIP * Import fixes * Build fixes * Update app-providers.tsx * Build fixes * Upgrades hookform zod resolvers * Build fixes * Cleanup * Build fixes * Relocates QueryCell to ui * Moved List and SkeletonLoader * Revert QueryCell migration * Can't use QueryCell here * oops * CryptoSection cleanup * Update app-providers.tsx * Moved ee to features * ee to features/ee * Removes @calcom/ee * Adds possible feature locations * Build fixes * Migrates stripe to app-store lib * Colocates stripe imports * Update subscription.ts * Submodule sync Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
parent
84b4bb397f
commit
464343f5ab
2
apps/api
2
apps/api
|
@ -1 +1 @@
|
||||||
Subproject commit aba7b1ec1c9b5122609dea916c7b114e9a3ba66f
|
Subproject commit 60c2f736075122ec3b91a24ef612ad004d257cdb
|
|
@ -1 +1 @@
|
||||||
Subproject commit ac2567263de74449c6e4b98b468415ce1c1815d4
|
Subproject commit 0f33218c84aac810efc3b8f2de483cbcb7c5836c
|
|
@ -3,16 +3,15 @@ import React, { useEffect, useState } from "react";
|
||||||
|
|
||||||
import useAddAppMutation from "@calcom/app-store/_utils/useAddAppMutation";
|
import useAddAppMutation from "@calcom/app-store/_utils/useAddAppMutation";
|
||||||
import { InstallAppButton } from "@calcom/app-store/components";
|
import { InstallAppButton } from "@calcom/app-store/components";
|
||||||
|
import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import showToast from "@calcom/lib/notification";
|
import showToast from "@calcom/lib/notification";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import { App as AppType } from "@calcom/types/App";
|
import { App as AppType } from "@calcom/types/App";
|
||||||
import { Button, SkeletonButton } from "@calcom/ui";
|
import { Button, SkeletonButton } from "@calcom/ui";
|
||||||
|
import Badge from "@calcom/ui/Badge";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
import LicenseRequired from "@ee/components/LicenseRequired";
|
import Shell from "@calcom/ui/Shell";
|
||||||
|
|
||||||
import Shell from "@components/Shell";
|
|
||||||
import Badge from "@components/ui/Badge";
|
|
||||||
|
|
||||||
const Component = ({
|
const Component = ({
|
||||||
name,
|
name,
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
import React, { ComponentProps } from "react";
|
import React, { ComponentProps } from "react";
|
||||||
|
|
||||||
|
import ErrorBoundary from "@calcom/ui/ErrorBoundary";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import Shell from "@calcom/ui/Shell";
|
||||||
import ErrorBoundary from "@lib/ErrorBoundary";
|
|
||||||
|
|
||||||
import NavTabs from "./NavTabs";
|
import NavTabs from "./NavTabs";
|
||||||
import Shell from "./Shell";
|
|
||||||
|
|
||||||
const tabs = [
|
const tabs = [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
|
import Badge from "@calcom/ui/Badge";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
|
||||||
import Badge from "@components/ui/Badge";
|
|
||||||
|
|
||||||
interface AppCardProps {
|
interface AppCardProps {
|
||||||
logo: string;
|
logo: string;
|
||||||
name: string;
|
name: string;
|
||||||
|
|
|
@ -2,11 +2,11 @@ import { signIn } from "next-auth/react";
|
||||||
import { Dispatch, SetStateAction } from "react";
|
import { Dispatch, SetStateAction } from "react";
|
||||||
import { useFormContext } from "react-hook-form";
|
import { useFormContext } from "react-hook-form";
|
||||||
|
|
||||||
|
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
|
||||||
import { useLocale } from "@lib/hooks/useLocale";
|
import { useLocale } from "@lib/hooks/useLocale";
|
||||||
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@lib/telemetry";
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
email: string;
|
email: string;
|
||||||
|
|
|
@ -2,13 +2,12 @@ import { useRouter } from "next/router";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
|
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import { RecurringEvent } from "@calcom/types/Calendar";
|
import useTheme from "@calcom/lib/hooks/useTheme";
|
||||||
|
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
|
||||||
|
import type { RecurringEvent } from "@calcom/types/Calendar";
|
||||||
import { Button } from "@calcom/ui/Button";
|
import { Button } from "@calcom/ui/Button";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
|
||||||
import useTheme from "@lib/hooks/useTheme";
|
|
||||||
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@lib/telemetry";
|
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
booking: {
|
booking: {
|
||||||
title?: string;
|
title?: string;
|
||||||
|
|
|
@ -2,8 +2,7 @@ import { FC, useEffect, useState } from "react";
|
||||||
|
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import Switch from "@calcom/ui/Switch";
|
import Switch from "@calcom/ui/Switch";
|
||||||
|
import TimezoneSelect, { ITimezoneOption } from "@calcom/ui/form/TimezoneSelect";
|
||||||
import TimezoneSelect, { ITimezoneOption } from "@components/ui/form/TimezoneSelect";
|
|
||||||
|
|
||||||
import { is24h, timeZone } from "../../lib/clock";
|
import { is24h, timeZone } from "../../lib/clock";
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
// Get router variables
|
// Get router variables
|
||||||
import { EventType } from "@prisma/client";
|
import { EventType } from "@prisma/client";
|
||||||
import * as Collapsible from "@radix-ui/react-collapsible";
|
import * as Collapsible from "@radix-ui/react-collapsible";
|
||||||
import { useContracts } from "contexts/contractsContext";
|
|
||||||
import { TFunction } from "next-i18next";
|
import { TFunction } from "next-i18next";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import { useEffect, useMemo, useState } from "react";
|
import { useEffect, useMemo, useState } from "react";
|
||||||
|
@ -16,11 +15,15 @@ import {
|
||||||
useEmbedNonStylesConfig,
|
useEmbedNonStylesConfig,
|
||||||
useIsBackgroundTransparent,
|
useIsBackgroundTransparent,
|
||||||
} from "@calcom/embed-core/embed-iframe";
|
} from "@calcom/embed-core/embed-iframe";
|
||||||
|
import { useContracts } from "@calcom/features/ee/web3/contexts/contractsContext";
|
||||||
import CustomBranding from "@calcom/lib/CustomBranding";
|
import CustomBranding from "@calcom/lib/CustomBranding";
|
||||||
import classNames from "@calcom/lib/classNames";
|
import classNames from "@calcom/lib/classNames";
|
||||||
import { CAL_URL, WEBSITE_URL } from "@calcom/lib/constants";
|
import { CAL_URL, WEBSITE_URL } from "@calcom/lib/constants";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
|
import useTheme from "@calcom/lib/hooks/useTheme";
|
||||||
import { getRecurringFreq } from "@calcom/lib/recurringStrings";
|
import { getRecurringFreq } from "@calcom/lib/recurringStrings";
|
||||||
|
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
|
||||||
|
import { detectBrowserTimeFormat } from "@calcom/lib/timeFormat";
|
||||||
import { localStorage } from "@calcom/lib/webstorage";
|
import { localStorage } from "@calcom/lib/webstorage";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
@ -29,10 +32,7 @@ import DatePicker from "@calcom/ui/booker/DatePicker";
|
||||||
import { timeZone as localStorageTimeZone } from "@lib/clock";
|
import { timeZone as localStorageTimeZone } from "@lib/clock";
|
||||||
// import { timeZone } from "@lib/clock";
|
// import { timeZone } from "@lib/clock";
|
||||||
import { useExposePlanGlobally } from "@lib/hooks/useExposePlanGlobally";
|
import { useExposePlanGlobally } from "@lib/hooks/useExposePlanGlobally";
|
||||||
import useTheme from "@lib/hooks/useTheme";
|
|
||||||
import { isBrandingHidden } from "@lib/isBrandingHidden";
|
import { isBrandingHidden } from "@lib/isBrandingHidden";
|
||||||
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@lib/telemetry";
|
|
||||||
import { detectBrowserTimeFormat } from "@lib/timeFormat";
|
|
||||||
|
|
||||||
import AvailableTimes from "@components/booking/AvailableTimes";
|
import AvailableTimes from "@components/booking/AvailableTimes";
|
||||||
import TimeOptions from "@components/booking/TimeOptions";
|
import TimeOptions from "@components/booking/TimeOptions";
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
import { zodResolver } from "@hookform/resolvers/zod";
|
import { zodResolver } from "@hookform/resolvers/zod";
|
||||||
import { EventTypeCustomInputType, WorkflowActions } from "@prisma/client";
|
import { EventTypeCustomInputType, WorkflowActions } from "@prisma/client";
|
||||||
import { useContracts } from "contexts/contractsContext";
|
|
||||||
import { isValidPhoneNumber } from "libphonenumber-js";
|
import { isValidPhoneNumber } from "libphonenumber-js";
|
||||||
import { useSession } from "next-auth/react";
|
import { useSession } from "next-auth/react";
|
||||||
import dynamic from "next/dynamic";
|
|
||||||
import Head from "next/head";
|
import Head from "next/head";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import { useEffect, useMemo, useState } from "react";
|
import { useEffect, useMemo, useState } from "react";
|
||||||
|
@ -14,36 +12,37 @@ import { useMutation } from "react-query";
|
||||||
import { v4 as uuidv4 } from "uuid";
|
import { v4 as uuidv4 } from "uuid";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
|
import { createPaymentLink } from "@calcom/app-store/stripepayment/lib/client";
|
||||||
import dayjs from "@calcom/dayjs";
|
import dayjs from "@calcom/dayjs";
|
||||||
import {
|
import {
|
||||||
useEmbedNonStylesConfig,
|
useEmbedNonStylesConfig,
|
||||||
useIsBackgroundTransparent,
|
useIsBackgroundTransparent,
|
||||||
useIsEmbed,
|
useIsEmbed,
|
||||||
} from "@calcom/embed-core/embed-iframe";
|
} from "@calcom/embed-core/embed-iframe";
|
||||||
|
import { useContracts } from "@calcom/features/ee/web3/contexts/contractsContext";
|
||||||
import CustomBranding from "@calcom/lib/CustomBranding";
|
import CustomBranding from "@calcom/lib/CustomBranding";
|
||||||
import classNames from "@calcom/lib/classNames";
|
import classNames from "@calcom/lib/classNames";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
|
import useTheme from "@calcom/lib/hooks/useTheme";
|
||||||
import { HttpError } from "@calcom/lib/http-error";
|
import { HttpError } from "@calcom/lib/http-error";
|
||||||
import { getEveryFreqFor } from "@calcom/lib/recurringStrings";
|
import { getEveryFreqFor } from "@calcom/lib/recurringStrings";
|
||||||
import { createPaymentLink } from "@calcom/stripe/client";
|
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
|
||||||
import { Button } from "@calcom/ui/Button";
|
import { Button } from "@calcom/ui/Button";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
import { Tooltip } from "@calcom/ui/Tooltip";
|
import { Tooltip } from "@calcom/ui/Tooltip";
|
||||||
|
import PhoneInput from "@calcom/ui/form/PhoneInputLazy";
|
||||||
import { EmailInput, Form } from "@calcom/ui/form/fields";
|
import { EmailInput, Form } from "@calcom/ui/form/fields";
|
||||||
|
|
||||||
import { asStringOrNull } from "@lib/asStringOrNull";
|
import { asStringOrNull } from "@lib/asStringOrNull";
|
||||||
import { timeZone } from "@lib/clock";
|
import { timeZone } from "@lib/clock";
|
||||||
import { ensureArray } from "@lib/ensureArray";
|
import { ensureArray } from "@lib/ensureArray";
|
||||||
import useTheme from "@lib/hooks/useTheme";
|
|
||||||
import { LocationObject, LocationType } from "@lib/location";
|
import { LocationObject, LocationType } from "@lib/location";
|
||||||
import createBooking from "@lib/mutations/bookings/create-booking";
|
import createBooking from "@lib/mutations/bookings/create-booking";
|
||||||
import createRecurringBooking from "@lib/mutations/bookings/create-recurring-booking";
|
import createRecurringBooking from "@lib/mutations/bookings/create-recurring-booking";
|
||||||
import { parseDate, parseRecurringDates } from "@lib/parseDate";
|
import { parseDate, parseRecurringDates } from "@lib/parseDate";
|
||||||
import slugify from "@lib/slugify";
|
import slugify from "@lib/slugify";
|
||||||
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@lib/telemetry";
|
|
||||||
|
|
||||||
import AvatarGroup from "@components/ui/AvatarGroup";
|
import AvatarGroup from "@components/ui/AvatarGroup";
|
||||||
import type PhoneInputType from "@components/ui/form/PhoneInput";
|
|
||||||
|
|
||||||
import { BookPageProps } from "../../../pages/[user]/book";
|
import { BookPageProps } from "../../../pages/[user]/book";
|
||||||
import { HashLinkPageProps } from "../../../pages/d/[link]/book";
|
import { HashLinkPageProps } from "../../../pages/d/[link]/book";
|
||||||
|
@ -58,11 +57,6 @@ declare global {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/** These are like 40kb that not every user needs */
|
|
||||||
const PhoneInput = dynamic(
|
|
||||||
() => import("@components/ui/form/PhoneInput")
|
|
||||||
) as unknown as typeof PhoneInputType;
|
|
||||||
|
|
||||||
type BookingPageProps = (BookPageProps | TeamBookingPageProps | HashLinkPageProps) & {
|
type BookingPageProps = (BookPageProps | TeamBookingPageProps | HashLinkPageProps) & {
|
||||||
locationLabels: Record<LocationType, string>;
|
locationLabels: Record<LocationType, string>;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,31 +1,25 @@
|
||||||
import { zodResolver } from "@hookform/resolvers/zod";
|
import { zodResolver } from "@hookform/resolvers/zod";
|
||||||
import { isValidPhoneNumber } from "libphonenumber-js";
|
import { isValidPhoneNumber } from "libphonenumber-js";
|
||||||
import dynamic from "next/dynamic";
|
|
||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
import { Controller, useForm, useWatch } from "react-hook-form";
|
import { Controller, useForm, useWatch } from "react-hook-form";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import classNames from "@calcom/lib/classNames";
|
import { LocationOptionsToString } from "@calcom/app-store/locations";
|
||||||
|
import { LocationType } from "@calcom/core/location";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
||||||
import { Button } from "@calcom/ui";
|
import { Button } from "@calcom/ui";
|
||||||
import { Dialog, DialogContent } from "@calcom/ui/Dialog";
|
import { Dialog, DialogContent } from "@calcom/ui/Dialog";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import PhoneInput from "@calcom/ui/form/PhoneInputLazy";
|
||||||
import { Form } from "@calcom/ui/form/fields";
|
import { Form } from "@calcom/ui/form/fields";
|
||||||
|
|
||||||
import { QueryCell } from "@lib/QueryCell";
|
import { QueryCell } from "@lib/QueryCell";
|
||||||
import { linkValueToString } from "@lib/linkValueToString";
|
import { linkValueToString } from "@lib/linkValueToString";
|
||||||
import { LocationType } from "@lib/location";
|
|
||||||
import { LocationOptionsToString } from "@lib/locationOptions";
|
|
||||||
|
|
||||||
import CheckboxField from "@components/ui/form/CheckboxField";
|
import CheckboxField from "@components/ui/form/CheckboxField";
|
||||||
import type PhoneInputType from "@components/ui/form/PhoneInput";
|
|
||||||
import Select from "@components/ui/form/Select";
|
import Select from "@components/ui/form/Select";
|
||||||
|
|
||||||
const PhoneInput = dynamic(
|
|
||||||
() => import("@components/ui/form/PhoneInput")
|
|
||||||
) as unknown as typeof PhoneInputType;
|
|
||||||
|
|
||||||
type BookingItem = inferQueryOutput<"viewer.bookings">["bookings"][number];
|
type BookingItem = inferQueryOutput<"viewer.bookings">["bookings"][number];
|
||||||
|
|
||||||
type OptionTypeBase = {
|
type OptionTypeBase = {
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { UseFormReturn } from "react-hook-form";
|
||||||
|
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import { Frequency } from "@calcom/prisma/zod-utils";
|
import { Frequency } from "@calcom/prisma/zod-utils";
|
||||||
import { RecurringEvent } from "@calcom/types/Calendar";
|
import type { RecurringEvent } from "@calcom/types/Calendar";
|
||||||
import { Alert } from "@calcom/ui/Alert";
|
import { Alert } from "@calcom/ui/Alert";
|
||||||
|
|
||||||
import Select from "@components/ui/form/Select";
|
import Select from "@components/ui/form/Select";
|
||||||
|
|
|
@ -7,15 +7,15 @@ import showToast from "@calcom/lib/notification";
|
||||||
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
||||||
import { Alert } from "@calcom/ui/Alert";
|
import { Alert } from "@calcom/ui/Alert";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
import { List } from "@calcom/ui/List";
|
||||||
|
import { ShellSubHeading } from "@calcom/ui/Shell";
|
||||||
import Switch from "@calcom/ui/Switch";
|
import Switch from "@calcom/ui/Switch";
|
||||||
|
import SkeletonLoader from "@calcom/ui/apps/SkeletonLoader";
|
||||||
|
|
||||||
import { QueryCell } from "@lib/QueryCell";
|
import { QueryCell } from "@lib/QueryCell";
|
||||||
|
|
||||||
import AdditionalCalendarSelector from "@components/AdditionalCalendarSelector";
|
import AdditionalCalendarSelector from "@components/AdditionalCalendarSelector";
|
||||||
import DestinationCalendarSelector from "@components/DestinationCalendarSelector";
|
import DestinationCalendarSelector from "@components/DestinationCalendarSelector";
|
||||||
import { List } from "@components/List";
|
|
||||||
import { ShellSubHeading } from "@components/Shell";
|
|
||||||
import SkeletonLoader from "@components/apps/SkeletonLoader";
|
|
||||||
|
|
||||||
import DisconnectIntegration from "./DisconnectIntegration";
|
import DisconnectIntegration from "./DisconnectIntegration";
|
||||||
import IntegrationListItem from "./IntegrationListItem";
|
import IntegrationListItem from "./IntegrationListItem";
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { useMutation } from "react-query";
|
|
||||||
|
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import showToast from "@calcom/lib/notification";
|
import showToast from "@calcom/lib/notification";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import { ButtonBaseProps } from "@calcom/ui/Button";
|
import { ButtonBaseProps } from "@calcom/ui/Button";
|
||||||
|
import ConfirmationDialogContent from "@calcom/ui/ConfirmationDialogContent";
|
||||||
import { Dialog } from "@calcom/ui/Dialog";
|
import { Dialog } from "@calcom/ui/Dialog";
|
||||||
|
|
||||||
import ConfirmationDialogContent from "@components/dialog/ConfirmationDialogContent";
|
|
||||||
|
|
||||||
export default function DisconnectIntegration(props: {
|
export default function DisconnectIntegration(props: {
|
||||||
/** Integration credential id */
|
/** Integration credential id */
|
||||||
id: number;
|
id: number;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { ReactNode } from "react";
|
import { ReactNode } from "react";
|
||||||
|
|
||||||
import classNames from "@lib/classNames";
|
import { ListItem, ListItemText, ListItemTitle } from "@calcom/ui/List";
|
||||||
|
|
||||||
import { ListItem, ListItemText, ListItemTitle } from "@components/List";
|
import classNames from "@lib/classNames";
|
||||||
|
|
||||||
function IntegrationListItem(props: {
|
function IntegrationListItem(props: {
|
||||||
imageSrc?: string;
|
imageSrc?: string;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { ReactNode } from "react";
|
import { ReactNode } from "react";
|
||||||
|
|
||||||
import Badge from "@components/ui/Badge";
|
import Badge from "@calcom/ui/Badge";
|
||||||
|
|
||||||
function pluralize(opts: { num: number; plural: string; singular: string }) {
|
function pluralize(opts: { num: number; plural: string; singular: string }) {
|
||||||
if (opts.num === 0) {
|
if (opts.num === 0) {
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import showToast from "@calcom/lib/notification";
|
import showToast from "@calcom/lib/notification";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
|
import Badge from "@calcom/ui/Badge";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
|
||||||
import Badge from "@components/ui/Badge";
|
|
||||||
|
|
||||||
const DisableUserImpersonation = ({ disableImpersonation }: { disableImpersonation: boolean }) => {
|
const DisableUserImpersonation = ({ disableImpersonation }: { disableImpersonation: boolean }) => {
|
||||||
const utils = trpc.useContext();
|
const utils = trpc.useContext();
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
|
|
||||||
|
import Badge from "@calcom/ui/Badge";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
|
||||||
import { useLocale } from "@lib/hooks/useLocale";
|
import { useLocale } from "@lib/hooks/useLocale";
|
||||||
|
|
||||||
import Badge from "@components/ui/Badge";
|
|
||||||
|
|
||||||
import DisableTwoFactorModal from "./DisableTwoFactorModal";
|
import DisableTwoFactorModal from "./DisableTwoFactorModal";
|
||||||
import EnableTwoFactorModal from "./EnableTwoFactorModal";
|
import EnableTwoFactorModal from "./EnableTwoFactorModal";
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import showToast from "@calcom/lib/notification";
|
import showToast from "@calcom/lib/notification";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
|
import Badge from "@calcom/ui/Badge";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
|
||||||
import Badge from "@components/ui/Badge";
|
|
||||||
|
|
||||||
const DisableTeamImpersonation = ({ teamId, memberId }: { teamId: number; memberId: number }) => {
|
const DisableTeamImpersonation = ({ teamId, memberId }: { teamId: number; memberId: number }) => {
|
||||||
const { t } = useLocale();
|
const { t } = useLocale();
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,13 @@ import { signIn } from "next-auth/react";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
|
|
||||||
|
import TeamAvailabilityModal from "@calcom/features/ee/teams/components/TeamAvailabilityModal";
|
||||||
import { WEBAPP_URL } from "@calcom/lib/constants";
|
import { WEBAPP_URL } from "@calcom/lib/constants";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import showToast from "@calcom/lib/notification";
|
import showToast from "@calcom/lib/notification";
|
||||||
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
import ConfirmationDialogContent from "@calcom/ui/ConfirmationDialogContent";
|
||||||
import { Dialog, DialogTrigger } from "@calcom/ui/Dialog";
|
import { Dialog, DialogTrigger } from "@calcom/ui/Dialog";
|
||||||
import Dropdown, {
|
import Dropdown, {
|
||||||
DropdownMenuContent,
|
DropdownMenuContent,
|
||||||
|
@ -17,11 +19,9 @@ import Dropdown, {
|
||||||
} from "@calcom/ui/Dropdown";
|
} from "@calcom/ui/Dropdown";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
import { Tooltip } from "@calcom/ui/Tooltip";
|
import { Tooltip } from "@calcom/ui/Tooltip";
|
||||||
import TeamAvailabilityModal from "@ee/components/team/availability/TeamAvailabilityModal";
|
|
||||||
|
|
||||||
import useCurrentUserId from "@lib/hooks/useCurrentUserId";
|
import useCurrentUserId from "@lib/hooks/useCurrentUserId";
|
||||||
|
|
||||||
import ConfirmationDialogContent from "@components/dialog/ConfirmationDialogContent";
|
|
||||||
import Avatar from "@components/ui/Avatar";
|
import Avatar from "@components/ui/Avatar";
|
||||||
import ModalContainer from "@components/ui/ModalContainer";
|
import ModalContainer from "@components/ui/ModalContainer";
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
import React from "react";
|
|
||||||
|
|
||||||
import { SkeletonText } from "@calcom/ui";
|
import { SkeletonText } from "@calcom/ui";
|
||||||
|
|
||||||
import { ShellSubHeading } from "@components/Shell";
|
function SkeletonLoaderTeamList() {
|
||||||
|
|
||||||
function SkeletonLoaderTeamList({ className }: { className?: string }) {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<ul className="-mx-4 animate-pulse divide-y divide-neutral-200 rounded-sm border border-gray-200 bg-white sm:mx-0 sm:overflow-hidden">
|
<ul className="-mx-4 animate-pulse divide-y divide-neutral-200 rounded-sm border border-gray-200 bg-white sm:mx-0 sm:overflow-hidden">
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
import { MembershipRole } from "@prisma/client";
|
import { MembershipRole } from "@prisma/client";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
|
||||||
|
import classNames from "@calcom/lib/classNames";
|
||||||
|
import { getPlaceholderAvatar } from "@calcom/lib/getPlaceholderAvatar";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import showToast from "@calcom/lib/notification";
|
import showToast from "@calcom/lib/notification";
|
||||||
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
import ConfirmationDialogContent from "@calcom/ui/ConfirmationDialogContent";
|
||||||
import { Dialog, DialogTrigger } from "@calcom/ui/Dialog";
|
import { Dialog, DialogTrigger } from "@calcom/ui/Dialog";
|
||||||
import Dropdown, {
|
import Dropdown, {
|
||||||
DropdownMenuContent,
|
DropdownMenuContent,
|
||||||
|
@ -15,10 +18,6 @@ import Dropdown, {
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
import { Tooltip } from "@calcom/ui/Tooltip";
|
import { Tooltip } from "@calcom/ui/Tooltip";
|
||||||
|
|
||||||
import classNames from "@lib/classNames";
|
|
||||||
import { getPlaceholderAvatar } from "@lib/getPlaceholderAvatar";
|
|
||||||
|
|
||||||
import ConfirmationDialogContent from "@components/dialog/ConfirmationDialogContent";
|
|
||||||
import Avatar from "@components/ui/Avatar";
|
import Avatar from "@components/ui/Avatar";
|
||||||
|
|
||||||
import { TeamRole } from "./TeamPill";
|
import { TeamRole } from "./TeamPill";
|
||||||
|
|
|
@ -6,12 +6,12 @@ import React from "react";
|
||||||
import showToast from "@calcom/lib/notification";
|
import showToast from "@calcom/lib/notification";
|
||||||
import { TeamWithMembers } from "@calcom/lib/server/queries/teams";
|
import { TeamWithMembers } from "@calcom/lib/server/queries/teams";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
|
import ConfirmationDialogContent from "@calcom/ui/ConfirmationDialogContent";
|
||||||
import { Dialog, DialogTrigger } from "@calcom/ui/Dialog";
|
import { Dialog, DialogTrigger } from "@calcom/ui/Dialog";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
|
||||||
import { useLocale } from "@lib/hooks/useLocale";
|
import { useLocale } from "@lib/hooks/useLocale";
|
||||||
|
|
||||||
import ConfirmationDialogContent from "@components/dialog/ConfirmationDialogContent";
|
|
||||||
import CreateEventTypeButton from "@components/eventtype/CreateEventType";
|
import CreateEventTypeButton from "@components/eventtype/CreateEventType";
|
||||||
import LinkIconButton from "@components/ui/LinkIconButton";
|
import LinkIconButton from "@components/ui/LinkIconButton";
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import React, { useCallback, useEffect, useState } from "react";
|
import React, { useCallback, useEffect, useState } from "react";
|
||||||
import ReactSelect, { components, GroupBase, Props, InputProps, SingleValue, MultiValue } from "react-select";
|
import ReactSelect, { components, GroupBase, Props, InputProps, SingleValue, MultiValue } from "react-select";
|
||||||
|
|
||||||
import classNames from "@lib/classNames";
|
import classNames from "@calcom/lib/classNames";
|
||||||
import useTheme from "@lib/hooks/useTheme";
|
import useTheme from "@calcom/lib/hooks/useTheme";
|
||||||
|
|
||||||
export type SelectProps<
|
export type SelectProps<
|
||||||
Option,
|
Option,
|
||||||
|
|
|
@ -4,12 +4,12 @@ import { trpc } from "@calcom/trpc/react";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
import { Dialog, DialogContent } from "@calcom/ui/Dialog";
|
import { Dialog, DialogContent } from "@calcom/ui/Dialog";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import { List } from "@calcom/ui/List";
|
||||||
|
import { ShellSubHeading } from "@calcom/ui/Shell";
|
||||||
|
import SkeletonLoader from "@calcom/ui/apps/SkeletonLoader";
|
||||||
|
|
||||||
import { QueryCell } from "@lib/QueryCell";
|
import { QueryCell } from "@lib/QueryCell";
|
||||||
|
|
||||||
import { List } from "@components/List";
|
|
||||||
import { ShellSubHeading } from "@components/Shell";
|
|
||||||
import SkeletonLoader from "@components/apps/SkeletonLoader";
|
|
||||||
import WebhookDialogForm from "@components/webhook/WebhookDialogForm";
|
import WebhookDialogForm from "@components/webhook/WebhookDialogForm";
|
||||||
import WebhookListItem, { TWebhook } from "@components/webhook/WebhookListItem";
|
import WebhookListItem, { TWebhook } from "@components/webhook/WebhookListItem";
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
import classNames from "@calcom/lib/classNames";
|
import classNames from "@calcom/lib/classNames";
|
||||||
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
import ConfirmationDialogContent from "@calcom/ui/ConfirmationDialogContent";
|
||||||
import { Dialog, DialogTrigger } from "@calcom/ui/Dialog";
|
import { Dialog, DialogTrigger } from "@calcom/ui/Dialog";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import { ListItem } from "@calcom/ui/List";
|
||||||
import { Tooltip } from "@calcom/ui/Tooltip";
|
import { Tooltip } from "@calcom/ui/Tooltip";
|
||||||
|
|
||||||
import { useLocale } from "@lib/hooks/useLocale";
|
import { useLocale } from "@lib/hooks/useLocale";
|
||||||
|
|
||||||
import { ListItem } from "@components/List";
|
|
||||||
import ConfirmationDialogContent from "@components/dialog/ConfirmationDialogContent";
|
|
||||||
|
|
||||||
export type TWebhook = inferQueryOutput<"viewer.webhook.list">[number];
|
export type TWebhook = inferQueryOutput<"viewer.webhook.list">[number];
|
||||||
|
|
||||||
export default function WebhookListItem(props: { webhook: TWebhook; onEditWebhook: () => void }) {
|
export default function WebhookListItem(props: { webhook: TWebhook; onEditWebhook: () => void }) {
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
The Cal.com Enterprise Edition (EE) license (the “EE License”)
|
|
||||||
Copyright (c) 2020-present Cal.com, Inc
|
|
||||||
|
|
||||||
With regard to the Cal.com Software:
|
|
||||||
|
|
||||||
This software and associated documentation files (the "Software") may only be
|
|
||||||
used in production, if you (and any entity that you represent) have agreed to,
|
|
||||||
and are in compliance with, the Cal.com Subscription Terms available
|
|
||||||
at https://cal.com/terms (the “EE Terms”), or other agreements governing
|
|
||||||
the use of the Software, as mutually agreed by you and Cal.com, Inc ("Cal.com"),
|
|
||||||
and otherwise have a valid Cal.com Enterprise Edition subscription ("EE Subscription")
|
|
||||||
for the correct number of hosts as defined in the EE Terms ("Hosts"). Subject to the foregoing sentence,
|
|
||||||
you are free to modify this Software and publish patches to the Software. You agree
|
|
||||||
that Cal.com and/or its licensors (as applicable) retain all right, title and interest in
|
|
||||||
and to all such modifications and/or patches, and all such modifications and/or
|
|
||||||
patches may only be used, copied, modified, displayed, distributed, or otherwise
|
|
||||||
exploited with a valid EE Subscription for the correct number of hosts.
|
|
||||||
Notwithstanding the foregoing, you may copy and modify the Software for development
|
|
||||||
and testing purposes, without requiring a subscription. You agree that Cal.com and/or
|
|
||||||
its licensors (as applicable) retain all right, title and interest in and to all such
|
|
||||||
modifications. You are not granted any other rights beyond what is expressly stated herein.
|
|
||||||
Subject to the foregoing, it is forbidden to copy, merge, publish, distribute, sublicense,
|
|
||||||
and/or sell the Software.
|
|
||||||
|
|
||||||
This EE License applies only to the part of this Software that is not distributed under
|
|
||||||
the AGPLv3 license. Any part of this Software distributed under the AGPLv3 license or which
|
|
||||||
is served client-side as an image, font, cascading stylesheet (CSS), file which produces
|
|
||||||
or is compiled, arranged, augmented, or combined into client-side JavaScript, in whole or
|
|
||||||
in part, is copyrighted under the AGPLv3 license. The full text of this EE License shall
|
|
||||||
be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
For all third party components incorporated into the Cal.com Software, those
|
|
||||||
components are licensed under the original license provided by the owner of the
|
|
||||||
applicable component.
|
|
|
@ -1,38 +0,0 @@
|
||||||
<!-- PROJECT LOGO -->
|
|
||||||
<div align="center">
|
|
||||||
<a href="https://cal.com/enterprise">
|
|
||||||
<img src="https://user-images.githubusercontent.com/8019099/133430653-24422d2a-3c8d-4052-9ad6-0580597151ee.png" alt="Logo">
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a href="https://cal.com/enterprise">Get Started with Enterprise</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
# Enterprise Edition
|
|
||||||
|
|
||||||
Welcome to the Enterprise Edition ("/ee") of Cal.com.
|
|
||||||
|
|
||||||
The [/ee](https://github.com/calcom/cal.com/tree/main/apps/web/ee) subfolder is the place for all the **Pro** features from our [hosted](https://cal.com/pricing) plan and [enterprise-grade](https://cal.com/enterprise) features such as SSO, SAML, ADFS, OIDC, SCIM, SIEM, HRIS and much more.
|
|
||||||
|
|
||||||
> _❗ WARNING: This repository is copyrighted (unlike our [main repo](https://github.com/calcom/cal.com)). You are not allowed to use this code to host your own version of app.cal.com without obtaining a proper [license](https://cal.com/enterprise) first❗_
|
|
||||||
|
|
||||||
## Setting up Stripe
|
|
||||||
|
|
||||||
1. Create a stripe account or use an existing one. For testing, you should use all stripe dashboard functions with the Test-Mode toggle in the top right activated.
|
|
||||||
2. Open [Stripe ApiKeys](https://dashboard.stripe.com/apikeys) save the token starting with `pk_...` to `NEXT_PUBLIC_STRIPE_PUBLIC_KEY` and `sk_...` to `STRIPE_PRIVATE_KEY` in the .env file.
|
|
||||||
3. Open [Stripe Connect Settings](https://dashboard.stripe.com/settings/connect) and activate OAuth for Standard Accounts
|
|
||||||
4. Add `<CALENDSO URL>/api/integrations/stripepayment/callback` as redirect URL.
|
|
||||||
5. Copy your client*id (`ca*...`) to `STRIPE_CLIENT_ID` in the .env file.
|
|
||||||
6. Open [Stripe Webhooks](https://dashboard.stripe.com/webhooks) and add `<CALENDSO URL>/api/integrations/stripepayment/webhook` as webhook for connected applications.
|
|
||||||
7. Select all `payment_intent` events for the webhook.
|
|
||||||
8. Copy the webhook secret (`whsec_...`) to `STRIPE_WEBHOOK_SECRET` in the .env file.
|
|
||||||
|
|
||||||
## Setting up SAML login
|
|
||||||
|
|
||||||
1. Set SAML_DATABASE_URL to a postgres database. Please use a different database than the main Cal instance since the migrations are separate for this database. For example `postgresql://postgres:@localhost:5450/cal-saml`
|
|
||||||
2. Set SAML_ADMINS to a comma separated list of admin emails from where the SAML metadata can be uploaded and configured.
|
|
||||||
3. Create a SAML application with your Identity Provider (IdP) using the instructions here - [SAML Setup](../docs/saml-setup.md)
|
|
||||||
4. Remember to configure access to the IdP SAML app for all your users (who need access to Cal).
|
|
||||||
5. You will need the XML metadata from your IdP later, so keep it accessible.
|
|
||||||
6. Log in to one of the admin accounts configured in SAML_ADMINS and then navigate to Settings -> Security.
|
|
||||||
7. You should see a SAML configuration section, copy and paste the XML metadata from step 5 and click on Save.
|
|
||||||
8. Your provisioned users can now log into Cal using SAML.
|
|
|
@ -1,13 +0,0 @@
|
||||||
import HelpscoutMenuItem from "@ee/lib/helpscout/HelpscoutMenuItem";
|
|
||||||
import IntercomMenuItem from "@ee/lib/intercom/IntercomMenuItem";
|
|
||||||
import ZendeskMenuItem from "@ee/lib/zendesk/ZendeskMenuItem";
|
|
||||||
|
|
||||||
export default function HelpMenuItem() {
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<IntercomMenuItem />
|
|
||||||
<ZendeskMenuItem />
|
|
||||||
<HelpscoutMenuItem />
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
}
|
|
|
@ -9,8 +9,8 @@ import {
|
||||||
} from "react-query";
|
} from "react-query";
|
||||||
|
|
||||||
import type { TRPCClientErrorLike } from "@calcom/trpc/client";
|
import type { TRPCClientErrorLike } from "@calcom/trpc/client";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
|
||||||
import type { UseTRPCQueryOptions } from "@calcom/trpc/react";
|
import type { UseTRPCQueryOptions } from "@calcom/trpc/react";
|
||||||
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import type {
|
import type {
|
||||||
inferHandlerInput,
|
inferHandlerInput,
|
||||||
inferProcedureInput,
|
inferProcedureInput,
|
||||||
|
@ -19,8 +19,7 @@ import type {
|
||||||
} from "@calcom/trpc/server";
|
} from "@calcom/trpc/server";
|
||||||
import type { AppRouter } from "@calcom/trpc/server/routers/_app";
|
import type { AppRouter } from "@calcom/trpc/server/routers/_app";
|
||||||
import { Alert } from "@calcom/ui/Alert";
|
import { Alert } from "@calcom/ui/Alert";
|
||||||
|
import Loader from "@calcom/ui/Loader";
|
||||||
import Loader from "@components/Loader";
|
|
||||||
|
|
||||||
type ErrorLike = {
|
type ErrorLike = {
|
||||||
message: string;
|
message: string;
|
||||||
|
|
|
@ -1,12 +1,15 @@
|
||||||
import { SessionProvider } from "next-auth/react";
|
import { SessionProvider } from "next-auth/react";
|
||||||
|
import { EventCollectionProvider } from "next-collect/client";
|
||||||
import { appWithTranslation } from "next-i18next";
|
import { appWithTranslation } from "next-i18next";
|
||||||
|
import { ThemeProvider } from "next-themes";
|
||||||
import type { AppProps as NextAppProps, AppProps as NextJsAppProps } from "next/app";
|
import type { AppProps as NextAppProps, AppProps as NextJsAppProps } from "next/app";
|
||||||
import { NextRouter } from "next/router";
|
import { NextRouter } from "next/router";
|
||||||
import { ComponentProps, ReactNode } from "react";
|
import { ComponentProps, ReactNode } from "react";
|
||||||
|
|
||||||
|
import DynamicHelpscoutProvider from "@calcom/features/ee/support/lib/helpscout/providerDynamic";
|
||||||
|
import DynamicIntercomProvider from "@calcom/features/ee/support/lib/intercom/providerDynamic";
|
||||||
|
import { ContractsProvider } from "@calcom/features/ee/web3/contexts/contractsContext";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import DynamicHelpscoutProvider from "@ee/lib/helpscout/providerDynamic";
|
|
||||||
import DynamicIntercomProvider from "@ee/lib/intercom/providerDynamic";
|
|
||||||
|
|
||||||
import usePublicPage from "@lib/hooks/usePublicPage";
|
import usePublicPage from "@lib/hooks/usePublicPage";
|
||||||
|
|
||||||
|
@ -52,10 +55,34 @@ const AppProviders = (props: AppPropsWithChildren) => {
|
||||||
const session = trpc.useQuery(["viewer.public.session"]).data;
|
const session = trpc.useQuery(["viewer.public.session"]).data;
|
||||||
// No need to have intercom on public pages - Good for Page Performance
|
// No need to have intercom on public pages - Good for Page Performance
|
||||||
const isPublicPage = usePublicPage();
|
const isPublicPage = usePublicPage();
|
||||||
|
const isThemeSupported =
|
||||||
|
typeof props.Component.isThemeSupported === "function"
|
||||||
|
? props.Component.isThemeSupported({ router: props.router })
|
||||||
|
: props.Component.isThemeSupported;
|
||||||
|
const forcedTheme = isThemeSupported ? undefined : "light";
|
||||||
|
// Use namespace of embed to ensure same namespaced embed are displayed with same theme. This allows different embeds on the same website to be themed differently
|
||||||
|
// One such example is our Embeds Demo and Testing page at http://localhost:3100
|
||||||
|
// Having `getEmbedNamespace` defined on window before react initializes the app, ensures that embedNamespace is available on the first mount and can be used as part of storageKey
|
||||||
|
const embedNamespace = typeof window !== "undefined" ? window.getEmbedNamespace() : null;
|
||||||
|
const storageKey = typeof embedNamespace === "string" ? `embed-theme-${embedNamespace}` : "theme";
|
||||||
|
|
||||||
const RemainingProviders = (
|
const RemainingProviders = (
|
||||||
<SessionProvider session={session || undefined}>
|
<EventCollectionProvider options={{ apiPath: "/api/collect-events" }}>
|
||||||
<CustomI18nextProvider {...props}>{props.children}</CustomI18nextProvider>
|
<ContractsProvider>
|
||||||
</SessionProvider>
|
<SessionProvider session={session || undefined}>
|
||||||
|
<CustomI18nextProvider {...props}>
|
||||||
|
{/* color-scheme makes background:transparent not work which is required by embed. We need to ensure next-theme adds color-scheme to `body` instead of `html`(https://github.com/pacocoursey/next-themes/blob/main/src/index.tsx#L74). Once that's done we can enable color-scheme support */}
|
||||||
|
<ThemeProvider
|
||||||
|
enableColorScheme={false}
|
||||||
|
storageKey={storageKey}
|
||||||
|
forcedTheme={forcedTheme}
|
||||||
|
attribute="class">
|
||||||
|
{props.children}
|
||||||
|
</ThemeProvider>
|
||||||
|
</CustomI18nextProvider>
|
||||||
|
</SessionProvider>
|
||||||
|
</ContractsProvider>
|
||||||
|
</EventCollectionProvider>
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isPublicPage) {
|
if (isPublicPage) {
|
||||||
|
|
|
@ -1,19 +1,24 @@
|
||||||
|
/** @deprecated use zod instead */
|
||||||
export function asStringOrNull(str: unknown) {
|
export function asStringOrNull(str: unknown) {
|
||||||
return typeof str === "string" ? str : null;
|
return typeof str === "string" ? str : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @deprecated use zod instead */
|
||||||
export function asStringOrUndefined(str: unknown) {
|
export function asStringOrUndefined(str: unknown) {
|
||||||
return typeof str === "string" ? str : undefined;
|
return typeof str === "string" ? str : undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @deprecated use zod instead */
|
||||||
export function asNumberOrUndefined(str: unknown) {
|
export function asNumberOrUndefined(str: unknown) {
|
||||||
return typeof str === "string" ? parseInt(str) : undefined;
|
return typeof str === "string" ? parseInt(str) : undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @deprecated use zod instead */
|
||||||
export function asNumberOrThrow(str: unknown) {
|
export function asNumberOrThrow(str: unknown) {
|
||||||
return parseInt(asStringOrThrow(str));
|
return parseInt(asStringOrThrow(str));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @deprecated use zod instead */
|
||||||
export function asStringOrThrow(str: unknown): string {
|
export function asStringOrThrow(str: unknown): string {
|
||||||
if (typeof str !== "string") {
|
if (typeof str !== "string") {
|
||||||
throw new Error(`Expected "string" - got ${typeof str}`);
|
throw new Error(`Expected "string" - got ${typeof str}`);
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
// handles logic related to user clock display using 24h display / timeZone options.
|
// handles logic related to user clock display using 24h display / timeZone options.
|
||||||
import dayjs from "@calcom/dayjs";
|
import dayjs from "@calcom/dayjs";
|
||||||
|
import { isBrowserLocale24h } from "@calcom/lib/timeFormat";
|
||||||
import { localStorage } from "@calcom/lib/webstorage";
|
import { localStorage } from "@calcom/lib/webstorage";
|
||||||
|
|
||||||
import { isBrowserLocale24h } from "./timeFormat";
|
|
||||||
|
|
||||||
interface TimeOptions {
|
interface TimeOptions {
|
||||||
is24hClock: boolean;
|
is24hClock: boolean;
|
||||||
inviteeTimeZone: string;
|
inviteeTimeZone: string;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import parser from "accept-language-parser";
|
import parser from "accept-language-parser";
|
||||||
import { IncomingMessage } from "http";
|
import { IncomingMessage } from "http";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
import { Maybe } from "@calcom/trpc/server";
|
import { Maybe } from "@calcom/trpc/server";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
import { i18n } from "../../../next-i18next.config";
|
import { i18n } from "../../../next-i18next.config";
|
||||||
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
import { User } from "@prisma/client";
|
|
||||||
|
|
||||||
import dayjs from "@calcom/dayjs";
|
|
||||||
|
|
||||||
export const ONBOARDING_INTRODUCED_AT = dayjs("September 1 2021").toISOString();
|
|
||||||
|
|
||||||
export const ONBOARDING_NEXT_REDIRECT = {
|
|
||||||
redirect: {
|
|
||||||
permanent: false,
|
|
||||||
destination: "/getting-started",
|
|
||||||
},
|
|
||||||
} as const;
|
|
||||||
|
|
||||||
export const shouldShowOnboarding = (user: Pick<User, "createdDate" | "completedOnboarding">) => {
|
|
||||||
return !user.completedOnboarding && dayjs(user.createdDate).isAfter(ONBOARDING_INTRODUCED_AT);
|
|
||||||
};
|
|
|
@ -1,36 +0,0 @@
|
||||||
import { TFunction } from "next-i18next";
|
|
||||||
|
|
||||||
import { LocationType } from "./location";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use this function for translating event location to a readable string
|
|
||||||
* @param location
|
|
||||||
* @param t
|
|
||||||
* @returns string
|
|
||||||
*/
|
|
||||||
export const LocationOptionsToString = (location: string, t: TFunction) => {
|
|
||||||
switch (location) {
|
|
||||||
case LocationType.InPerson:
|
|
||||||
return t("set_address_place");
|
|
||||||
case LocationType.Link:
|
|
||||||
return t("set_link_meeting");
|
|
||||||
case LocationType.Phone:
|
|
||||||
return t("cal_invitee_phone_number_scheduling");
|
|
||||||
case LocationType.GoogleMeet:
|
|
||||||
return t("cal_provide_google_meet_location");
|
|
||||||
case LocationType.Zoom:
|
|
||||||
return t("cal_provide_zoom_meeting_url");
|
|
||||||
case LocationType.Daily:
|
|
||||||
return t("cal_provide_video_meeting_url");
|
|
||||||
case LocationType.Jitsi:
|
|
||||||
return t("cal_provide_jitsi_meeting_url");
|
|
||||||
case LocationType.Huddle01:
|
|
||||||
return t("cal_provide_huddle01_meeting_url");
|
|
||||||
case LocationType.Tandem:
|
|
||||||
return t("cal_provide_tandem_meeting_url");
|
|
||||||
case LocationType.Teams:
|
|
||||||
return t("cal_provide_teams_meeting_url");
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
};
|
|
|
@ -2,10 +2,9 @@ import { I18n } from "next-i18next";
|
||||||
import { RRule } from "rrule";
|
import { RRule } from "rrule";
|
||||||
|
|
||||||
import dayjs, { Dayjs } from "@calcom/dayjs";
|
import dayjs, { Dayjs } from "@calcom/dayjs";
|
||||||
|
import { detectBrowserTimeFormat } from "@calcom/lib/timeFormat";
|
||||||
import { inferQueryOutput } from "@calcom/trpc/react";
|
import { inferQueryOutput } from "@calcom/trpc/react";
|
||||||
import { RecurringEvent } from "@calcom/types/Calendar";
|
import type { RecurringEvent } from "@calcom/types/Calendar";
|
||||||
|
|
||||||
import { detectBrowserTimeFormat } from "@lib/timeFormat";
|
|
||||||
|
|
||||||
import { parseZone } from "./parseZone";
|
import { parseZone } from "./parseZone";
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { WebhookTriggerEvents } from "@prisma/client";
|
import { WebhookTriggerEvents } from "@prisma/client";
|
||||||
|
|
||||||
import prisma from "@lib/prisma";
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
export type GetSubscriberOptions = {
|
export type GetSubscriberOptions = {
|
||||||
userId: number;
|
userId: number;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { collectEvents } from "next-collect/server";
|
import { collectEvents } from "next-collect/server";
|
||||||
|
|
||||||
import { extendEventData, nextCollectBasicSettings } from "@lib/telemetry";
|
import { extendEventData, nextCollectBasicSettings } from "@calcom/lib/telemetry";
|
||||||
|
|
||||||
export default collectEvents({
|
export default collectEvents({
|
||||||
...nextCollectBasicSettings,
|
...nextCollectBasicSettings,
|
||||||
|
|
|
@ -4,14 +4,13 @@ const withTM = require("next-transpile-modules")([
|
||||||
"@calcom/app-store",
|
"@calcom/app-store",
|
||||||
"@calcom/core",
|
"@calcom/core",
|
||||||
"@calcom/dayjs",
|
"@calcom/dayjs",
|
||||||
"@calcom/ee",
|
|
||||||
"@calcom/emails",
|
"@calcom/emails",
|
||||||
"@calcom/embed-core",
|
"@calcom/embed-core",
|
||||||
"@calcom/embed-react",
|
"@calcom/embed-react",
|
||||||
"@calcom/embed-snippet",
|
"@calcom/embed-snippet",
|
||||||
|
"@calcom/features",
|
||||||
"@calcom/lib",
|
"@calcom/lib",
|
||||||
"@calcom/prisma",
|
"@calcom/prisma",
|
||||||
"@calcom/stripe",
|
|
||||||
"@calcom/trpc",
|
"@calcom/trpc",
|
||||||
"@calcom/ui",
|
"@calcom/ui",
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -28,17 +28,16 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@boxyhq/saml-jackson": "0.3.6",
|
"@boxyhq/saml-jackson": "0.3.6",
|
||||||
"@calcom/app-store-cli": "*",
|
|
||||||
"@calcom/app-store": "*",
|
"@calcom/app-store": "*",
|
||||||
|
"@calcom/app-store-cli": "*",
|
||||||
"@calcom/core": "*",
|
"@calcom/core": "*",
|
||||||
"@calcom/dayjs": "*",
|
"@calcom/dayjs": "*",
|
||||||
"@calcom/ee": "*",
|
"@calcom/features": "*",
|
||||||
"@calcom/embed-core": "*",
|
"@calcom/embed-core": "*",
|
||||||
"@calcom/embed-react": "*",
|
"@calcom/embed-react": "*",
|
||||||
"@calcom/embed-snippet": "*",
|
"@calcom/embed-snippet": "*",
|
||||||
"@calcom/lib": "*",
|
"@calcom/lib": "*",
|
||||||
"@calcom/prisma": "*",
|
"@calcom/prisma": "*",
|
||||||
"@calcom/stripe": "*",
|
|
||||||
"@calcom/trpc": "*",
|
"@calcom/trpc": "*",
|
||||||
"@calcom/tsconfig": "*",
|
"@calcom/tsconfig": "*",
|
||||||
"@calcom/ui": "*",
|
"@calcom/ui": "*",
|
||||||
|
@ -46,7 +45,7 @@
|
||||||
"@glidejs/glide": "^3.5.2",
|
"@glidejs/glide": "^3.5.2",
|
||||||
"@heroicons/react": "^1.0.6",
|
"@heroicons/react": "^1.0.6",
|
||||||
"@hookform/error-message": "^2.0.0",
|
"@hookform/error-message": "^2.0.0",
|
||||||
"@hookform/resolvers": "^2.8.9",
|
"@hookform/resolvers": "^2.9.7",
|
||||||
"@metamask/providers": "^8.1.1",
|
"@metamask/providers": "^8.1.1",
|
||||||
"@next-auth/prisma-adapter": "^1.0.3",
|
"@next-auth/prisma-adapter": "^1.0.3",
|
||||||
"@next/bundle-analyzer": "12.1.6",
|
"@next/bundle-analyzer": "12.1.6",
|
||||||
|
|
|
@ -14,6 +14,7 @@ import {
|
||||||
useEmbedStyles,
|
useEmbedStyles,
|
||||||
useIsEmbed,
|
useIsEmbed,
|
||||||
} from "@calcom/embed-core/embed-iframe";
|
} from "@calcom/embed-core/embed-iframe";
|
||||||
|
import type { CryptoSectionProps } from "@calcom/features/ee/web3/components/CryptoSection";
|
||||||
import CustomBranding from "@calcom/lib/CustomBranding";
|
import CustomBranding from "@calcom/lib/CustomBranding";
|
||||||
import defaultEvents, {
|
import defaultEvents, {
|
||||||
getDynamicEventDescription,
|
getDynamicEventDescription,
|
||||||
|
@ -22,13 +23,13 @@ import defaultEvents, {
|
||||||
getUsernameSlugLink,
|
getUsernameSlugLink,
|
||||||
} from "@calcom/lib/defaultEvents";
|
} from "@calcom/lib/defaultEvents";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import { baseEventTypeSelect } from "@calcom/prisma/selects/event-types";
|
import useTheme from "@calcom/lib/hooks/useTheme";
|
||||||
|
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
import { baseEventTypeSelect } from "@calcom/prisma/selects";
|
||||||
import { BadgeCheckIcon, Icon } from "@calcom/ui/Icon";
|
import { BadgeCheckIcon, Icon } from "@calcom/ui/Icon";
|
||||||
|
|
||||||
import { useExposePlanGlobally } from "@lib/hooks/useExposePlanGlobally";
|
import { useExposePlanGlobally } from "@lib/hooks/useExposePlanGlobally";
|
||||||
import useTheme from "@lib/hooks/useTheme";
|
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@lib/telemetry";
|
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||||
|
|
||||||
import AvatarGroup from "@components/ui/AvatarGroup";
|
import AvatarGroup from "@components/ui/AvatarGroup";
|
||||||
|
@ -38,7 +39,9 @@ import { ssrInit } from "@server/lib/ssr";
|
||||||
|
|
||||||
const EventTypeDescription = dynamic(() => import("@components/eventtype/EventTypeDescription"));
|
const EventTypeDescription = dynamic(() => import("@components/eventtype/EventTypeDescription"));
|
||||||
const HeadSeo = dynamic(() => import("@components/seo/head-seo"));
|
const HeadSeo = dynamic(() => import("@components/seo/head-seo"));
|
||||||
const CryptoSection = dynamic(() => import("../ee/components/web3/CryptoSection"));
|
const CryptoSection = dynamic<CryptoSectionProps>(
|
||||||
|
() => import("@calcom/features/ee/web3/components/CryptoSection")
|
||||||
|
);
|
||||||
|
|
||||||
interface EvtsToVerify {
|
interface EvtsToVerify {
|
||||||
[evtId: string]: boolean;
|
[evtId: string]: boolean;
|
||||||
|
|
|
@ -11,10 +11,10 @@ import {
|
||||||
} from "@calcom/lib/defaultEvents";
|
} from "@calcom/lib/defaultEvents";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import { bookEventTypeSelect } from "@calcom/prisma";
|
import { bookEventTypeSelect } from "@calcom/prisma";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { asStringOrNull, asStringOrThrow } from "@lib/asStringOrNull";
|
import { asStringOrNull, asStringOrThrow } from "@lib/asStringOrNull";
|
||||||
import getBooking, { GetBookingType } from "@lib/getBooking";
|
import getBooking, { GetBookingType } from "@lib/getBooking";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||||
|
|
||||||
import BookingPage from "@components/booking/pages/BookingPage";
|
import BookingPage from "@components/booking/pages/BookingPage";
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import { EventCollectionProvider } from "next-collect/client";
|
|
||||||
import { DefaultSeo } from "next-seo";
|
import { DefaultSeo } from "next-seo";
|
||||||
import { ThemeProvider } from "next-themes";
|
|
||||||
import Head from "next/head";
|
import Head from "next/head";
|
||||||
import superjson from "superjson";
|
import superjson from "superjson";
|
||||||
|
|
||||||
import "@calcom/embed-core/src/embed-iframe";
|
import "@calcom/embed-core/src/embed-iframe";
|
||||||
|
import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired";
|
||||||
import { httpBatchLink } from "@calcom/trpc/client/links/httpBatchLink";
|
import { httpBatchLink } from "@calcom/trpc/client/links/httpBatchLink";
|
||||||
import { httpLink } from "@calcom/trpc/client/links/httpLink";
|
import { httpLink } from "@calcom/trpc/client/links/httpLink";
|
||||||
import { loggerLink } from "@calcom/trpc/client/links/loggerLink";
|
import { loggerLink } from "@calcom/trpc/client/links/loggerLink";
|
||||||
|
@ -13,14 +12,12 @@ import { withTRPC } from "@calcom/trpc/next";
|
||||||
import type { TRPCClientErrorLike } from "@calcom/trpc/react";
|
import type { TRPCClientErrorLike } from "@calcom/trpc/react";
|
||||||
import { Maybe } from "@calcom/trpc/server";
|
import { Maybe } from "@calcom/trpc/server";
|
||||||
import type { AppRouter } from "@calcom/trpc/server/routers/_app";
|
import type { AppRouter } from "@calcom/trpc/server/routers/_app";
|
||||||
import LicenseRequired from "@ee/components/LicenseRequired";
|
|
||||||
|
|
||||||
import AppProviders, { AppProps } from "@lib/app-providers";
|
import AppProviders, { AppProps } from "@lib/app-providers";
|
||||||
import { seoConfig } from "@lib/config/next-seo.config";
|
import { seoConfig } from "@lib/config/next-seo.config";
|
||||||
|
|
||||||
import I18nLanguageHandler from "@components/I18nLanguageHandler";
|
import I18nLanguageHandler from "@components/I18nLanguageHandler";
|
||||||
|
|
||||||
import { ContractsProvider } from "../contexts/contractsContext";
|
|
||||||
import "../styles/fonts.css";
|
import "../styles/fonts.css";
|
||||||
import "../styles/globals.css";
|
import "../styles/globals.css";
|
||||||
|
|
||||||
|
@ -32,50 +29,22 @@ function MyApp(props: AppProps) {
|
||||||
} else if (router.pathname === "/500") {
|
} else if (router.pathname === "/500") {
|
||||||
pageStatus = "500";
|
pageStatus = "500";
|
||||||
}
|
}
|
||||||
|
|
||||||
let isThemeSupported = null;
|
|
||||||
|
|
||||||
if (typeof Component.isThemeSupported === "function") {
|
|
||||||
isThemeSupported = Component.isThemeSupported({ router });
|
|
||||||
} else {
|
|
||||||
isThemeSupported = Component.isThemeSupported;
|
|
||||||
}
|
|
||||||
|
|
||||||
const forcedTheme = isThemeSupported ? undefined : "light";
|
|
||||||
|
|
||||||
// Use namespace of embed to ensure same namespaced embed are displayed with same theme. This allows different embeds on the same website to be themed differently
|
|
||||||
// One such example is our Embeds Demo and Testing page at http://localhost:3100
|
|
||||||
// Having `getEmbedNamespace` defined on window before react initializes the app, ensures that embedNamespace is available on the first mount and can be used as part of storageKey
|
|
||||||
const embedNamespace = typeof window !== "undefined" ? window.getEmbedNamespace() : null;
|
|
||||||
const storageKey = typeof embedNamespace === "string" ? `embed-theme-${embedNamespace}` : "theme";
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<EventCollectionProvider options={{ apiPath: "/api/collect-events" }}>
|
<AppProviders {...props}>
|
||||||
<ContractsProvider>
|
<DefaultSeo {...seoConfig.defaultNextSeo} />
|
||||||
<AppProviders {...props}>
|
<I18nLanguageHandler />
|
||||||
<DefaultSeo {...seoConfig.defaultNextSeo} />
|
<Head>
|
||||||
<I18nLanguageHandler />
|
<script dangerouslySetInnerHTML={{ __html: `window.CalComPageStatus = '${pageStatus}'` }} />
|
||||||
<Head>
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
|
||||||
<script dangerouslySetInnerHTML={{ __html: `window.CalComPageStatus = '${pageStatus}'` }} />
|
</Head>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
|
{Component.requiresLicense ? (
|
||||||
</Head>
|
<LicenseRequired>
|
||||||
{/* color-scheme makes background:transparent not work which is required by embed. We need to ensure next-theme adds color-scheme to `body` instead of `html`(https://github.com/pacocoursey/next-themes/blob/main/src/index.tsx#L74). Once that's done we can enable color-scheme support */}
|
<Component {...pageProps} err={err} />
|
||||||
<ThemeProvider
|
</LicenseRequired>
|
||||||
enableColorScheme={false}
|
) : (
|
||||||
storageKey={storageKey}
|
<Component {...pageProps} err={err} />
|
||||||
forcedTheme={forcedTheme}
|
)}
|
||||||
attribute="class">
|
</AppProviders>
|
||||||
{Component.requiresLicense ? (
|
|
||||||
<LicenseRequired>
|
|
||||||
<Component {...pageProps} err={err} />
|
|
||||||
</LicenseRequired>
|
|
||||||
) : (
|
|
||||||
<Component {...pageProps} err={err} />
|
|
||||||
)}
|
|
||||||
</ThemeProvider>
|
|
||||||
</AppProviders>
|
|
||||||
</ContractsProvider>
|
|
||||||
</EventCollectionProvider>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,16 +10,16 @@ import nodemailer, { TransportOptions } from "nodemailer";
|
||||||
import { authenticator } from "otplib";
|
import { authenticator } from "otplib";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
|
|
||||||
import checkLicense from "@calcom/ee/server/checkLicense";
|
import checkLicense from "@calcom/features/ee/common/server/checkLicense";
|
||||||
|
import ImpersonationProvider from "@calcom/features/ee/impersonation/lib/ImpersonationProvider";
|
||||||
import { WEBSITE_URL } from "@calcom/lib/constants";
|
import { WEBSITE_URL } from "@calcom/lib/constants";
|
||||||
import { symmetricDecrypt } from "@calcom/lib/crypto";
|
import { symmetricDecrypt } from "@calcom/lib/crypto";
|
||||||
import { defaultCookies } from "@calcom/lib/default-cookies";
|
import { defaultCookies } from "@calcom/lib/default-cookies";
|
||||||
import { serverConfig } from "@calcom/lib/serverConfig";
|
import { serverConfig } from "@calcom/lib/serverConfig";
|
||||||
import ImpersonationProvider from "@ee/lib/impersonation/ImpersonationProvider";
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { ErrorCode, verifyPassword } from "@lib/auth";
|
import { ErrorCode, verifyPassword } from "@lib/auth";
|
||||||
import CalComAdapter from "@lib/auth/next-auth-custom-adapter";
|
import CalComAdapter from "@lib/auth/next-auth-custom-adapter";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import { randomString } from "@lib/random";
|
import { randomString } from "@lib/random";
|
||||||
import { hostedCal, isSAMLLoginEnabled, samlLoginUrl } from "@lib/saml";
|
import { hostedCal, isSAMLLoginEnabled, samlLoginUrl } from "@lib/saml";
|
||||||
import slugify from "@lib/slugify";
|
import slugify from "@lib/slugify";
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import { IdentityProvider } from "@prisma/client";
|
import { IdentityProvider } from "@prisma/client";
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
import { ErrorCode, hashPassword, verifyPassword } from "../../../lib/auth";
|
import { ErrorCode, hashPassword, verifyPassword } from "../../../lib/auth";
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import { NextApiRequest, NextApiResponse } from "next";
|
import { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { hashPassword } from "@lib/auth";
|
import { hashPassword } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
if (req.method !== "POST") {
|
if (req.method !== "POST") {
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import { IdentityProvider } from "@prisma/client";
|
import { IdentityProvider } from "@prisma/client";
|
||||||
import { NextApiRequest, NextApiResponse } from "next";
|
import { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { hashPassword } from "@lib/auth";
|
import { hashPassword } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import slugify from "@lib/slugify";
|
import slugify from "@lib/slugify";
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import { NextApiRequest, NextApiResponse } from "next";
|
import { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { ErrorCode, getSession, verifyPassword } from "@lib/auth";
|
import { ErrorCode, getSession, verifyPassword } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
if (req.method !== "POST") {
|
if (req.method !== "POST") {
|
||||||
|
|
|
@ -2,9 +2,9 @@ import { NextApiRequest, NextApiResponse } from "next";
|
||||||
import { authenticator } from "otplib";
|
import { authenticator } from "otplib";
|
||||||
|
|
||||||
import { symmetricDecrypt } from "@calcom/lib/crypto";
|
import { symmetricDecrypt } from "@calcom/lib/crypto";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { ErrorCode, getSession } from "@lib/auth";
|
import { ErrorCode, getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
if (req.method !== "POST") {
|
if (req.method !== "POST") {
|
||||||
|
|
|
@ -4,9 +4,9 @@ import { authenticator } from "otplib";
|
||||||
import qrcode from "qrcode";
|
import qrcode from "qrcode";
|
||||||
|
|
||||||
import { symmetricEncrypt } from "@calcom/lib/crypto";
|
import { symmetricEncrypt } from "@calcom/lib/crypto";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { ErrorCode, getSession, verifyPassword } from "@lib/auth";
|
import { ErrorCode, getSession, verifyPassword } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
if (req.method !== "POST") {
|
if (req.method !== "POST") {
|
||||||
|
|
|
@ -2,9 +2,9 @@ import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
import { getCalendarCredentials, getConnectedCalendars } from "@calcom/core/CalendarManager";
|
import { getCalendarCredentials, getConnectedCalendars } from "@calcom/core/CalendarManager";
|
||||||
import notEmpty from "@calcom/lib/notEmpty";
|
import notEmpty from "@calcom/lib/notEmpty";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getSession({ req });
|
const session = await getSession({ req });
|
||||||
|
|
|
@ -2,15 +2,15 @@ import { Booking, BookingStatus, Prisma, SchedulingType, User } from "@prisma/cl
|
||||||
import type { NextApiRequest } from "next";
|
import type { NextApiRequest } from "next";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
|
import { refund } from "@calcom/app-store/stripepayment/lib/server";
|
||||||
import EventManager from "@calcom/core/EventManager";
|
import EventManager from "@calcom/core/EventManager";
|
||||||
import { sendDeclinedEmails, sendScheduledEmails } from "@calcom/emails";
|
import { sendDeclinedEmails, sendScheduledEmails } from "@calcom/emails";
|
||||||
|
import { scheduleWorkflowReminders } from "@calcom/features/ee/workflows/lib/reminders/reminderScheduler";
|
||||||
import { isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib";
|
import { isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib";
|
||||||
import logger from "@calcom/lib/logger";
|
import logger from "@calcom/lib/logger";
|
||||||
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
|
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
|
||||||
import prisma from "@calcom/prisma";
|
import prisma from "@calcom/prisma";
|
||||||
import { refund } from "@calcom/stripe/server";
|
|
||||||
import type { AdditionalInformation, CalendarEvent } from "@calcom/types/Calendar";
|
import type { AdditionalInformation, CalendarEvent } from "@calcom/types/Calendar";
|
||||||
import { scheduleWorkflowReminders } from "@ee/lib/workflows/reminders/reminderScheduler";
|
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import { HttpError } from "@lib/core/http/error";
|
import { HttpError } from "@lib/core/http/error";
|
||||||
|
|
|
@ -5,6 +5,7 @@ import rrule from "rrule";
|
||||||
import short from "short-uuid";
|
import short from "short-uuid";
|
||||||
import { v5 as uuidv5 } from "uuid";
|
import { v5 as uuidv5 } from "uuid";
|
||||||
|
|
||||||
|
import { handlePayment } from "@calcom/app-store/stripepayment/lib/server";
|
||||||
import EventManager from "@calcom/core/EventManager";
|
import EventManager from "@calcom/core/EventManager";
|
||||||
import { getUserAvailability } from "@calcom/core/getUserAvailability";
|
import { getUserAvailability } from "@calcom/core/getUserAvailability";
|
||||||
import dayjs from "@calcom/dayjs";
|
import dayjs from "@calcom/dayjs";
|
||||||
|
@ -15,6 +16,8 @@ import {
|
||||||
sendScheduledEmails,
|
sendScheduledEmails,
|
||||||
sendScheduledSeatsEmails,
|
sendScheduledSeatsEmails,
|
||||||
} from "@calcom/emails";
|
} from "@calcom/emails";
|
||||||
|
import verifyAccount from "@calcom/features/ee/web3/utils/verifyAccount";
|
||||||
|
import { scheduleWorkflowReminders } from "@calcom/features/ee/workflows/lib/reminders/reminderScheduler";
|
||||||
import { getLuckyUsers, isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib";
|
import { getLuckyUsers, isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib";
|
||||||
import { getDefaultEvent, getGroupName, getUsernameList } from "@calcom/lib/defaultEvents";
|
import { getDefaultEvent, getGroupName, getUsernameList } from "@calcom/lib/defaultEvents";
|
||||||
import { getErrorFromUnknown } from "@calcom/lib/errors";
|
import { getErrorFromUnknown } from "@calcom/lib/errors";
|
||||||
|
@ -23,11 +26,9 @@ import logger from "@calcom/lib/logger";
|
||||||
import { defaultResponder } from "@calcom/lib/server";
|
import { defaultResponder } from "@calcom/lib/server";
|
||||||
import prisma, { userSelect } from "@calcom/prisma";
|
import prisma, { userSelect } from "@calcom/prisma";
|
||||||
import { extendedBookingCreateBody } from "@calcom/prisma/zod-utils";
|
import { extendedBookingCreateBody } from "@calcom/prisma/zod-utils";
|
||||||
import { handlePayment } from "@calcom/stripe/server";
|
|
||||||
import type { BufferedBusyTime } from "@calcom/types/BufferedBusyTime";
|
import type { BufferedBusyTime } from "@calcom/types/BufferedBusyTime";
|
||||||
import type { AdditionalInformation, CalendarEvent } from "@calcom/types/Calendar";
|
import type { AdditionalInformation, CalendarEvent } from "@calcom/types/Calendar";
|
||||||
import type { EventResult, PartialReference } from "@calcom/types/EventManager";
|
import type { EventResult, PartialReference } from "@calcom/types/EventManager";
|
||||||
import { scheduleWorkflowReminders } from "@ee/lib/workflows/reminders/reminderScheduler";
|
|
||||||
|
|
||||||
import { HttpError } from "@lib/core/http/error";
|
import { HttpError } from "@lib/core/http/error";
|
||||||
import { ensureArray } from "@lib/ensureArray";
|
import { ensureArray } from "@lib/ensureArray";
|
||||||
|
@ -37,8 +38,6 @@ import getSubscribers from "@lib/webhooks/subscriptions";
|
||||||
|
|
||||||
import { getTranslation } from "@server/lib/i18n";
|
import { getTranslation } from "@server/lib/i18n";
|
||||||
|
|
||||||
import verifyAccount from "../../../web3/utils/verifyAccount";
|
|
||||||
|
|
||||||
const translator = short();
|
const translator = short();
|
||||||
const log = logger.getChildLogger({ prefix: ["[api] book:user"] });
|
const log = logger.getChildLogger({ prefix: ["[api] book:user"] });
|
||||||
|
|
||||||
|
|
|
@ -20,9 +20,9 @@ import dayjs from "@calcom/dayjs";
|
||||||
import { sendRequestRescheduleEmail } from "@calcom/emails";
|
import { sendRequestRescheduleEmail } from "@calcom/emails";
|
||||||
import { isPrismaObjOrUndefined } from "@calcom/lib";
|
import { isPrismaObjOrUndefined } from "@calcom/lib";
|
||||||
import { getTranslation } from "@calcom/lib/server/i18n";
|
import { getTranslation } from "@calcom/lib/server/i18n";
|
||||||
import { CalendarEvent, Person } from "@calcom/types/Calendar";
|
import prisma from "@calcom/prisma";
|
||||||
|
import type { CalendarEvent, Person } from "@calcom/types/Calendar";
|
||||||
|
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import sendPayload from "@lib/webhooks/sendPayload";
|
import sendPayload from "@lib/webhooks/sendPayload";
|
||||||
import getWebhooks from "@lib/webhooks/subscriptions";
|
import getWebhooks from "@lib/webhooks/subscriptions";
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,21 @@
|
||||||
import {
|
import { BookingStatus, Prisma, PrismaPromise, WebhookTriggerEvents, WorkflowMethods } from "@prisma/client";
|
||||||
BookingStatus,
|
|
||||||
Credential,
|
|
||||||
Prisma,
|
|
||||||
PrismaPromise,
|
|
||||||
WebhookTriggerEvents,
|
|
||||||
WorkflowMethods,
|
|
||||||
} from "@prisma/client";
|
|
||||||
import async from "async";
|
|
||||||
import { NextApiRequest, NextApiResponse } from "next";
|
import { NextApiRequest, NextApiResponse } from "next";
|
||||||
import z from "zod";
|
import z from "zod";
|
||||||
|
|
||||||
import { getCalendar } from "@calcom/app-store/_utils/getCalendar";
|
import { getCalendar } from "@calcom/app-store/_utils/getCalendar";
|
||||||
import { FAKE_DAILY_CREDENTIAL } from "@calcom/app-store/dailyvideo/lib/VideoApiAdapter";
|
import { FAKE_DAILY_CREDENTIAL } from "@calcom/app-store/dailyvideo/lib/VideoApiAdapter";
|
||||||
|
import { refund } from "@calcom/app-store/stripepayment/lib/server";
|
||||||
import { deleteMeeting } from "@calcom/core/videoClient";
|
import { deleteMeeting } from "@calcom/core/videoClient";
|
||||||
import dayjs from "@calcom/dayjs";
|
import dayjs from "@calcom/dayjs";
|
||||||
import { sendCancelledEmails } from "@calcom/emails";
|
import { sendCancelledEmails } from "@calcom/emails";
|
||||||
|
import { deleteScheduledEmailReminder } from "@calcom/features/ee/workflows/lib/reminders/emailReminderManager";
|
||||||
|
import { sendCancelledReminders } from "@calcom/features/ee/workflows/lib/reminders/reminderScheduler";
|
||||||
|
import { deleteScheduledSMSReminder } from "@calcom/features/ee/workflows/lib/reminders/smsReminderManager";
|
||||||
import { isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib";
|
import { isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib";
|
||||||
import { HttpError } from "@calcom/lib/http-error";
|
import { HttpError } from "@calcom/lib/http-error";
|
||||||
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
|
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
|
||||||
import prisma, { bookingMinimalSelect } from "@calcom/prisma";
|
import prisma, { bookingMinimalSelect } from "@calcom/prisma";
|
||||||
import { refund } from "@calcom/stripe/server";
|
|
||||||
import type { CalendarEvent } from "@calcom/types/Calendar";
|
import type { CalendarEvent } from "@calcom/types/Calendar";
|
||||||
import { deleteScheduledEmailReminder } from "@ee/lib/workflows/reminders/emailReminderManager";
|
|
||||||
import { sendCancelledReminders } from "@ee/lib/workflows/reminders/reminderScheduler";
|
|
||||||
import { deleteScheduledSMSReminder } from "@ee/lib/workflows/reminders/smsReminderManager";
|
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import sendPayload from "@lib/webhooks/sendPayload";
|
import sendPayload from "@lib/webhooks/sendPayload";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { nextEventsCollectApi } from "next-collect/server";
|
import { nextEventsCollectApi } from "next-collect/server";
|
||||||
|
|
||||||
import { extendEventData, nextCollectBasicSettings } from "@lib/telemetry";
|
import { extendEventData, nextCollectBasicSettings } from "@calcom/lib/telemetry";
|
||||||
|
|
||||||
export default nextEventsCollectApi({
|
export default nextEventsCollectApi({
|
||||||
...nextCollectBasicSettings,
|
...nextCollectBasicSettings,
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
export { default } from "@ee/pages/api/cron/workflows/scheduleEmailReminders";
|
export { default } from "@calcom/features/ee/workflows/api/scheduleEmailReminders";
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
export { default } from "@ee/pages/api/cron/workflows/scheduleSMSReminders";
|
export { default } from "@calcom/features/ee/workflows/api/scheduleSMSReminders";
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getSession({ req: req });
|
const session = await getSession({ req: req });
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { Prisma } from "@prisma/client";
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
import { getSession } from "next-auth/react";
|
import { getSession } from "next-auth/react";
|
||||||
|
|
||||||
import prisma from "@lib/prisma";
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getSession({ req: req });
|
const session = await getSession({ req: req });
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import { BookingStatus, Prisma } from "@prisma/client";
|
import { BookingStatus, Prisma } from "@prisma/client";
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
if (!["GET", "DELETE"].includes(req.method || "")) {
|
if (!["GET", "DELETE"].includes(req.method || "")) {
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
export { default, config } from "@ee/pages/api/integrations/stripepayment/webhook";
|
export { default, config } from "@calcom/features/ee/payments/api/webhook";
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import { defaultAvatarSrc } from "@lib/profile";
|
import { defaultAvatarSrc } from "@lib/profile";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import { getAvailabilityFromSchedule } from "@lib/availability";
|
import { getAvailabilityFromSchedule } from "@lib/availability";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getSession({ req });
|
const session = await getSession({ req });
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import slugify from "@lib/slugify";
|
import slugify from "@lib/slugify";
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
import { getTeamWithMembers } from "@calcom/lib/server/queries/teams";
|
import { getTeamWithMembers } from "@calcom/lib/server/queries/teams";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getSession({ req: req });
|
const session = await getSession({ req: req });
|
||||||
|
|
|
@ -3,10 +3,10 @@ import { randomBytes } from "crypto";
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
import { sendTeamInviteEmail } from "@calcom/emails";
|
import { sendTeamInviteEmail } from "@calcom/emails";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import { BASE_URL } from "@lib/config/constants";
|
import { BASE_URL } from "@lib/config/constants";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import slugify from "@lib/slugify";
|
import slugify from "@lib/slugify";
|
||||||
|
|
||||||
import { getTranslation } from "@server/lib/i18n";
|
import { getTranslation } from "@server/lib/i18n";
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getSession({ req });
|
const session = await getSession({ req });
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
// @deprecated - USE TRPC
|
// @deprecated - USE TRPC
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
export { default } from "@ee/pages/api/teams/[team]/upgrade";
|
export { default } from "@calcom/features/ee/teams/api/upgrade";
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
import { getStripeCustomerId } from "@calcom/stripe/customer";
|
import { getStripeCustomerId } from "@calcom/app-store/stripepayment/lib/customer";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import { WEBSITE_URL } from "@lib/config/constants";
|
import { WEBSITE_URL } from "@lib/config/constants";
|
||||||
import { HttpError as HttpCode } from "@lib/core/http/error";
|
import { HttpError as HttpCode } from "@lib/core/http/error";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getSession({ req });
|
const session = await getSession({ req });
|
||||||
|
|
|
@ -2,8 +2,9 @@ import { pick } from "lodash";
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
import z from "zod";
|
import z from "zod";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getSession({ req });
|
const session = await getSession({ req });
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import crypto from "crypto";
|
import crypto from "crypto";
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
import { getPlaceholderAvatar } from "@lib/getPlaceholderAvatar";
|
import { getPlaceholderAvatar } from "@calcom/lib/getPlaceholderAvatar";
|
||||||
import prisma from "@lib/prisma";
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { defaultAvatarSrc } from "@lib/profile";
|
import { defaultAvatarSrc } from "@lib/profile";
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
import { deleteStripeCustomer } from "@calcom/stripe/customer";
|
import { deleteStripeCustomer } from "@calcom/app-store/stripepayment/lib/customer";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getSession({ req });
|
const session = await getSession({ req });
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getSession({ req: req });
|
const session = await getSession({ req: req });
|
||||||
|
|
|
@ -2,8 +2,9 @@ import { PrismaClientKnownRequestError } from "@prisma/client/runtime";
|
||||||
import { pick } from "lodash";
|
import { pick } from "lodash";
|
||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
|
|
||||||
import { resizeBase64Image } from "@server/lib/resizeBase64Image";
|
import { resizeBase64Image } from "@server/lib/resizeBase64Image";
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@ import { getAppRegistry } from "@calcom/app-store/_appRegistry";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import prisma from "@calcom/prisma";
|
import prisma from "@calcom/prisma";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import Shell from "@calcom/ui/Shell";
|
||||||
|
|
||||||
import Shell from "@components/Shell";
|
|
||||||
import AppCard from "@components/apps/AppCard";
|
import AppCard from "@components/apps/AppCard";
|
||||||
|
|
||||||
export default function Apps({ apps }: InferGetStaticPropsType<typeof getStaticProps>) {
|
export default function Apps({ apps }: InferGetStaticPropsType<typeof getStaticProps>) {
|
||||||
|
|
|
@ -4,8 +4,8 @@ import Link from "next/link";
|
||||||
import { getAppRegistry } from "@calcom/app-store/_appRegistry";
|
import { getAppRegistry } from "@calcom/app-store/_appRegistry";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import Shell from "@calcom/ui/Shell";
|
||||||
|
|
||||||
import Shell from "@components/Shell";
|
|
||||||
import AppStoreCategories from "@components/apps/Categories";
|
import AppStoreCategories from "@components/apps/Categories";
|
||||||
|
|
||||||
export default function Apps({ categories }: InferGetStaticPropsType<typeof getStaticProps>) {
|
export default function Apps({ categories }: InferGetStaticPropsType<typeof getStaticProps>) {
|
||||||
|
|
|
@ -3,9 +3,9 @@ import { InferGetStaticPropsType } from "next";
|
||||||
import { getAppRegistry } from "@calcom/app-store/_appRegistry";
|
import { getAppRegistry } from "@calcom/app-store/_appRegistry";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import prisma from "@calcom/prisma";
|
import prisma from "@calcom/prisma";
|
||||||
|
import Shell from "@calcom/ui/Shell";
|
||||||
|
|
||||||
import AppsShell from "@components/AppsShell";
|
import AppsShell from "@components/AppsShell";
|
||||||
import Shell from "@components/Shell";
|
|
||||||
import AllApps from "@components/apps/AllApps";
|
import AllApps from "@components/apps/AllApps";
|
||||||
import AppStoreCategories from "@components/apps/Categories";
|
import AppStoreCategories from "@components/apps/Categories";
|
||||||
import TrendingAppsSlider from "@components/apps/TrendingAppsSlider";
|
import TrendingAppsSlider from "@components/apps/TrendingAppsSlider";
|
||||||
|
|
|
@ -11,15 +11,15 @@ import { Alert } from "@calcom/ui/Alert";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
import EmptyScreen from "@calcom/ui/EmptyScreen";
|
import EmptyScreen from "@calcom/ui/EmptyScreen";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import { List, ListItem, ListItemText, ListItemTitle } from "@calcom/ui/List";
|
||||||
|
import Shell, { ShellSubHeading } from "@calcom/ui/Shell";
|
||||||
|
import SkeletonLoader from "@calcom/ui/apps/SkeletonLoader";
|
||||||
|
|
||||||
import { QueryCell } from "@lib/QueryCell";
|
import { QueryCell } from "@lib/QueryCell";
|
||||||
import classNames from "@lib/classNames";
|
import classNames from "@lib/classNames";
|
||||||
import { HttpError } from "@lib/core/http/error";
|
import { HttpError } from "@lib/core/http/error";
|
||||||
|
|
||||||
import AppsShell from "@components/AppsShell";
|
import AppsShell from "@components/AppsShell";
|
||||||
import { List, ListItem, ListItemText, ListItemTitle } from "@components/List";
|
|
||||||
import Shell, { ShellSubHeading } from "@components/Shell";
|
|
||||||
import SkeletonLoader from "@components/apps/SkeletonLoader";
|
|
||||||
import { CalendarListContainer } from "@components/integrations/CalendarListContainer";
|
import { CalendarListContainer } from "@components/integrations/CalendarListContainer";
|
||||||
import DisconnectIntegration from "@components/integrations/DisconnectIntegration";
|
import DisconnectIntegration from "@components/integrations/DisconnectIntegration";
|
||||||
import IntegrationListItem from "@components/integrations/IntegrationListItem";
|
import IntegrationListItem from "@components/integrations/IntegrationListItem";
|
||||||
|
@ -156,7 +156,7 @@ function Web3Container() {
|
||||||
<List>
|
<List>
|
||||||
<ListItem className={classNames("flex-col")}>
|
<ListItem className={classNames("flex-col")}>
|
||||||
<div className={classNames("flex w-full flex-1 items-center space-x-2 p-3")}>
|
<div className={classNames("flex w-full flex-1 items-center space-x-2 p-3")}>
|
||||||
<Image width={40} height={40} src="/apps/metamask.svg" alt="Embed" />
|
<Image width={40} height={40} src="/api/app-store/metamask/icon.svg" alt="Embed" />
|
||||||
<div className="flex-grow truncate pl-2">
|
<div className="flex-grow truncate pl-2">
|
||||||
<ListItemTitle component="h3">
|
<ListItemTitle component="h3">
|
||||||
MetaMask (
|
MetaMask (
|
||||||
|
|
|
@ -8,6 +8,7 @@ import { useForm } from "react-hook-form";
|
||||||
|
|
||||||
import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl";
|
import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
|
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
|
||||||
import { Alert } from "@calcom/ui/Alert";
|
import { Alert } from "@calcom/ui/Alert";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
@ -17,7 +18,6 @@ import prisma from "@calcom/web/lib/prisma";
|
||||||
import { ErrorCode, getSession } from "@lib/auth";
|
import { ErrorCode, getSession } from "@lib/auth";
|
||||||
import { WEBAPP_URL, WEBSITE_URL } from "@lib/config/constants";
|
import { WEBAPP_URL, WEBSITE_URL } from "@lib/config/constants";
|
||||||
import { hostedCal, isSAMLLoginEnabled, samlProductID, samlTenantID } from "@lib/saml";
|
import { hostedCal, isSAMLLoginEnabled, samlProductID, samlTenantID } from "@lib/saml";
|
||||||
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@lib/telemetry";
|
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||||
|
|
||||||
import AddToHomescreen from "@components/AddToHomescreen";
|
import AddToHomescreen from "@components/AddToHomescreen";
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { signIn } from "next-auth/react";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import { FormProvider, SubmitHandler, useForm } from "react-hook-form";
|
import { FormProvider, SubmitHandler, useForm } from "react-hook-form";
|
||||||
|
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
import { Alert } from "@calcom/ui/Alert";
|
import { Alert } from "@calcom/ui/Alert";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
import { EmailField, PasswordField, TextField } from "@calcom/ui/form/fields";
|
import { EmailField, PasswordField, TextField } from "@calcom/ui/form/fields";
|
||||||
|
@ -10,7 +11,6 @@ import { EmailField, PasswordField, TextField } from "@calcom/ui/form/fields";
|
||||||
import { asStringOrNull } from "@lib/asStringOrNull";
|
import { asStringOrNull } from "@lib/asStringOrNull";
|
||||||
import { NEXT_PUBLIC_BASE_URL } from "@lib/config/constants";
|
import { NEXT_PUBLIC_BASE_URL } from "@lib/config/constants";
|
||||||
import { useLocale } from "@lib/hooks/useLocale";
|
import { useLocale } from "@lib/hooks/useLocale";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import { isSAMLLoginEnabled } from "@lib/saml";
|
import { isSAMLLoginEnabled } from "@lib/saml";
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||||
|
|
||||||
|
|
|
@ -3,13 +3,13 @@ import { signIn } from "next-auth/react";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
|
|
||||||
|
import stripe from "@calcom/app-store/stripepayment/lib/server";
|
||||||
|
import { getPremiumPlanPrice } from "@calcom/app-store/stripepayment/lib/utils";
|
||||||
import { checkUsername } from "@calcom/lib/server/checkUsername";
|
import { checkUsername } from "@calcom/lib/server/checkUsername";
|
||||||
import stripe from "@calcom/stripe/server";
|
import prisma from "@calcom/prisma";
|
||||||
import { getPremiumPlanPrice } from "@calcom/stripe/utils";
|
|
||||||
|
|
||||||
import { asStringOrNull } from "@lib/asStringOrNull";
|
import { asStringOrNull } from "@lib/asStringOrNull";
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import { hostedCal, isSAMLLoginEnabled, samlProductID, samlTenantID, samlTenantProduct } from "@lib/saml";
|
import { hostedCal, isSAMLLoginEnabled, samlProductID, samlTenantID, samlTenantProduct } from "@lib/saml";
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||||
|
|
||||||
|
|
|
@ -4,23 +4,23 @@ import { useState } from "react";
|
||||||
import { Controller, useForm } from "react-hook-form";
|
import { Controller, useForm } from "react-hook-form";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import { availabilityAsString, DEFAULT_SCHEDULE } from "@calcom/lib/availability";
|
import { DEFAULT_SCHEDULE, availabilityAsString } from "@calcom/lib/availability";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import showToast from "@calcom/lib/notification";
|
import showToast from "@calcom/lib/notification";
|
||||||
import { stringOrNumber } from "@calcom/prisma/zod-utils";
|
import { stringOrNumber } from "@calcom/prisma/zod-utils";
|
||||||
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
import { BadgeCheckIcon } from "@calcom/ui/Icon";
|
import { BadgeCheckIcon } from "@calcom/ui/Icon";
|
||||||
|
import Shell from "@calcom/ui/Shell";
|
||||||
import Switch from "@calcom/ui/Switch";
|
import Switch from "@calcom/ui/Switch";
|
||||||
|
import TimezoneSelect from "@calcom/ui/form/TimezoneSelect";
|
||||||
import { Form } from "@calcom/ui/form/fields";
|
import { Form } from "@calcom/ui/form/fields";
|
||||||
|
|
||||||
import { QueryCell } from "@lib/QueryCell";
|
import { QueryCell } from "@lib/QueryCell";
|
||||||
import { HttpError } from "@lib/core/http/error";
|
import { HttpError } from "@lib/core/http/error";
|
||||||
|
|
||||||
import Shell from "@components/Shell";
|
|
||||||
import Schedule from "@components/availability/Schedule";
|
import Schedule from "@components/availability/Schedule";
|
||||||
import EditableHeading from "@components/ui/EditableHeading";
|
import EditableHeading from "@components/ui/EditableHeading";
|
||||||
import TimezoneSelect from "@components/ui/form/TimezoneSelect";
|
|
||||||
|
|
||||||
export function AvailabilityForm(props: inferQueryOutput<"viewer.availability.schedule">) {
|
export function AvailabilityForm(props: inferQueryOutput<"viewer.availability.schedule">) {
|
||||||
const { t } = useLocale();
|
const { t } = useLocale();
|
||||||
|
|
|
@ -3,11 +3,11 @@ import showToast from "@calcom/lib/notification";
|
||||||
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
||||||
import EmptyScreen from "@calcom/ui/EmptyScreen";
|
import EmptyScreen from "@calcom/ui/EmptyScreen";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import Shell from "@calcom/ui/Shell";
|
||||||
|
|
||||||
import { withQuery } from "@lib/QueryCell";
|
import { withQuery } from "@lib/QueryCell";
|
||||||
import { HttpError } from "@lib/core/http/error";
|
import { HttpError } from "@lib/core/http/error";
|
||||||
|
|
||||||
import Shell from "@components/Shell";
|
|
||||||
import { NewScheduleButton } from "@components/availability/NewScheduleButton";
|
import { NewScheduleButton } from "@components/availability/NewScheduleButton";
|
||||||
import { ScheduleListItem } from "@components/availability/ScheduleListItem";
|
import { ScheduleListItem } from "@components/availability/ScheduleListItem";
|
||||||
import SkeletonLoader from "@components/availability/SkeletonLoader";
|
import SkeletonLoader from "@components/availability/SkeletonLoader";
|
||||||
|
|
|
@ -3,11 +3,11 @@ import { useEffect, useState } from "react";
|
||||||
import dayjs, { Dayjs } from "@calcom/dayjs";
|
import dayjs, { Dayjs } from "@calcom/dayjs";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
||||||
|
import Shell from "@calcom/ui/Shell";
|
||||||
|
|
||||||
import { QueryCell } from "@lib/QueryCell";
|
import { QueryCell } from "@lib/QueryCell";
|
||||||
|
|
||||||
import Loader from "@components/Loader";
|
import Loader from "@components/Loader";
|
||||||
import Shell from "@components/Shell";
|
|
||||||
|
|
||||||
type User = inferQueryOutput<"viewer.me">;
|
type User = inferQueryOutput<"viewer.me">;
|
||||||
|
|
||||||
|
|
|
@ -10,11 +10,11 @@ import { Alert } from "@calcom/ui/Alert";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
import EmptyScreen from "@calcom/ui/EmptyScreen";
|
import EmptyScreen from "@calcom/ui/EmptyScreen";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import Shell from "@calcom/ui/Shell";
|
||||||
|
|
||||||
import { useInViewObserver } from "@lib/hooks/useInViewObserver";
|
import { useInViewObserver } from "@lib/hooks/useInViewObserver";
|
||||||
|
|
||||||
import BookingsShell from "@components/BookingsShell";
|
import BookingsShell from "@components/BookingsShell";
|
||||||
import Shell from "@components/Shell";
|
|
||||||
import BookingListItem from "@components/booking/BookingListItem";
|
import BookingListItem from "@components/booking/BookingListItem";
|
||||||
import SkeletonLoader from "@components/booking/SkeletonLoader";
|
import SkeletonLoader from "@components/booking/SkeletonLoader";
|
||||||
|
|
||||||
|
|
|
@ -10,14 +10,14 @@ import classNames from "@calcom/lib/classNames";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import { parseRecurringEvent } from "@calcom/lib/isRecurringEvent";
|
import { parseRecurringEvent } from "@calcom/lib/isRecurringEvent";
|
||||||
import { getEveryFreqFor } from "@calcom/lib/recurringStrings";
|
import { getEveryFreqFor } from "@calcom/lib/recurringStrings";
|
||||||
|
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
|
||||||
|
import { detectBrowserTimeFormat } from "@calcom/lib/timeFormat";
|
||||||
import prisma, { bookingMinimalSelect } from "@calcom/prisma";
|
import prisma, { bookingMinimalSelect } from "@calcom/prisma";
|
||||||
import { Button } from "@calcom/ui/Button";
|
import { Button } from "@calcom/ui/Button";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
import { TextField } from "@calcom/ui/form/fields";
|
import { TextField } from "@calcom/ui/form/fields";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@lib/telemetry";
|
|
||||||
import { detectBrowserTimeFormat } from "@lib/timeFormat";
|
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||||
|
|
||||||
import { HeadSeo } from "@components/seo/head-seo";
|
import { HeadSeo } from "@components/seo/head-seo";
|
||||||
|
|
|
@ -4,11 +4,11 @@ import { z } from "zod";
|
||||||
|
|
||||||
import { parseRecurringEvent } from "@calcom/lib";
|
import { parseRecurringEvent } from "@calcom/lib";
|
||||||
import { availiblityPageEventTypeSelect } from "@calcom/prisma";
|
import { availiblityPageEventTypeSelect } from "@calcom/prisma";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
|
|
||||||
import { getWorkingHours } from "@lib/availability";
|
import { getWorkingHours } from "@lib/availability";
|
||||||
import { GetBookingType } from "@lib/getBooking";
|
import { GetBookingType } from "@lib/getBooking";
|
||||||
import { locationHiddenFilter, LocationObject } from "@lib/location";
|
import { locationHiddenFilter, LocationObject } from "@lib/location";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||||
|
|
||||||
import AvailabilityPage from "@components/booking/pages/AvailabilityPage";
|
import AvailabilityPage from "@components/booking/pages/AvailabilityPage";
|
||||||
|
|
|
@ -4,10 +4,10 @@ import { JSONObject } from "superjson/dist/types";
|
||||||
import { getLocationLabels } from "@calcom/app-store/utils";
|
import { getLocationLabels } from "@calcom/app-store/utils";
|
||||||
import { parseRecurringEvent } from "@calcom/lib";
|
import { parseRecurringEvent } from "@calcom/lib";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
import { bookEventTypeSelect } from "@calcom/prisma/selects";
|
import { bookEventTypeSelect } from "@calcom/prisma/selects";
|
||||||
|
|
||||||
import { asStringOrNull, asStringOrThrow } from "@lib/asStringOrNull";
|
import { asStringOrNull, asStringOrThrow } from "@lib/asStringOrNull";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||||
|
|
||||||
import BookingPage from "@components/booking/pages/BookingPage";
|
import BookingPage from "@components/booking/pages/BookingPage";
|
||||||
|
|
|
@ -15,19 +15,22 @@ import { v5 as uuidv5 } from "uuid";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import { SelectGifInput } from "@calcom/app-store/giphy/components";
|
import { SelectGifInput } from "@calcom/app-store/giphy/components";
|
||||||
|
import { StripeData } from "@calcom/app-store/stripepayment/lib/server";
|
||||||
import getApps, { getLocationOptions } from "@calcom/app-store/utils";
|
import getApps, { getLocationOptions } from "@calcom/app-store/utils";
|
||||||
import { parseRecurringEvent } from "@calcom/lib";
|
import { parseRecurringEvent } from "@calcom/lib";
|
||||||
import { CAL_URL, WEBAPP_URL } from "@calcom/lib/constants";
|
import { CAL_URL, WEBAPP_URL } from "@calcom/lib/constants";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import showToast from "@calcom/lib/notification";
|
import showToast from "@calcom/lib/notification";
|
||||||
import prisma from "@calcom/prisma";
|
import prisma from "@calcom/prisma";
|
||||||
import { StripeData } from "@calcom/stripe/server";
|
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import { RecurringEvent } from "@calcom/types/Calendar";
|
import type { RecurringEvent } from "@calcom/types/Calendar";
|
||||||
import { Alert } from "@calcom/ui/Alert";
|
import { Alert } from "@calcom/ui/Alert";
|
||||||
|
import Badge from "@calcom/ui/Badge";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
import ConfirmationDialogContent from "@calcom/ui/ConfirmationDialogContent";
|
||||||
import { Dialog, DialogContent, DialogTrigger } from "@calcom/ui/Dialog";
|
import { Dialog, DialogContent, DialogTrigger } from "@calcom/ui/Dialog";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import Shell from "@calcom/ui/Shell";
|
||||||
import Switch from "@calcom/ui/Switch";
|
import Switch from "@calcom/ui/Switch";
|
||||||
import { Tooltip } from "@calcom/ui/Tooltip";
|
import { Tooltip } from "@calcom/ui/Tooltip";
|
||||||
import { Form } from "@calcom/ui/form/fields";
|
import { Form } from "@calcom/ui/form/fields";
|
||||||
|
@ -45,14 +48,11 @@ import { ClientSuspense } from "@components/ClientSuspense";
|
||||||
import DestinationCalendarSelector from "@components/DestinationCalendarSelector";
|
import DestinationCalendarSelector from "@components/DestinationCalendarSelector";
|
||||||
import { EmbedButton, EmbedDialog } from "@components/Embed";
|
import { EmbedButton, EmbedDialog } from "@components/Embed";
|
||||||
import Loader from "@components/Loader";
|
import Loader from "@components/Loader";
|
||||||
import Shell from "@components/Shell";
|
|
||||||
import { UpgradeToProDialog } from "@components/UpgradeToProDialog";
|
import { UpgradeToProDialog } from "@components/UpgradeToProDialog";
|
||||||
import { AvailabilitySelectSkeletonLoader } from "@components/availability/SkeletonLoader";
|
import { AvailabilitySelectSkeletonLoader } from "@components/availability/SkeletonLoader";
|
||||||
import ConfirmationDialogContent from "@components/dialog/ConfirmationDialogContent";
|
|
||||||
import { EditLocationDialog } from "@components/dialog/EditLocationDialog";
|
import { EditLocationDialog } from "@components/dialog/EditLocationDialog";
|
||||||
import RecurringEventController from "@components/eventtype/RecurringEventController";
|
import RecurringEventController from "@components/eventtype/RecurringEventController";
|
||||||
import CustomInputTypeForm from "@components/pages/eventtypes/CustomInputTypeForm";
|
import CustomInputTypeForm from "@components/pages/eventtypes/CustomInputTypeForm";
|
||||||
import Badge from "@components/ui/Badge";
|
|
||||||
import EditableHeading from "@components/ui/EditableHeading";
|
import EditableHeading from "@components/ui/EditableHeading";
|
||||||
import InfoBadge from "@components/ui/InfoBadge";
|
import InfoBadge from "@components/ui/InfoBadge";
|
||||||
import CheckboxField from "@components/ui/form/CheckboxField";
|
import CheckboxField from "@components/ui/form/CheckboxField";
|
||||||
|
|
|
@ -11,6 +11,8 @@ import showToast from "@calcom/lib/notification";
|
||||||
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
import { inferQueryOutput, trpc } from "@calcom/trpc/react";
|
||||||
import { Button } from "@calcom/ui";
|
import { Button } from "@calcom/ui";
|
||||||
import { Alert } from "@calcom/ui/Alert";
|
import { Alert } from "@calcom/ui/Alert";
|
||||||
|
import Badge from "@calcom/ui/Badge";
|
||||||
|
import ConfirmationDialogContent from "@calcom/ui/ConfirmationDialogContent";
|
||||||
import { Dialog } from "@calcom/ui/Dialog";
|
import { Dialog } from "@calcom/ui/Dialog";
|
||||||
import Dropdown, {
|
import Dropdown, {
|
||||||
DropdownMenuContent,
|
DropdownMenuContent,
|
||||||
|
@ -20,6 +22,7 @@ import Dropdown, {
|
||||||
} from "@calcom/ui/Dropdown";
|
} from "@calcom/ui/Dropdown";
|
||||||
import EmptyScreen from "@calcom/ui/EmptyScreen";
|
import EmptyScreen from "@calcom/ui/EmptyScreen";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import Shell from "@calcom/ui/Shell";
|
||||||
import { Tooltip } from "@calcom/ui/Tooltip";
|
import { Tooltip } from "@calcom/ui/Tooltip";
|
||||||
|
|
||||||
import { withQuery } from "@lib/QueryCell";
|
import { withQuery } from "@lib/QueryCell";
|
||||||
|
@ -27,14 +30,11 @@ import classNames from "@lib/classNames";
|
||||||
import { HttpError } from "@lib/core/http/error";
|
import { HttpError } from "@lib/core/http/error";
|
||||||
|
|
||||||
import { EmbedButton, EmbedDialog } from "@components/Embed";
|
import { EmbedButton, EmbedDialog } from "@components/Embed";
|
||||||
import Shell from "@components/Shell";
|
|
||||||
import ConfirmationDialogContent from "@components/dialog/ConfirmationDialogContent";
|
|
||||||
import CreateEventTypeButton from "@components/eventtype/CreateEventType";
|
import CreateEventTypeButton from "@components/eventtype/CreateEventType";
|
||||||
import EventTypeDescription from "@components/eventtype/EventTypeDescription";
|
import EventTypeDescription from "@components/eventtype/EventTypeDescription";
|
||||||
import SkeletonLoader from "@components/eventtype/SkeletonLoader";
|
import SkeletonLoader from "@components/eventtype/SkeletonLoader";
|
||||||
import Avatar from "@components/ui/Avatar";
|
import Avatar from "@components/ui/Avatar";
|
||||||
import AvatarGroup from "@components/ui/AvatarGroup";
|
import AvatarGroup from "@components/ui/AvatarGroup";
|
||||||
import Badge from "@components/ui/Badge";
|
|
||||||
|
|
||||||
import { TRPCClientError } from "@trpc/react";
|
import { TRPCClientError } from "@trpc/react";
|
||||||
|
|
||||||
|
|
|
@ -16,18 +16,19 @@ import { getCalendarCredentials, getConnectedCalendars } from "@calcom/core/Cale
|
||||||
import dayjs from "@calcom/dayjs";
|
import dayjs from "@calcom/dayjs";
|
||||||
import { DOCS_URL } from "@calcom/lib/constants";
|
import { DOCS_URL } from "@calcom/lib/constants";
|
||||||
import { fetchUsername } from "@calcom/lib/fetchUsername";
|
import { fetchUsername } from "@calcom/lib/fetchUsername";
|
||||||
|
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
|
||||||
|
import { isBrowserLocale24h } from "@calcom/lib/timeFormat";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import { Alert } from "@calcom/ui/Alert";
|
import { Alert } from "@calcom/ui/Alert";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
import TimezoneSelect from "@calcom/ui/form/TimezoneSelect";
|
||||||
import { Form } from "@calcom/ui/form/fields";
|
import { Form } from "@calcom/ui/form/fields";
|
||||||
|
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import { DEFAULT_SCHEDULE } from "@lib/availability";
|
import { DEFAULT_SCHEDULE } from "@lib/availability";
|
||||||
import { useLocale } from "@lib/hooks/useLocale";
|
import { useLocale } from "@lib/hooks/useLocale";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@lib/telemetry";
|
|
||||||
import { isBrowserLocale24h } from "@lib/timeFormat";
|
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||||
import { Schedule as ScheduleType } from "@lib/types/schedule";
|
import { Schedule as ScheduleType } from "@lib/types/schedule";
|
||||||
|
|
||||||
|
@ -35,7 +36,6 @@ import { ClientSuspense } from "@components/ClientSuspense";
|
||||||
import Loader from "@components/Loader";
|
import Loader from "@components/Loader";
|
||||||
import Schedule from "@components/availability/Schedule";
|
import Schedule from "@components/availability/Schedule";
|
||||||
import { CalendarListContainer } from "@components/integrations/CalendarListContainer";
|
import { CalendarListContainer } from "@components/integrations/CalendarListContainer";
|
||||||
import TimezoneSelect from "@components/ui/form/TimezoneSelect";
|
|
||||||
|
|
||||||
import getEventTypes from "../lib/queries/event-types/get-event-types";
|
import getEventTypes from "../lib/queries/event-types/get-event-types";
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import PaymentPage from "@ee/components/stripe/PaymentPage";
|
import PaymentPage from "@calcom/features/ee/payments/components/PaymentPage";
|
||||||
import { getServerSideProps } from "@ee/pages/payment/[uid]";
|
import { getServerSideProps } from "@calcom/features/ee/payments/pages/payment";
|
||||||
|
import { inferSSRProps } from "@calcom/types/inferSSRProps";
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
|
||||||
|
|
||||||
export default function Payment(props: inferSSRProps<typeof getServerSideProps>) {
|
export default function Payment(props: inferSSRProps<typeof getServerSideProps>) {
|
||||||
return <PaymentPage {...props} />;
|
return <PaymentPage {...props} />;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Badge, BadgeProps } from "@components/ui/Badge";
|
import { Badge, BadgeProps } from "@calcom/ui/Badge";
|
||||||
|
|
||||||
import { sandboxPage } from ".";
|
import { sandboxPage } from ".";
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
|
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
import { List, ListItem } from "@calcom/ui/List";
|
||||||
import { List, ListItem } from "@components/List";
|
|
||||||
|
|
||||||
import { sandboxPage } from ".";
|
import { sandboxPage } from ".";
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
import ApiKeyListContainer from "@calcom/features/ee/api-keys/components/ApiKeyListContainer";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import ApiKeyListContainer from "@ee/components/apiKeys/ApiKeyListContainer";
|
|
||||||
|
|
||||||
import SettingsShell from "@components/SettingsShell";
|
import SettingsShell from "@components/SettingsShell";
|
||||||
import WebhookListContainer from "@components/webhook/WebhookListContainer";
|
import WebhookListContainer from "@components/webhook/WebhookListContainer";
|
||||||
|
|
|
@ -7,11 +7,14 @@ import TimezoneSelect, { ITimezone } from "react-timezone-select";
|
||||||
|
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import showToast from "@calcom/lib/notification";
|
import showToast from "@calcom/lib/notification";
|
||||||
|
import prisma from "@calcom/prisma";
|
||||||
import { TRPCClientErrorLike } from "@calcom/trpc/client";
|
import { TRPCClientErrorLike } from "@calcom/trpc/client";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import { AppRouter } from "@calcom/trpc/server/routers/_app";
|
import { AppRouter } from "@calcom/trpc/server/routers/_app";
|
||||||
import { Alert } from "@calcom/ui/Alert";
|
import { Alert } from "@calcom/ui/Alert";
|
||||||
|
import Badge from "@calcom/ui/Badge";
|
||||||
import Button from "@calcom/ui/Button";
|
import Button from "@calcom/ui/Button";
|
||||||
|
import ConfirmationDialogContent from "@calcom/ui/ConfirmationDialogContent";
|
||||||
import { Dialog, DialogTrigger } from "@calcom/ui/Dialog";
|
import { Dialog, DialogTrigger } from "@calcom/ui/Dialog";
|
||||||
import { Icon } from "@calcom/ui/Icon";
|
import { Icon } from "@calcom/ui/Icon";
|
||||||
|
|
||||||
|
@ -20,14 +23,11 @@ import { asStringOrNull, asStringOrUndefined } from "@lib/asStringOrNull";
|
||||||
import { getSession } from "@lib/auth";
|
import { getSession } from "@lib/auth";
|
||||||
import { nameOfDay } from "@lib/core/i18n/weekday";
|
import { nameOfDay } from "@lib/core/i18n/weekday";
|
||||||
import { isBrandingHidden } from "@lib/isBrandingHidden";
|
import { isBrandingHidden } from "@lib/isBrandingHidden";
|
||||||
import prisma from "@lib/prisma";
|
|
||||||
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
import { inferSSRProps } from "@lib/types/inferSSRProps";
|
||||||
|
|
||||||
import ImageUploader from "@components/ImageUploader";
|
import ImageUploader from "@components/ImageUploader";
|
||||||
import SettingsShell from "@components/SettingsShell";
|
import SettingsShell from "@components/SettingsShell";
|
||||||
import ConfirmationDialogContent from "@components/dialog/ConfirmationDialogContent";
|
|
||||||
import Avatar from "@components/ui/Avatar";
|
import Avatar from "@components/ui/Avatar";
|
||||||
import Badge from "@components/ui/Badge";
|
|
||||||
import InfoBadge from "@components/ui/InfoBadge";
|
import InfoBadge from "@components/ui/InfoBadge";
|
||||||
import { UsernameAvailability } from "@components/ui/UsernameAvailability";
|
import { UsernameAvailability } from "@components/ui/UsernameAvailability";
|
||||||
import ColorPicker from "@components/ui/colorpicker";
|
import ColorPicker from "@components/ui/colorpicker";
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import { IdentityProvider } from "@prisma/client";
|
import { IdentityProvider } from "@prisma/client";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
|
import SAMLConfiguration from "@calcom/features/ee/common/components/SamlConfiguration";
|
||||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||||
import { trpc } from "@calcom/trpc/react";
|
import { trpc } from "@calcom/trpc/react";
|
||||||
import SAMLConfiguration from "@ee/components/saml/Configuration";
|
|
||||||
|
|
||||||
import { identityProviderNameMap } from "@lib/auth";
|
import { identityProviderNameMap } from "@lib/auth";
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user