diff --git a/app/blog/[slug]/not-found.tsx b/app/blog/[slug]/not-found.tsx new file mode 100644 index 0000000..24003ad --- /dev/null +++ b/app/blog/[slug]/not-found.tsx @@ -0,0 +1,23 @@ +'use client'; + +import { useEffect } from 'react'; +import { trackEvent } from '../../../lib/analytics'; + +export default function BlogPostNotFound() { + useEffect(() => { + trackEvent('blog_post_not_found', { + page_path: window.location.pathname, + }); + }, []); + + return ( +
+
+

Post not found

+

+ The article you requested does not exist or is no longer available. +

+
+
+ ); +} diff --git a/app/blog/[slug]/page.tsx b/app/blog/[slug]/page.tsx index 89ee79a..3b726bb 100644 --- a/app/blog/[slug]/page.tsx +++ b/app/blog/[slug]/page.tsx @@ -4,6 +4,7 @@ import JsonLd from '../../../components/JsonLd'; import ScrollToTopButton from '../../../components/blog/ScrollToTopButton'; import BlogPostBreadcrumbs from '../../../components/blog/BlogPostBreadcrumbs'; import BlogPostHero from '../../../components/blog/BlogPostHero'; +import BlogPostViewTracker from '../../../components/blog/BlogPostViewTracker'; import SimilarPostsSection from '../../../components/blog/SimilarPostsSection'; import { getBlogBreadcrumbStructuredData, @@ -86,6 +87,7 @@ export default async function BlogPostPage({ params }: BlogPostPageProps) {
+
void; } const variantClasses = { @@ -16,7 +17,7 @@ const variantClasses = { const BOOKING_CTA_LABEL = 'Book a Strategy Call'; -export default function BookingCta({ location, className, variant = 'primary' }: BookingCtaProps) { +export default function BookingCta({ location, className, variant = 'primary', onClick }: BookingCtaProps) { return ( {BOOKING_CTA_LABEL}