"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { Button } from "@/components/ui/button"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { ChangePasswordSchema, type ChangePasswordInput } from "@/lib/schemas"; import { changePassword } from "@/lib/actions/user"; import { useToast } from "@/hooks/use-toast"; import { useState } from "react"; import { Loader2, KeyRound } from "lucide-react"; export function ChangePasswordForm() { const { toast } = useToast(); const [isLoading, setIsLoading] = useState(false); const form = useForm({ resolver: zodResolver(ChangePasswordSchema), defaultValues: { currentPassword: "", newPassword: "", confirmNewPassword: "", }, }); async function onSubmit(values: ChangePasswordInput) { setIsLoading(true); try { const result = await changePassword(values); toast({ title: result.success ? "Success" : "Error", description: result.message, variant: result.success ? "default" : "destructive", }); if (result.success) { form.reset(); } } catch (error) { toast({ title: "Error", description: "An unexpected error occurred.", variant: "destructive" }); } finally { setIsLoading(false); } } return (
( Current Password )} /> ( New Password )} /> ( Confirm New Password )} /> ); }