diff --git a/apps/web/modules/apps/installation/[[...step]]/step-view.tsx b/apps/web/modules/apps/installation/[[...step]]/step-view.tsx index 6245054a032b24..e18eb3ad3dcc44 100644 --- a/apps/web/modules/apps/installation/[[...step]]/step-view.tsx +++ b/apps/web/modules/apps/installation/[[...step]]/step-view.tsx @@ -3,7 +3,7 @@ import { usePathname, useRouter } from "next/navigation"; import { useEffect, useMemo, useRef, useState } from "react"; import { useForm } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import type { z } from "zod"; import checkForMultiplePaymentApps from "@calcom/app-store/_utils/payments/checkForMultiplePaymentApps"; diff --git a/apps/web/modules/auth/verify-email-change-view.tsx b/apps/web/modules/auth/verify-email-change-view.tsx index 4d036821ce1bb9..2559eae346ab7d 100644 --- a/apps/web/modules/auth/verify-email-change-view.tsx +++ b/apps/web/modules/auth/verify-email-change-view.tsx @@ -4,7 +4,7 @@ import { useSession } from "next-auth/react"; import { useRouter } from "next/navigation"; import { useEffect } from "react"; import React from "react"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { inferSSRProps } from "@calcom/types/inferSSRProps"; diff --git a/apps/web/modules/bookings/views/bookings-single-view.tsx b/apps/web/modules/bookings/views/bookings-single-view.tsx index 976a08a743d61f..2455aad2730ae7 100644 --- a/apps/web/modules/bookings/views/bookings-single-view.tsx +++ b/apps/web/modules/bookings/views/bookings-single-view.tsx @@ -7,8 +7,8 @@ import { useSession } from "next-auth/react"; import Link from "next/link"; import { usePathname, useRouter } from "next/navigation"; import { Fragment, useEffect, useState } from "react"; -import { Toaster } from "react-hot-toast"; import { RRule } from "rrule"; +import { Toaster } from "sonner"; import { z } from "zod"; import BookingPageTagManager from "@calcom/app-store/BookingPageTagManager"; diff --git a/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx b/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx index 1fdcfebfeab28e..0254d6ceafee3c 100644 --- a/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx +++ b/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx @@ -4,7 +4,7 @@ import { signOut } from "next-auth/react"; import type { TFunction } from "next-i18next"; import { usePathname, useRouter } from "next/navigation"; import { Suspense } from "react"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { z } from "zod"; import { classNames } from "@calcom/lib"; diff --git a/apps/web/modules/signup-view.tsx b/apps/web/modules/signup-view.tsx index dcead86993566f..7c1b748e80e1d3 100644 --- a/apps/web/modules/signup-view.tsx +++ b/apps/web/modules/signup-view.tsx @@ -11,7 +11,7 @@ import Script from "next/script"; import { useState, useEffect } from "react"; import type { SubmitHandler } from "react-hook-form"; import { useForm, useFormContext } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { z } from "zod"; import getStripe from "@calcom/app-store/stripepayment/lib/client"; diff --git a/apps/web/modules/users/views/users-public-view.tsx b/apps/web/modules/users/views/users-public-view.tsx index 97143b8efb9870..96d6a3cefc2def 100644 --- a/apps/web/modules/users/views/users-public-view.tsx +++ b/apps/web/modules/users/views/users-public-view.tsx @@ -3,7 +3,7 @@ import classNames from "classnames"; import type { InferGetServerSidePropsType } from "next"; import Link from "next/link"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { sdkActionManager, diff --git a/apps/web/package.json b/apps/web/package.json index 9ffcba9b8f1e40..ff6cbe2cc1bd6c 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -122,7 +122,6 @@ "react-dom": "^18.2.0", "react-easy-crop": "^3.5.2", "react-hook-form": "^7.43.3", - "react-hot-toast": "^2.3.0", "react-intl": "^5.25.1", "react-live-chat-loader": "^2.8.1", "react-multi-email": "^0.5.3", @@ -139,6 +138,7 @@ "sanitize-html": "^2.10.0", "schema-dts": "^1.1.0", "short-uuid": "^4.2.0", + "sonner": "^1.7.4", "stripe": "^9.16.0", "superjson": "1.9.1", "tailwindcss-radix": "^2.6.0", diff --git a/packages/app-store/alby/pages/setup/index.tsx b/packages/app-store/alby/pages/setup/index.tsx index a39990ef5912c9..225093b40891d1 100644 --- a/packages/app-store/alby/pages/setup/index.tsx +++ b/packages/app-store/alby/pages/setup/index.tsx @@ -2,7 +2,7 @@ import { auth, Client, webln } from "@getalby/sdk"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { useState, useCallback, useEffect } from "react"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import AppNotInstalledMessage from "@calcom/app-store/_components/AppNotInstalledMessage"; import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams"; diff --git a/packages/app-store/applecalendar/pages/setup/index.tsx b/packages/app-store/applecalendar/pages/setup/index.tsx index 43ef54ebdcf5ac..9c79fc434af216 100644 --- a/packages/app-store/applecalendar/pages/setup/index.tsx +++ b/packages/app-store/applecalendar/pages/setup/index.tsx @@ -1,7 +1,7 @@ import { useRouter } from "next/navigation"; import { useState } from "react"; import { useForm } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { APP_NAME } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; diff --git a/packages/app-store/caldavcalendar/pages/setup/index.tsx b/packages/app-store/caldavcalendar/pages/setup/index.tsx index 9e6fad02daea41..ab3fe42b60b071 100644 --- a/packages/app-store/caldavcalendar/pages/setup/index.tsx +++ b/packages/app-store/caldavcalendar/pages/setup/index.tsx @@ -1,7 +1,7 @@ import { useRouter } from "next/navigation"; import { useState } from "react"; import { useForm } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Alert, Button, Form, TextField } from "@calcom/ui"; diff --git a/packages/app-store/exchange2013calendar/pages/setup/index.tsx b/packages/app-store/exchange2013calendar/pages/setup/index.tsx index 382a17fe1f6cf8..329da7739a856d 100644 --- a/packages/app-store/exchange2013calendar/pages/setup/index.tsx +++ b/packages/app-store/exchange2013calendar/pages/setup/index.tsx @@ -1,7 +1,7 @@ import { useRouter } from "next/navigation"; import { useState } from "react"; import { useForm } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Alert, Button, Form, TextField } from "@calcom/ui"; diff --git a/packages/app-store/exchange2016calendar/pages/setup/index.tsx b/packages/app-store/exchange2016calendar/pages/setup/index.tsx index 866cbd48c5fd8e..bf26540361b0f9 100644 --- a/packages/app-store/exchange2016calendar/pages/setup/index.tsx +++ b/packages/app-store/exchange2016calendar/pages/setup/index.tsx @@ -1,7 +1,7 @@ import { useRouter } from "next/navigation"; import { useState } from "react"; import { useForm } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Alert, Button, Form, TextField } from "@calcom/ui"; diff --git a/packages/app-store/exchangecalendar/pages/setup/index.tsx b/packages/app-store/exchangecalendar/pages/setup/index.tsx index 92ba50af9aa719..f3926cd7fea55f 100644 --- a/packages/app-store/exchangecalendar/pages/setup/index.tsx +++ b/packages/app-store/exchangecalendar/pages/setup/index.tsx @@ -2,7 +2,7 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { Controller, useForm } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import z from "zod"; import { emailSchema } from "@calcom/lib/emailSchema"; diff --git a/packages/app-store/hitpay/pages/setup/index.tsx b/packages/app-store/hitpay/pages/setup/index.tsx index 729007be82e1dd..b9e652db9068d4 100644 --- a/packages/app-store/hitpay/pages/setup/index.tsx +++ b/packages/app-store/hitpay/pages/setup/index.tsx @@ -4,7 +4,7 @@ import Link from "next/link"; import { useRouter } from "next/navigation"; import { useState, useEffect } from "react"; import { useForm } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { z } from "zod"; import AppNotInstalledMessage from "@calcom/app-store/_components/AppNotInstalledMessage"; diff --git a/packages/app-store/ics-feedcalendar/pages/setup/index.tsx b/packages/app-store/ics-feedcalendar/pages/setup/index.tsx index 1c237c89a5c611..4d49d4c2df4179 100644 --- a/packages/app-store/ics-feedcalendar/pages/setup/index.tsx +++ b/packages/app-store/ics-feedcalendar/pages/setup/index.tsx @@ -1,7 +1,7 @@ import { useRouter } from "next/navigation"; import { useState } from "react"; import { useForm } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Alert, Button, Form, TextField, CheckboxField } from "@calcom/ui"; diff --git a/packages/app-store/make/pages/setup/index.tsx b/packages/app-store/make/pages/setup/index.tsx index 39e691a993fc46..fc23a64daf2967 100644 --- a/packages/app-store/make/pages/setup/index.tsx +++ b/packages/app-store/make/pages/setup/index.tsx @@ -2,7 +2,7 @@ import type { InferGetServerSidePropsType } from "next"; import { Trans } from "next-i18next"; import Link from "next/link"; import { useState } from "react"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import AppNotInstalledMessage from "@calcom/app-store/_components/AppNotInstalledMessage"; import { useLocale } from "@calcom/lib/hooks/useLocale"; diff --git a/packages/app-store/paypal/pages/setup/index.tsx b/packages/app-store/paypal/pages/setup/index.tsx index 3b78f6496101b2..1e4e5b887fb46e 100644 --- a/packages/app-store/paypal/pages/setup/index.tsx +++ b/packages/app-store/paypal/pages/setup/index.tsx @@ -1,6 +1,6 @@ import { useRouter } from "next/navigation"; import { useState } from "react"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import AppNotInstalledMessage from "@calcom/app-store/_components/AppNotInstalledMessage"; import { useLocale } from "@calcom/lib/hooks/useLocale"; diff --git a/packages/app-store/routing-forms/pages/routing-link/[...appPages].tsx b/packages/app-store/routing-forms/pages/routing-link/[...appPages].tsx index ff05744f96faa1..4b38cb2c024bd2 100644 --- a/packages/app-store/routing-forms/pages/routing-link/[...appPages].tsx +++ b/packages/app-store/routing-forms/pages/routing-link/[...appPages].tsx @@ -3,7 +3,7 @@ import { useRouter } from "next/navigation"; import type { FormEvent } from "react"; import { useEffect, useRef, useState } from "react"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { v4 as uuidv4 } from "uuid"; import { sdkActionManager, useIsEmbed } from "@calcom/embed-core/embed-iframe"; diff --git a/packages/app-store/sendgrid/pages/setup/index.tsx b/packages/app-store/sendgrid/pages/setup/index.tsx index 9dc4032c001a7b..9f92171698c196 100644 --- a/packages/app-store/sendgrid/pages/setup/index.tsx +++ b/packages/app-store/sendgrid/pages/setup/index.tsx @@ -2,7 +2,7 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { useRouter } from "next/navigation"; import { useEffect, useState } from "react"; import { Controller, useForm } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import z from "zod"; import { useLocale } from "@calcom/lib/hooks/useLocale"; diff --git a/packages/app-store/zapier/pages/setup/index.tsx b/packages/app-store/zapier/pages/setup/index.tsx index 550e812c88edf6..56353cc92fe686 100644 --- a/packages/app-store/zapier/pages/setup/index.tsx +++ b/packages/app-store/zapier/pages/setup/index.tsx @@ -1,7 +1,7 @@ import { Trans } from "next-i18next"; import Link from "next/link"; import { useState } from "react"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import AppNotInstalledMessage from "@calcom/app-store/_components/AppNotInstalledMessage"; import { useLocale } from "@calcom/lib/hooks/useLocale"; diff --git a/packages/features/bookings/Booker/Booker.tsx b/packages/features/bookings/Booker/Booker.tsx index 6b9abf6c0bae8c..d86f9c55838849 100644 --- a/packages/features/bookings/Booker/Booker.tsx +++ b/packages/features/bookings/Booker/Booker.tsx @@ -1,8 +1,8 @@ import { AnimatePresence, LazyMotion, m } from "framer-motion"; import dynamic from "next/dynamic"; import { useEffect, useMemo, useRef } from "react"; -import { Toaster } from "react-hot-toast"; import StickyBox from "react-sticky-box"; +import { Toaster } from "sonner"; import { shallow } from "zustand/shallow"; import BookingPageTagManager from "@calcom/app-store/BookingPageTagManager"; diff --git a/packages/features/shell/Shell.tsx b/packages/features/shell/Shell.tsx index a7ceb860c15464..aaeb379d568c7f 100644 --- a/packages/features/shell/Shell.tsx +++ b/packages/features/shell/Shell.tsx @@ -4,7 +4,7 @@ import { useSession } from "next-auth/react"; import { usePathname, useRouter } from "next/navigation"; import type { Dispatch, ReactElement, ReactNode, SetStateAction } from "react"; import React, { cloneElement } from "react"; -import { Toaster } from "react-hot-toast"; +import { Toaster } from "sonner"; import { useRedirectToLoginIfUnauthenticated } from "@calcom/features/auth/lib/hooks/useRedirectToLoginIfUnauthenticated"; import { useRedirectToOnboardingIfNeeded } from "@calcom/features/auth/lib/hooks/useRedirectToOnboardingIfNeeded"; diff --git a/packages/lib/package.json b/packages/lib/package.json index 6f66b7c1426949..81b1d83e27852c 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -26,8 +26,8 @@ "jimp": "^0.16.1", "next-collect": "^0.2.1", "next-i18next": "^13.2.2", - "react-hot-toast": "^2.3.0", "rrule": "^2.7.1", + "sonner": "^1.7.4", "tailwind-merge": "^1.13.2", "tsdav": "2.0.3", "tslog": "^4.9.2", diff --git a/packages/ui/components/toast/showToast.tsx b/packages/ui/components/toast/showToast.tsx index 4dd5f0b19ff8c9..07da2aaf261f9f 100644 --- a/packages/ui/components/toast/showToast.tsx +++ b/packages/ui/components/toast/showToast.tsx @@ -1,21 +1,19 @@ import classNames from "classnames"; -import type { ToastOptions, Toast } from "react-hot-toast"; -import toast from "react-hot-toast"; +import type { ToastT } from "sonner"; +import { toast } from "sonner"; import { Icon } from "../icon"; type IToast = { message: string; - toastVisible: boolean; - toastId: string; - onClose: (toastId: string) => void; + toastId: string | number; + onClose: (toastId: string | number) => void; }; -export const SuccessToast = ({ message, toastVisible, onClose, toastId }: IToast) => ( +export const SuccessToast = ({ message, onClose, toastId }: IToast) => ( ); -export const ErrorToast = ({ message, toastVisible, onClose, toastId }: IToast) => ( +export const ErrorToast = ({ message, onClose, toastId }: IToast) => ( ); -export const WarningToast = ({ message, toastVisible, onClose, toastId }: IToast) => ( +export const WarningToast = ({ message, onClose, toastId }: IToast) => (