import React, { useState } from 'react'; import useSWR from 'swr'; import { Link } from 'react-router-dom'; import toast, { Toaster } from 'react-hot-toast'; import { ResponseT, TUser} from '../context/UserContext'; import {getProfilData, updateDog} from '../services/PhpApi'; import CreateQr from '../services/CreateQr'; import Img from './Img'; import './Profil.css'; function Profil() { const [formData, setFormData] = useState({ email:'', name:'', phone:'', qr_code: '' }); // const { data, error, isLoading } = useSWR( user?.qr_id, getDog); const { data, error, isLoading, mutate } = useSWR( "profilData", getProfilData); // data ist dogdata, logindata holt sich getProfilData.php aus $_SESSION if (error) return (
failed to load
); if (isLoading) return (
loading...
); const user: TUser = { id: data.data.id, qr_id: data.data.qr_id, email: data.data.email, name: data.data.name }; console.log('Profil data'); console.log(data); console.log('Profil user'); console.log(user); if(data.data.qr_code === null && document.getElementById("canvas") != null) { // qrcode generieren und in der Datenbank speichern CreateQr({qr_id: user?.qr_id}) .catch(err => { console.log('Profil CreateQr Error'); console.error(err); }); } let formData_loc = { email: '', name: '', phone: '', qr_code: '' }; if (formData.email) { formData_loc = { email: formData.email, name: formData.name, phone: formData.phone, qr_code: formData.qr_code }; } else { formData_loc = { email: data.data.email as string, name: data.data.name as string, phone: data.data.phone as string, qr_code: data.data.qr_code as string }; } const onChangeInput = (e: React.FormEvent ) => { formData_loc = { ...formData_loc, [e.currentTarget.name]:e.currentTarget.value }; setFormData(formData_loc); } function showData(data: any/*, e: React.FormEvent | React.MouseEvent*/) { if(data.success) { toast.success('Daten geändert!'); } else if(!data.success && data.message) { toast.error(data.message); } } const submitForm = async (e: React.FormEvent) => { e.preventDefault(); if(!Object.values(formData).every(val => val?.trim() !== '')) { toast.error('Bitte alle Felder ausfüllen!'); return; } setFormData(formData); const data = await updateDog(formData); mutate(); showData(data); } const qr_refresh = (e: React.MouseEvent) => { e.preventDefault(); formData.qr_code = ''; setFormData(formData); showData(data/*, e*/); if(document.getElementById("canvas") != null) { // qrcode generieren und in der Datenbank speichern CreateQr({qr_id: user?.qr_id}) .catch(err => { console.log('qr_refresh CreateQr Error'); console.error(err); }); } // update data with phpapi mutate(); } console.log('Profil formData'); console.log(formData); console.log('Profil formData_loc'); console.log(formData_loc); return (

Profil

{data.data && } Bild ändern
{data.data && }
QR-Code drucken
) } export default Profil