diff --git a/apps/nextjs/app/errors/error.tsx b/apps/nextjs/app/errors/error.tsx new file mode 100644 index 0000000..0cbf448 --- /dev/null +++ b/apps/nextjs/app/errors/error.tsx @@ -0,0 +1,14 @@ +'use client'; +import { useEffect } from 'react'; +import { track } from '@vercel/analytics'; + +export default function Error({ error }: { error: Error; reset: () => void }) { + useEffect(() => { + track('thrown-error', { + message: error.message, + time: new Date().toLocaleString(), + }); + }, [error.message]); + + return
Error
; +} diff --git a/apps/nextjs/app/errors/page.tsx b/apps/nextjs/app/errors/page.tsx new file mode 100644 index 0000000..3de1d5e --- /dev/null +++ b/apps/nextjs/app/errors/page.tsx @@ -0,0 +1,10 @@ +'use client'; +import { useEffect } from 'react'; + +export default function ErrorPage() { + useEffect(() => { + throw new Error('Error!'); + }, []); + + return
I should error
; +} diff --git a/apps/nextjs/app/layout.tsx b/apps/nextjs/app/layout.tsx index 27c627c..a15e54f 100644 --- a/apps/nextjs/app/layout.tsx +++ b/apps/nextjs/app/layout.tsx @@ -1,3 +1,5 @@ +import { Analytics } from '@vercel/analytics/react'; + export const metadata = { title: 'Next.js', description: 'Generated by Next.js', @@ -10,6 +12,7 @@ export default function RootLayout({ }) { return ( + {children} );