From 6e7b37883f593d52780941c4e8aea09108ef51ec Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 20:24:16 +0000 Subject: [PATCH] Add src/app/auth/register/page.tsx --- src/app/auth/register/page.tsx | 212 +++++++++++++++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 src/app/auth/register/page.tsx diff --git a/src/app/auth/register/page.tsx b/src/app/auth/register/page.tsx new file mode 100644 index 0000000..d23541a --- /dev/null +++ b/src/app/auth/register/page.tsx @@ -0,0 +1,212 @@ +"use client"; + +import { useState } from "react"; +import { useRouter } from "next/navigation"; +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; +import FooterBase from '@/components/sections/footer/FooterBase'; +import Input from '@/components/form/Input'; +import ButtonDirectionalHover from '@/components/button/ButtonDirectionalHover/ButtonDirectionalHover'; +import { Mail, Lock, User, UserPlus } from 'lucide-react'; + +export default function RegisterPage() { + const router = useRouter(); + const [name, setName] = useState(""); + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const [confirmPassword, setConfirmPassword] = useState(""); + const [error, setError] = useState(""); + const [isLoading, setIsLoading] = useState(false); + + const handleRegister = async (e: React.FormEvent) => { + e.preventDefault(); + setError(""); + + if (password !== confirmPassword) { + setError("Senhas não correspondem"); + return; + } + + setIsLoading(true); + + try { + const response = await fetch("/api/auth/register", { + method: "POST", headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ name, email, password }), + }); + + if (!response.ok) { + const data = await response.json(); + throw new Error(data.message || "Registration failed"); + } + + router.push("/auth/login?registered=true"); + } catch (err: any) { + setError(err.message); + } finally { + setIsLoading(false); + } + }; + + return ( + + + +
+
+
+
+
+ +

Registrar

+
+

Crie sua conta FitFlow Pro

+
+ +
+
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ + {error && ( +
+

{error}

+
+ )} + +
+ +
+
+ +
+

+ Já tem conta?{" "} + + Faça login + +

+
+
+
+
+ + +
+ ); +}