import { Box, Button, Divider, Paper, Stack, TextField, Typography } from "@mui/material"; import { useQuery } from "@tanstack/react-query"; import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; import { CustomerType } from "../components/Account"; import { useAccount } from "../helper/AccountProvider"; import { fetchCustomer } from "../helper/query/Queries"; import "./pages.css"; export default function Account() { const { t } = useTranslation(); const navigate = useNavigate(); const { user: userData, logout } = useAccount(); // Beispielhafte Userdaten (könnten aus Context/Backend kommen) const [user, setUser] = useState({ name: "", surname: "", address: "", country: "", zip: "", id: userData?.customerId || 0, // Initialwert }); // Aktualisiere den `user`-State, wenn sich `userData` ändert useEffect(() => { console.log("UserData changed:", userData); if (userData?.customerId) { setUser((prev) => ({ ...prev, id: userData.customerId, // Aktualisiere die ID })); } }, [userData]); const [edit, setEdit] = useState(false); const [form, setForm] = useState(user); const { data } = useQuery({ queryKey: ['fetchCustomer', userData?.customerId], queryFn: () => fetchCustomer(userData?.customerId || 0), // Funktion zum Abrufen der Kundendaten retry: 3, // Versucht es 3-mal erneut retryDelay: 1000, // Wartezeit zwischen den Versuchen (in ms) }); useEffect(() => { if (data) { setUser(data); // Aktualisiere den user-State mit den abgerufenen Daten setForm(data); // Optional: Aktualisiere auch den form-State } }, [data]); const handleEdit = () => setEdit(true); const handleCancel = () => { setForm(user); setEdit(false); }; const handleChange = (e: React.ChangeEvent) => { setForm({ ...form, [e.target.name]: e.target.value }); }; const handleSave = () => { setUser(form); setEdit(false); }; const handleDelete = () => { navigate("/"); logout(); // Logout nach dem Löschen }; return ( {t('myAccount')} {edit ? ( <> ) : ( )} ); }