diff --git a/src/components/Button.tsx b/src/components/Button.tsx
deleted file mode 100644
index 812ac4a..0000000
--- a/src/components/Button.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import { useState, useEffect } from 'react'
-
-let timer : NodeJS.Timer; //you need to have a global variable for your `timer`
-
-export default function Button(
- {
- label,
- MouseAction,
- }:
- {
- label: string,
- MouseAction: () => void
- }
- )
-{
- const [mouseDown, setMouseDown] = useState(false);
- const [forceRender, setForceRender] = useState(0);
-
- useEffect(() =>
- {
- if(mouseDown)
- { //if holding mouse, we trigger `repeat`
- repeat(() =>
- {
- MouseAction();
- //setForceRender(forceRender + 1);
- //console.log("\nuseEffect mouseDown " + forceRender);
- });
- }
- else
- {
- stop() //stop it if releasing mouse holding
- //console.log("\nuseEffect stop " + forceRender);
- }
- }, [mouseDown, MouseAction]) //to track mouse holding behaviour changes
-
- const repeat = (what: () => void) =>
- {
- timer = setInterval(what, 100)
- };
-
- function start()
- {
- console.log("\nstart");
- setMouseDown(true);
- }
-
- function stop()
- {
- console.log("\nstop");
- clearInterval(timer);
- setMouseDown(false);
- }
-
- return (
-
-
-
- )
-}
diff --git a/src/components/Header.tsx b/src/components/Header.tsx
index fe16a3d..e85df42 100644
--- a/src/components/Header.tsx
+++ b/src/components/Header.tsx
@@ -1,13 +1,11 @@
import React, { useContext } from 'react'
import './Header.css';
import '../App.css';
-import {UserCtx, UserCtxT} from '../context/UserContext';
import { useNavigate } from 'react-router-dom';
import {Axios} from '../services/PhpApi'
function Header() {
- const {setUser} = useContext
(UserCtx) as UserCtxT;
const navigate = useNavigate();
const logOut = () =>
@@ -19,8 +17,6 @@ function Header() {
})
.catch((err) => console.error(err));
- setUser(null);
-
navigate('/'); // login
}
diff --git a/src/components/Login.tsx b/src/components/Login.tsx
index 6983ec6..0b50a95 100644
--- a/src/components/Login.tsx
+++ b/src/components/Login.tsx
@@ -1,14 +1,11 @@
import {useState,useContext} from 'react';
import { Link, useNavigate } from 'react-router-dom';
-import {UserCtx, UserCtxT} from '../context/UserContext';
import './Login.css';
import {loginUser} from '../services/PhpApi'
const Login = () =>
{
- const {wait, getUser, user} = useContext(UserCtx) as UserCtxT;
const [redirect, setRedirect] = useState("false");
- const [errMsg, setErrMsg] = useState("false");
const [formData, setFormData] = useState({
email:'',
password:''
diff --git a/src/components/Profil.tsx b/src/components/Profil.tsx
index b77d388..e4786c3 100644
--- a/src/components/Profil.tsx
+++ b/src/components/Profil.tsx
@@ -1,26 +1,30 @@
import React, { useContext, useState } from 'react';
import useSWR from 'swr';
import { Link } from 'react-router-dom';
-import { ResponseT, UserCtx, UserCtxT } from '../context/UserContext';
-import {Axios, getDog, updateDog} from '../services/PhpApi';
+import toast, { Toaster } from 'react-hot-toast';
+import { ResponseT} from '../context/UserContext';
+import {getProfilData} from '../services/PhpApi';
import CreateQr from '../services/CreateQr';
import Img from './Img';
import './Profil.css';
function Profil()
{
- const { user, wait } = useContext(UserCtx) as UserCtxT;
- const [dog, setDog] = useState({}); // local dog not the dog in UserContext
- const [errMsg, setErrMsg] = useState("false");
- const [successMsg, setSuccessMsg] = useState("false");
const [formData, setFormData] = useState({
email:'',
name:'',
phone:'',
qr_code: null
});
- const { data, error, isLoading } = useSWR( user?.qr_id, getDog);
+ const fetcher = () =>
+ {
+
+ }
+
+// const { data, error, isLoading } = useSWR( user?.qr_id, getDog);
+ const { data, error, isLoading } = useSWR( "profilData", getProfilData);
+// data ist dogdata und logindata
if (error) return (failed to load
);
if (isLoading) return (loading...
);
@@ -37,106 +41,94 @@ function Profil()
// });
- if(data.data.qr_code === null)
+ if(data.data.qr_code === null && document.getElementById("canvas") != null)
{
// qrcode generieren und in der Datenbank speichern
CreateQr({qr_id: user?.qr_id});
- }
- return (
- <>
-
- got data
- >
- );
-
+ }
-// })
-// .catch((err) => console.error(err));
-// }
-// const onChangeInput = (e: React.FormEvent ) => {
-// setFormData({
-// ...formData,
-// [e.currentTarget.name]:e.currentTarget.value
-// })
-// }
+ const onChangeInput = (e: React.FormEvent ) => {
+ setFormData({
+ ...formData,
+ [e.currentTarget.name]:e.currentTarget.value
+ })
+ }
-// function showData(data: any/*, e: React.FormEvent | React.MouseEvent*/)
-// {
-// if(data.success)
-// {
-// setSuccessMsg('Daten geändert!');
-// setErrMsg("false");
+ function showData(data: any/*, e: React.FormEvent | React.MouseEvent*/)
+ {
+ if(data.success)
+ {
+ toast.success('Daten geändert!');
-// // setSuccessMsg and setErrMsg force rendering
-// // if(e as React.FormEvent !== null)
-// // (e as React.FormEvent).currentTarget.reset();
-// // if(e as React.MouseEvent !== null)
-// // (e as React.MouseEvent).currentTarget.onre();
-// }
-// else if(!data.success && data.message)
-// {
-// setSuccessMsg("false");
-// setErrMsg(data.message);
-// }
-// }
+ // setSuccessMsg and setErrMsg force rendering
+ // if(e as React.FormEvent !== null)
+ // (e as React.FormEvent).currentTarget.reset();
+ // if(e as React.MouseEvent !== null)
+ // (e as React.MouseEvent).currentTarget.onre();
+ }
+ else if(!data.success && data.message)
+ {
+ toast.error(data.message);
+ }
+ }
-// const submitForm = async (e: React.FormEvent) =>
-// {
-// e.preventDefault();
+ const submitForm = async (e: React.FormEvent) =>
+ {
+ e.preventDefault();
-// if(!Object.values(formData).every(val => val?.trim() !== '')){
-// setSuccessMsg("false");
-// setErrMsg('Bitte alle Felder ausfüllen!');
-// return;
-// }
+ if(!Object.values(formData).every(val => val?.trim() !== ''))
+ {
+ toast.error('Bitte alle Felder ausfüllen!');
+ return;
+ }
+ setFormData(formData);
+ }
-// const data = await updateDog(formData);
-// showData(data/*, e*/);
-// }
-
-// const qr_refresh = async (e: React.MouseEvent) =>
-// {
-// e.preventDefault();
-// formData.qr_code = null;
-// const data = await updateDog(formData);
-// showData(data/*, e*/);
-// }
-
-// return (
-//
-//
Profil
-//
-//
-// {dog.data &&
![]()
}
-//
Bild ändern
-//
-//
-// {dog.data &&
![]()
}
-//
-//
-//
-//
-//
-//
QR-Code drucken
-//
-// )
+ const qr_refresh = (e: React.MouseEvent) =>
+ {
+ e.preventDefault();
+ formData.qr_code = null;
+ setFormData(formData);
+ showData(data/*, e*/);
+ }
+ formData.email = data.data.email;
+ formData.name = data.data.name;
+ formData.phone = data.data.phone;
+console.log(formData);
+ return (
+
+
+
Profil
+
+
+ {data.data &&
![]()
}
+
Bild ändern
+
+
+ {data.data &&
![]()
}
+
+
+
+
+
+
QR-Code drucken
+
+ )
}
export default Profil
\ No newline at end of file
diff --git a/src/context/UserContext.tsx b/src/context/UserContext.tsx
index bf74d80..c0200a1 100644
--- a/src/context/UserContext.tsx
+++ b/src/context/UserContext.tsx
@@ -1,11 +1,5 @@
import React from 'react';
-import {createContext, useState, useEffect} from 'react';
-import { Axios } from '../services/PhpApi';
-export type TUserContextProviderProps =
-{
- children: React.ReactNode
-}
export type TUser =
{
@@ -40,78 +34,3 @@ export type ResponseT =
data: DogT
} | any;
-
-
-export type UserCtxT =
-{
- user: TUser | null,
- setUser: React.Dispatch>,
- getUser: () => Promise,
-
- wait: boolean,
- setWait: React.Dispatch>,
-
- dog: ResponseT,
- setDog: React.Dispatch
-}
-
-export const UserCtx = createContext(null);
-
-export const UserCtxProvider = ({children}:TUserContextProviderProps) => {
-
- const [user, setUser] = useState(null);
- const [wait, setWait] = useState(false);
- const [dog, setDog] = useState({});
-
-
- const getUser = async () =>
- {
- if(user)
- {
- const {data} = await Axios.get('getUser.php');
- if(data.success && data.user)
- {
- setUser(data.user);
- return;
- }
- //setUser(null);
- }
- else
- {
- const session = await Axios.get('session.php');
- const {data} = session;
- if(data.success && data.user)
- {
- setUser(data.user);
- return;
- }
- }
- setUser(null);
- }
-
- useEffect(() =>
- {
- async function asyncCall()
- {
- await getUser();
- }
- asyncCall();
- },[]);
-
- return (
-
- {children}
-
- );
-
-}
\ No newline at end of file
diff --git a/src/index.tsx b/src/index.tsx
index 4b6314a..378934e 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -2,16 +2,13 @@ import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
-import { UserCtxProvider } from './context/UserContext';
const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement
);
root.render(
-
-
);
diff --git a/src/services/PhpApi.ts b/src/services/PhpApi.ts
index a74c7c4..b8a7634 100644
--- a/src/services/PhpApi.ts
+++ b/src/services/PhpApi.ts
@@ -1,5 +1,4 @@
-import {UserCtx, UserCtxT, ResponseT, TUser} from '../context/UserContext';
-import React, {useContext} from 'react';
+import {ResponseT, TUser} from '../context/UserContext';
import axios from 'axios'
export const Axios = axios.create({
@@ -12,19 +11,15 @@ export const Axios = axios.create({
export const updateDog = async ({email, name, phone}:
{email: string, name: string, phone: string}) =>
{
-// const { setWait } = useContext(UserCtx) as UserCtxT;
-// setWait(true);
try{
const {data} = await Axios.post('updateDog.php',{
email,
name,
phone
});
-// setWait(false);
return data;
}
catch(err){
-// setWait(false);
return {success:0, message:'Server Error!'};
}
}
@@ -32,7 +27,6 @@ export const updateDog = async ({email, name, phone}:
export const getDog = async ( str: string | undefined) : Promise =>
{
var ret: ResponseT = {};
-// setWait(true);
try
{
@@ -40,14 +34,11 @@ export const getDog = async ( str: string | undefined) : Promise =>
{
qr_id: str
});
- // setDog(ret.data as ResponseT);
- // setWait(false);
return ret.data as ResponseT;
}
catch (error:any)
{
console.log('error message: ', error.message);
-// setWait(false);
ret =
{
success: 0,
@@ -63,20 +54,16 @@ export const getDog = async ( str: string | undefined) : Promise =>
export const registerUser = async ({email,password}:
{email: string, password: string}) =>
{
-// const { setWait } = useContext(UserCtx) as UserCtxT;
-// setWait(true);
try{
const {data} = await Axios.post('register.php',
{
email,
password
});
-// setWait(false);
return data;
}
catch(err)
{
-// setWait(false);
return {success:0, message:'Server Error!'};
}
}
@@ -84,9 +71,6 @@ export const registerUser = async ({email,password}:
export const updateQR = async ({qr_width_cm, qr_height_cm, qr_fontsize, qr_visible_items, qr_item_sequence}:
{qr_width_cm: number, qr_height_cm: number, qr_fontsize: number, qr_visible_items: number, qr_item_sequence: number}) =>
{
-// const { setWait } = useContext(UserCtx) as UserCtxT;
-
-// setWait(true);
try
{
const {data} = await Axios.post('updateQR.php',
@@ -97,20 +81,16 @@ export const updateQR = async ({qr_width_cm, qr_height_cm, qr_fontsize, qr_visib
qr_visible_items,
qr_item_sequence
});
-// setWait(false);
return data;
}
catch(err)
{
-// setWait(false);
return {success:0, message:'Server Error!'};
}
}
export const loginUser = async ({email,password}:{email: string, password: string}) =>
{
- // const { setWait } = useContext(UserCtx) as UserCtxT;
- // setWait(true);
try
{
var postReturn:
@@ -133,23 +113,41 @@ export const loginUser = async ({email,password}:{email: string, password: strin
const {data} = postReturn;
if(data.success && data.data)
{
- // setUser(data.data);
- // setWait(false);
return {success:1};
}
- // setWait(false);
return {success:0, message:data.message};
}
catch(err)
{
-// setWait(false);
return {success:0, message:'Server Error!'};
}
}
-// export const logout = async () =>
-// {
-// await Axios.get('logout.php');
-// }
+export const getProfilData = async () =>
+{
+ const profilData = await Axios.post('getProfilData.php');
+ const {data} = profilData;
+ if(data.success && data.user)
+ {
+ return data;
+ }
+ else
+ {
+ return null;
+ }
+}
+export const getUser = async () =>
+{
+ const {data} = await Axios.get('getUser.php');
+ if(data.success && data.user)
+ {
+ return data;
+ }
+ else
+ {
+ return null;
+ }
+}
+