import type { SettingsParameter } from "@/app/(profile)/profile/home/settings/_types"; import type { Session } from "next-auth"; import { type FormEvent, ReactNode, useState } from "react"; import ModalComponent from '@/app/(profile)/profile/_components/Modal'; import DoneUpdate from "@/app/(profile)/profile/home/settings/_components/done"; import Button from '@/core/components/Button'; interface ChangeParameterProps { type: Partial; session: Session | null; close?: () => void; } /** * TODO: * refine the logic flow and redo! */ export default function ChangeParameter({ type, session, close }: ChangeParameterProps): ReactNode { const [currentPassword, setCurrentPassword] = useState(""); const [value, setValue] = useState(""); const [passwordConfirm, setPasswordConfirm] = useState(""); const [loading, setLoading] = useState(false); const [openDoneModal, setOpenDoneModal] = useState(false); const [error, setError] = useState(null); const handleSubmit = async (e: FormEvent) => { e.preventDefault(); // TODO: Add validation for input data (check if the password is correct, // verify if the new passwords match, ensure the email is valid, etc.) setLoading(true); setError(null); setTimeout(() => { setLoading(false); setOpenDoneModal(true); }, 1000); }; return ( <> setOpenDoneModal(false)} isOpen={openDoneModal}> setOpenDoneModal(false)} type={type} />
{ }}>
setCurrentPassword(target.value)} value={currentPassword} required />
setValue(target.value)} value={value} required />
{type === 'password' && (
setPasswordConfirm(target.value)} value={passwordConfirm} required />
)} {error &&
{error}
}
); };