From 600f13e12d3fe8233b93f2644f795c6321904cf6 Mon Sep 17 00:00:00 2001 From: Matt Venables Date: Thu, 4 Jan 2024 21:45:22 -0500 Subject: [PATCH] Use sonner for toasts --- app/(marketing)/features.tsx | 9 +- app/layout.tsx | 2 +- bun.lockb | Bin 436241 -> 436645 bytes components/auth/user-auth-form.tsx | 47 +++---- components/ui/sonner.tsx | 32 +++++ components/ui/toast.tsx | 128 ------------------- components/ui/toaster.tsx | 35 ------ components/ui/use-toast.ts | 194 ----------------------------- package.json | 1 + 9 files changed, 54 insertions(+), 394 deletions(-) create mode 100644 components/ui/sonner.tsx delete mode 100644 components/ui/toast.tsx delete mode 100644 components/ui/toaster.tsx delete mode 100644 components/ui/use-toast.ts diff --git a/app/(marketing)/features.tsx b/app/(marketing)/features.tsx index 13eff04..eed9b2a 100644 --- a/app/(marketing)/features.tsx +++ b/app/(marketing)/features.tsx @@ -3,14 +3,12 @@ import { CheckIcon } from "lucide-react" import Link from "next/link" import { useMemo } from "react" +import { toast } from "sonner" import { Button } from "@/components/ui/button" -import { useToast } from "@/components/ui/use-toast" import { cls } from "@/lib/utils" export function Features() { - const { toast } = useToast() - const FEATURES = useMemo( () => [ { title: "Next 14", href: "https://nextjs.org" }, @@ -41,14 +39,13 @@ export function Features() { { title: "Toasts", onClick: () => - toast({ - title: "Wait. Toasts, too?", + toast("Wait. Toasts, too?", { description: "Yep! You can use them anywhere in your app." }) }, { title: "and much more..." } ], - [toast] + [] ) return ( diff --git a/app/layout.tsx b/app/layout.tsx index 4b43f00..6241bca 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -6,7 +6,7 @@ import { type ReactNode } from "react" import { TailwindIndicator } from "@/components/debug/tailwind-indicator" import { Analytics } from "@/components/layout/analytics" -import { Toaster } from "@/components/ui/toaster" +import { Toaster } from "@/components/ui/sonner" import { siteConfig } from "@/config" import { cls, fullURL } from "@/lib/utils" diff --git a/bun.lockb b/bun.lockb index 0f241c81decacf5fd8c6fe36cd80be0b72cb484f..e8afb67e43fd1a388b5600fb74550b48655bf525 100755 GIT binary patch delta 83973 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 TiAjB98n^eYZ`?lV_8R{m4SJ;( delta 84005 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

-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 /** * https://github.com/nextauthjs/next-auth/blob/a79774f6e890b492ae30201f24b3f7024d0d7c9d/docs/docs/guides/basics/pages.md?plain=1#L42 */ -function parseErrorMessage(error?: string | null) { +function handleError(error?: string | null) { switch (error) { case "OAuthAccountNotLinked": - return { - title: "You already have an account", + return toast("You already have an account", { description: "Please sign in with the other service you used to sign up." - } + }) case "EmailSignin": - return { - title: "Unable to send login e-mail", + return toast("Unable to send login e-mail", { description: "Sending your login e-mail failed. Please try again." - } + }) case "CredentialsSignin": - return { - title: "Invalid username or password", + return toast("Invalid username or password", { description: "The username and password you entered did not match our records. Please double-check and try again." - } + }) case "SessionRequired": - return { - title: "Login required", + return toast("Login required", { description: "You must be logged in to view this page" - } + }) case "OAuthCallback": case "OAuthCreateAccount": case "OAuthSignin": @@ -56,10 +52,9 @@ function parseErrorMessage(error?: string | null) { case "Callback": case "Default": default: - return { - title: "Something went wrong.", + return toast("Something went wrong.", { description: "Your sign in request failed. Please try again." - } + }) } } @@ -67,7 +62,6 @@ type Props = HTMLAttributes export function UserAuthForm({ className, ...props }: Props) { const searchParams = useSearchParams() - const { toast } = useToast() const form = useForm>({ resolver: zodResolver(userAuthSchema), defaultValues: { @@ -88,12 +82,9 @@ export function UserAuthForm({ className, ...props }: Props) { */ useEffect(() => { if (searchParams.get("error")) { - toast({ - ...parseErrorMessage(searchParams.get("error")), - variant: "destructive" - }) + handleError(searchParams.get("error")) } - }, [searchParams, toast]) + }, [searchParams]) /** * Handle the form submission. @@ -118,18 +109,14 @@ export function UserAuthForm({ className, ...props }: Props) { } if (!signInResult?.ok || signInResult.error) { - return toast({ - ...parseErrorMessage(signInResult?.error), - variant: "destructive" - }) + return handleError(signInResult?.error) } - return toast({ - title: "Check your email", + return toast("Check your email", { description: "We sent you a login link. Be sure to check your spam too." }) }, - [isLoading, searchParams, toast] + [isLoading, searchParams] ) return ( diff --git a/components/ui/sonner.tsx b/components/ui/sonner.tsx new file mode 100644 index 0000000..fcd7e59 --- /dev/null +++ b/components/ui/sonner.tsx @@ -0,0 +1,32 @@ +"use client" + +import { useTheme } from "next-themes" +import { Toaster as Sonner } from "sonner" + +type ToasterProps = React.ComponentProps + +function Toaster({ ...props }: ToasterProps) { + const { theme = "system" } = useTheme() + + return ( + + ) +} + +export { Toaster } diff --git a/components/ui/toast.tsx b/components/ui/toast.tsx deleted file mode 100644 index ee57d0d..0000000 --- a/components/ui/toast.tsx +++ /dev/null @@ -1,128 +0,0 @@ -import * as ToastPrimitives from "@radix-ui/react-toast" -import { type VariantProps, cva } from "class-variance-authority" -import { X } from "lucide-react" -import * as React from "react" - -import { cn } from "@/lib/utils" - -const ToastProvider = ToastPrimitives.Provider - -const ToastViewport = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -ToastViewport.displayName = ToastPrimitives.Viewport.displayName - -// eslint-disable-next-line tailwindcss/no-custom-classname -- allow 'destructive' -const toastVariants = cva( - "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full", - { - variants: { - variant: { - default: "border bg-background text-foreground", - destructive: - "destructive group border-destructive bg-destructive text-destructive-foreground" - } - }, - defaultVariants: { - variant: "default" - } - } -) - -const Toast = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & - VariantProps ->(({ className, variant, ...props }, ref) => { - return ( - - ) -}) -Toast.displayName = ToastPrimitives.Root.displayName - -const ToastAction = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -ToastAction.displayName = ToastPrimitives.Action.displayName - -const ToastClose = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - - - -)) -ToastClose.displayName = ToastPrimitives.Close.displayName - -const ToastTitle = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -ToastTitle.displayName = ToastPrimitives.Title.displayName - -const ToastDescription = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)) -ToastDescription.displayName = ToastPrimitives.Description.displayName - -type ToastProps = React.ComponentPropsWithoutRef - -type ToastActionElement = React.ReactElement - -export { - type ToastProps, - type ToastActionElement, - ToastProvider, - ToastViewport, - Toast, - ToastTitle, - ToastDescription, - ToastClose, - ToastAction -} diff --git a/components/ui/toaster.tsx b/components/ui/toaster.tsx deleted file mode 100644 index 9f58683..0000000 --- a/components/ui/toaster.tsx +++ /dev/null @@ -1,35 +0,0 @@ -"use client" - -import { - Toast, - ToastClose, - ToastDescription, - ToastProvider, - ToastTitle, - ToastViewport -} from "@/components/ui/toast" -import { useToast } from "@/components/ui/use-toast" - -export function Toaster() { - const { toasts } = useToast() - - return ( - - {toasts.map(({ id, title, description, action, ...props }) => { - return ( - -

- {action} - - - ) - })} - - - ) -} diff --git a/components/ui/use-toast.ts b/components/ui/use-toast.ts deleted file mode 100644 index f995b9a..0000000 --- a/components/ui/use-toast.ts +++ /dev/null @@ -1,194 +0,0 @@ -// Inspired by react-hot-toast library -import * as React from "react" - -import type { ToastActionElement, ToastProps } from "@/components/ui/toast" - -const TOAST_LIMIT = 1 -const TOAST_REMOVE_DELAY = 1000000 - -type ToasterToast = ToastProps & { - id: string - title?: React.ReactNode - description?: React.ReactNode - action?: ToastActionElement -} - -const actionTypes = { - ADD_TOAST: "ADD_TOAST", - UPDATE_TOAST: "UPDATE_TOAST", - DISMISS_TOAST: "DISMISS_TOAST", - REMOVE_TOAST: "REMOVE_TOAST" -} as const - -let count = 0 - -function genId() { - count = (count + 1) % Number.MAX_SAFE_INTEGER - return count.toString() -} - -type ActionType = typeof actionTypes - -type Action = - | { - type: ActionType["ADD_TOAST"] - toast: ToasterToast - } - | { - type: ActionType["UPDATE_TOAST"] - toast: Partial - } - | { - type: ActionType["DISMISS_TOAST"] - toastId?: ToasterToast["id"] - } - | { - type: ActionType["REMOVE_TOAST"] - toastId?: ToasterToast["id"] - } - -type State = { - toasts: ToasterToast[] -} - -const toastTimeouts = new Map>() - -const addToRemoveQueue = (toastId: string) => { - if (toastTimeouts.has(toastId)) { - return - } - - const timeout = setTimeout(() => { - toastTimeouts.delete(toastId) - dispatch({ - type: "REMOVE_TOAST", - toastId - }) - }, TOAST_REMOVE_DELAY) - - toastTimeouts.set(toastId, timeout) -} - -export const reducer = (state: State, action: Action): State => { - switch (action.type) { - case "ADD_TOAST": - return { - ...state, - toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT) - } - - case "UPDATE_TOAST": - return { - ...state, - toasts: state.toasts.map((t) => - t.id === action.toast.id ? { ...t, ...action.toast } : t - ) - } - - case "DISMISS_TOAST": { - const { toastId } = action - - // ! Side effects ! - This could be extracted into a dismissToast() action, - // but I'll keep it here for simplicity - if (toastId) { - addToRemoveQueue(toastId) - } else { - state.toasts.forEach((t) => { - addToRemoveQueue(t.id) - }) - } - - return { - ...state, - toasts: state.toasts.map((t) => - t.id === toastId || toastId === undefined - ? { - ...t, - open: false - } - : t - ) - } - } - case "REMOVE_TOAST": - if (action.toastId === undefined) { - return { - ...state, - toasts: [] - } - } - return { - ...state, - toasts: state.toasts.filter((t) => t.id !== action.toastId) - } - } -} - -const listeners: ((state: State) => void)[] = [] - -let memoryState: State = { toasts: [] } - -function dispatch(action: Action) { - memoryState = reducer(memoryState, action) - listeners.forEach((listener) => { - listener(memoryState) - }) -} - -type Toast = Omit - -function toast({ ...props }: Toast) { - const id = genId() - - const update = (updateProps: ToasterToast) => { - dispatch({ - type: "UPDATE_TOAST", - toast: { ...updateProps, id } - }) - } - const dismiss = () => { - dispatch({ type: "DISMISS_TOAST", toastId: id }) - } - - dispatch({ - type: "ADD_TOAST", - toast: { - ...props, - id, - open: true, - onOpenChange: (open) => { - if (!open) dismiss() - } - } - }) - - return { - id, - dismiss, - update - } -} - -function useToast() { - const [state, setState] = React.useState(memoryState) - - React.useEffect(() => { - listeners.push(setState) - return () => { - const index = listeners.indexOf(setState) - if (index > -1) { - listeners.splice(index, 1) - } - } - }, [state]) - - return { - ...state, - toast, - dismiss: (toastId?: string) => { - dispatch({ type: "DISMISS_TOAST", toastId }) - } - } -} - -export { useToast, toast } diff --git a/package.json b/package.json index 83b8443..8318da1 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "react-dom": "^18.2.0", "react-hook-form": "^7.49.2", "resend": "^2.1.0", + "sonner": "^1.3.1", "tailwind-merge": "^2.2.0", "zod": "^3.22.4" },