diff --git a/app/(auth)/forgot-password/page.tsx b/app/(auth)/forgot-password/page.tsx deleted file mode 100644 index 7b6e706..0000000 --- a/app/(auth)/forgot-password/page.tsx +++ /dev/null @@ -1,62 +0,0 @@ -"use client"; -import { useState } from "react"; -import { sendPasswordResetEmail } from "firebase/auth"; -import { auth } from "@/lib/firebase"; -import Navbar from "@/components/Navbar"; -import Link from "next/link"; - -export default function ForgotPasswordPage() { - const [email, setEmail] = useState(""); - const [message, setMessage] = useState(""); - const [error, setError] = useState(""); - - const handleReset = async (e: React.FormEvent) => { - e.preventDefault(); - setMessage(""); - setError(""); - - try { - await sendPasswordResetEmail(auth, email); - setMessage("Password reset link sent to your email!"); - } catch (err: any) { - setError(err.message); - } - }; - - return ( - <> - -
-
-

- Forgot Password -

- setEmail(e.target.value)} - /> - - - back to login - - {message &&

{message}

} - {error &&

{error}

} -
-
- - ); -} diff --git a/app/(auth)/login/page.tsx b/app/(auth)/login/page.tsx deleted file mode 100644 index 0a74113..0000000 --- a/app/(auth)/login/page.tsx +++ /dev/null @@ -1,80 +0,0 @@ -"use client"; -import { useState } from "react"; -import { signInWithEmailAndPassword, signInWithPopup } from "firebase/auth"; -import { auth, googleProvider } from "@/lib/firebase"; -import { useRouter } from "next/navigation"; -import Navbar from "@/components/Navbar"; - -export default function LoginPage() { - const [email, setEmail] = useState(""); - const [password, setPassword] = useState(""); - const router = useRouter(); - - const handleLogin = async (e: React.FormEvent) => { - e.preventDefault(); - try { - await signInWithEmailAndPassword(auth, email, password); - router.push("/dashboard"); - } catch (error: any) { - alert(error.message); - } - }; - - const handleGoogleLogin = async () => { - try { - await signInWithPopup(auth, googleProvider); - router.push("/dashboard"); - } catch (error: any) { - alert(error.message); - } - }; - - return ( - <> - -
-
-

Login

- setEmail(e.target.value)} - /> - setPassword(e.target.value)} - /> - -

- - Forgot Password? - -

- -
-
- - ); -} diff --git a/app/(auth)/signup/page.tsx b/app/(auth)/signup/page.tsx deleted file mode 100644 index 42d4491..0000000 --- a/app/(auth)/signup/page.tsx +++ /dev/null @@ -1,72 +0,0 @@ -"use client"; -import { useState } from "react"; -import { createUserWithEmailAndPassword, signInWithPopup } from "firebase/auth"; -import { auth, googleProvider } from "@/lib/firebase"; -import { useRouter } from "next/navigation"; -import Navbar from "@/components/Navbar"; - -export default function SignupPage() { - const [email, setEmail] = useState(""); - const [password, setPassword] = useState(""); - const router = useRouter(); - - const handleSignup = async (e: React.FormEvent) => { - e.preventDefault(); - try { - await createUserWithEmailAndPassword(auth, email, password); - router.push("/dashboard"); - } catch (error: any) { - alert(error.message); - } - }; - - const handleGoogleLogin = async () => { - try { - await signInWithPopup(auth, googleProvider); - router.push("/dashboard"); - } catch (error: any) { - alert(error.message); - } - }; - - return ( - <> - -
-
-

Signup

- setEmail(e.target.value)} - /> - setPassword(e.target.value)} - /> - - -
-
- - ); -} diff --git a/app/builder/[site]/cart/page.tsx b/app/builder/[site]/cart/page.tsx new file mode 100644 index 0000000..6061083 --- /dev/null +++ b/app/builder/[site]/cart/page.tsx @@ -0,0 +1,29 @@ +"use client"; + +import { getUserSites } from "@/lib/sites"; +import { templates } from "@/lib/template"; +import { notFound } from "next/navigation"; + +interface CartPageProps { + params: { site: string }; +} + +export default function CartPage({ params }: CartPageProps) { + if (typeof window === "undefined") return null; // SSR safe + const userSites = getUserSites(); + const site = userSites.find((s) => s.slug === params.site); + if (!site) return notFound(); + + const Template = templates[site.template]; + const Header = Template.Header; + const Footer = Template.Footer; + const Cart = Template.pages.Cart; + + return ( + <> +
+ +