import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { useEffect, useState } from "react"; import { useAuth } from "@/hooks/use-auth"; import { Button } from "@/components/ui/button"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Checkbox } from "@/components/ui/checkbox"; import { Card } from "@/components/ui/card"; import { CheckCircle, Torus } from "lucide-react"; import { CheckedState } from "@radix-ui/react-checkbox"; import LoadingScreen from "@/components/ui/LoadingScreen"; import { useLocation } from "wouter"; import { LoginFormValues, loginSchema, RegisterFormValues, registerSchema, } from "@repo/db/types"; export default function AuthPage() { const [activeTab, setActiveTab] = useState("login"); const { isLoading, user, loginMutation, registerMutation } = useAuth(); const [, navigate] = useLocation(); const loginForm = useForm({ resolver: zodResolver(loginSchema), defaultValues: { username: "", password: "", rememberMe: false, }, }); const registerForm = useForm({ resolver: zodResolver(registerSchema), defaultValues: { username: "", password: "", confirmPassword: "", agreeTerms: false, }, }); const onLoginSubmit = (data: LoginFormValues) => { loginMutation.mutate({ username: data.username, password: data.password }); }; const onRegisterSubmit = (data: RegisterFormValues) => { registerMutation.mutate({ username: data.username, password: data.password, }); }; if (isLoading) { return ; } useEffect(() => { if (user) { navigate("/insurance-status"); } }, [user, navigate]); return (
{/* Auth Forms */}

My Dental Office Management

{" "} Comprehensive Practice Management System

Login Register
( Username )} /> ( Password )} />
(
)} />
( Username )} /> ( Password )} /> ( Confirm Password )} /> (
I agree to the{" "} Terms and Conditions
)} />
{/* Hero Section */}

The complete solution for dental practice management. Streamline your patient records, appointments, and more.

  • Easily manage patient records
  • Track patient insurance information
  • Secure and compliant data storage
  • Simple and intuitive interface
); }