diff --git a/src/app/(app)/dashboard/page.tsx b/src/app/(app)/dashboard/page.tsx
index a3d346e..6fda613 100644
--- a/src/app/(app)/dashboard/page.tsx
+++ b/src/app/(app)/dashboard/page.tsx
@@ -111,7 +111,7 @@ export default function DashboardPage() {
title: 'QR Code Tracking: Complete Guide 2025',
excerpt: 'Learn how to track QR code scans with real-time analytics. Compare free vs paid tracking tools, setup Google Analytics, and measure ROI.',
readTime: '12 Min',
- slug: 'qr-code-tracking-guide',
+ slug: 'qr-code-tracking-guide-2025',
},
{
title: 'Dynamic vs Static QR Codes: Which Should You Use?',
@@ -129,7 +129,7 @@ export default function DashboardPage() {
title: 'QR Code Analytics: Track, Measure & Optimize Campaigns',
excerpt: 'Learn how to leverage scan analytics, campaign tracking, and dashboard insights to maximize QR code ROI.',
readTime: '15 Min',
- slug: 'qr-code-analytics-guide',
+ slug: 'qr-code-analytics',
},
];
diff --git a/src/app/(auth)/signup/page.tsx b/src/app/(auth)/signup/page.tsx
index 1d368ec..87ad2c1 100644
--- a/src/app/(auth)/signup/page.tsx
+++ b/src/app/(auth)/signup/page.tsx
@@ -125,7 +125,13 @@ export default function SignupPage() {
/>
-
+ (e.target as HTMLInputElement).setCustomValidity('Please check this box if you want to proceed')}
+ onInput={(e) => (e.target as HTMLInputElement).setCustomValidity('')}
+ />
+
+
+
Legal
+
+
Privacy Policy
+
Terms of Service
+
Legal Notice
+
+
diff --git a/src/components/marketing/HomePageClient.tsx b/src/components/marketing/HomePageClient.tsx
index 1cb9649..bc432fd 100644
--- a/src/components/marketing/HomePageClient.tsx
+++ b/src/components/marketing/HomePageClient.tsx
@@ -10,6 +10,7 @@ import { Features } from '@/components/marketing/Features';
import { Pricing } from '@/components/marketing/Pricing';
import { FAQ } from '@/components/marketing/FAQ';
import { Button } from '@/components/ui/Button';
+import { ScrollToTop } from '@/components/ui/ScrollToTop';
import en from '@/i18n/en.json';
export default function HomePageClient() {
@@ -37,6 +38,9 @@ export default function HomePageClient() {
{/* FAQ Section */}
+
+ {/* Scroll to Top Button */}
+
>
);
}
diff --git a/src/components/ui/ScrollToTop.tsx b/src/components/ui/ScrollToTop.tsx
new file mode 100644
index 0000000..0431bb5
--- /dev/null
+++ b/src/components/ui/ScrollToTop.tsx
@@ -0,0 +1,56 @@
+'use client';
+
+import React, { useState, useEffect } from 'react';
+
+export function ScrollToTop() {
+ const [isVisible, setIsVisible] = useState(false);
+
+ // Show button when page is scrolled down
+ useEffect(() => {
+ const toggleVisibility = () => {
+ if (window.pageYOffset > 300) {
+ setIsVisible(true);
+ } else {
+ setIsVisible(false);
+ }
+ };
+
+ window.addEventListener('scroll', toggleVisibility);
+
+ return () => window.removeEventListener('scroll', toggleVisibility);
+ }, []);
+
+ const scrollToTop = () => {
+ window.scrollTo({
+ top: 0,
+ behavior: 'smooth',
+ });
+ };
+
+ return (
+ <>
+ {isVisible && (
+
+ )}
+ >
+ );
+}