diff --git a/package-lock.json b/package-lock.json index 0ca0d99..af16f2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,8 @@ "@supabase/supabase-js": "^2.57.4", "lucide-react": "^0.344.0", "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "react-router-dom": "^7.10.0" }, "devDependencies": { "@eslint/js": "^9.9.1", @@ -1944,6 +1945,19 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3369,6 +3383,44 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.10.0.tgz", + "integrity": "sha512-FVyCOH4IZ0eDDRycODfUqoN8ZSR2LbTvtx6RPsBgzvJ8xAXlMZNCrOFpu+jb8QbtZnpAd/cEki2pwE848pNGxw==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.10.0.tgz", + "integrity": "sha512-Q4haR150pN/5N75O30iIsRJcr3ef7p7opFaKpcaREy0GQit6uCRu1NEiIFIwnHJQy0bsziRFBweR/5EkmHgVUQ==", + "license": "MIT", + "dependencies": { + "react-router": "7.10.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -3501,6 +3553,12 @@ "semver": "bin/semver.js" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/package.json b/package.json index da3a0e9..3ed98f5 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "@supabase/supabase-js": "^2.57.4", "lucide-react": "^0.344.0", "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "react-router-dom": "^7.10.0" }, "devDependencies": { "@eslint/js": "^9.9.1", diff --git a/src/App.tsx b/src/App.tsx index 50648a8..f26cc0d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -29,17 +29,6 @@ function useScrollAnimation() { function App() { const [activeTestimonial, setActiveTestimonial] = useState(0); const [openFaq, setOpenFaq] = useState(null); - const [showSuccess, setShowSuccess] = useState(false); - - // Check for successful payment redirect - useEffect(() => { - const params = new URLSearchParams(window.location.search); - if (params.get('success') === 'true') { - setShowSuccess(true); - // Remove query param from URL - window.history.replaceState({}, '', window.location.pathname); - } - }, []); // Scroll animation refs const problemSection = useScrollAnimation(); @@ -79,27 +68,6 @@ function App() { return (
- {/* SUCCESS MODAL */} - {showSuccess && ( -
-
-
- -
-

Buchung erfolgreich!

-

- Vielen Dank für Ihre Buchung. Sie erhalten in Kürze eine Bestätigungs-E-Mail mit allen Details zu Ihrer SunHouse-Führung. -

- -
-
- )} - {/* SECTION 1: HERO */}
Jetzt Buchen @@ -523,7 +491,7 @@ function App() { Gruppe Buchen @@ -570,7 +538,7 @@ function App() { Premium Buchen diff --git a/src/main.tsx b/src/main.tsx index ea9e363..555a440 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,10 +1,17 @@ import { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; +import { BrowserRouter, Routes, Route } from 'react-router-dom'; import App from './App.tsx'; +import ThankYou from './pages/ThankYou.tsx'; import './index.css'; createRoot(document.getElementById('root')!).render( - + + + } /> + } /> + + ); diff --git a/src/pages/ThankYou.tsx b/src/pages/ThankYou.tsx new file mode 100644 index 0000000..e0949ed --- /dev/null +++ b/src/pages/ThankYou.tsx @@ -0,0 +1,140 @@ +import { useEffect, useState } from 'react'; +import { Check, Mail, Calendar, Phone, ArrowRight, Home } from 'lucide-react'; + +export default function ThankYou() { + const [isVisible, setIsVisible] = useState(false); + const [checkmarkVisible, setCheckmarkVisible] = useState(false); + + useEffect(() => { + // Trigger animations + setTimeout(() => setCheckmarkVisible(true), 100); + setTimeout(() => setIsVisible(true), 400); + }, []); + + return ( +
+ {/* Decorative background elements */} +
+
+
+
+ + {/* Logo */} +
+ +
+
+ {/* Success checkmark animation */} +
+
+
+ +
+ {/* Pulse animation */} +
+
+
+ + {/* Main content */} +
+

+ Vielen Dank für Ihre Buchung! +

+ +

+ Wir freuen uns, Sie bald im SunHouse Musterhaus begrüßen zu dürfen. +

+ + {/* Next steps cards */} +
+
+
+ +
+
+

Bestätigung per E-Mail

+

+ Sie erhalten in wenigen Minuten eine Bestätigungs-E-Mail mit Ihrer Buchungsübersicht und Rechnung. +

+
+
+ +
+
+ +
+
+

Terminabstimmung

+

+ Wir kontaktieren Sie innerhalb von 24 Stunden, um einen passenden Termin für Ihre Führung zu vereinbaren. +

+
+
+ +
+
+ +
+
+

Fragen?

+

+ Bei Fragen erreichen Sie uns jederzeit unter{' '} + + info@sunhouse.energy + +

+
+
+
+ + {/* CTA buttons */} + +
+ + {/* Trust elements */} +
+

+ Ihre Buchung wird durchgeführt von +

+
+
+

Institut für Nachhaltigkeit

+

Karres 56, 6462 Karres, Österreich

+
+
+
+

ZVR-Zahl: 1767456655

+

Gemeinnütziger Verein

+
+
+
+
+
+
+ ); +}