swr login logout

This commit is contained in:
Peter Hoppe
2023-01-31 14:47:12 +01:00
parent 0a89c6aab1
commit 153d2156e1
8 changed files with 71 additions and 15 deletions

View File

@ -92,9 +92,6 @@ try
// $_SESSION['user'] = $user;
$_SESSION['user'] = $user->phparray();
var_dump($_SESSION['user']);
$returnData = new CMsg(
1,
200,

View File

@ -25,6 +25,13 @@
justify-content: center;
}
img
{
max-width: 300px;
max-height: 300px;
background: #ffffff;
}
@media print

View File

@ -20,6 +20,10 @@ import { TUser } from './context/UserContext';
const App: React.FC = () =>
{
const {data, error, isLoading} = useSWR("/user", getUser);
console.log('App getUser');
console.log(data);
if (error)
{
toast.error(error.message);
@ -44,7 +48,7 @@ const App: React.FC = () =>
return (
<div className="App">
<div className="col middle">
<BrowserRouter basename='/dog'>
<BrowserRouter basename='/dog/'>
{user && <Header />}
<Routes>
{user && <Route index path="/" element={<Profil/>} />}

View File

@ -11,7 +11,6 @@ function Header()
logOut();
toast.success("logged out!");
sleep(1000);
window.location.href = '/dog/';
}

View File

@ -1,15 +1,37 @@
import {useState} from 'react';
import { Link } from 'react-router-dom';
import { Link, useNavigate } from 'react-router-dom';
import './Login.css';
import {loginUser, sleep} from '../services/PhpApi'
import {getUser, loginUser, sleep} from '../services/PhpApi'
import { toast, Toaster } from 'react-hot-toast';
import useSWR from 'swr';
const Login = () =>
{
const [formData, setFormData] = useState({
email:'',
email:'',
password:''
});
// only for redirect
const {data, error, isLoading, mutate} = useSWR("/login", getUser);
const navigate = useNavigate();
console.log('Login getUser');
console.log(data);
if (error)
{
toast.error(error.message);
return (
<>
<Toaster toastOptions={{ position: "top-center" }} />
<div>failed to load</div>
</>);
}
if (isLoading) return (<div>loading...</div>);
if(data.success)
{
window.location.href = '/dog/';
}
const onChangeInput = (e: React.FormEvent<HTMLInputElement>) =>
{
@ -31,12 +53,12 @@ const Login = () =>
toast.error('Please Fill in all Required Fields!');
return;
}
const logResp = await loginUser(formData);
if(logResp.success)
{
toast.success(logResp.message);
sleep(1000);
window.location.href = '/dog/';
mutate(); // update swr
}
else
{

View File

@ -25,10 +25,10 @@ function Profil()
const user: TUser =
{
id: data.id,
qr_id: data.qr_id,
email: data.email,
name: data.name
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);
@ -87,6 +87,9 @@ function Profil()
return;
}
setFormData(formData);
update data with phpapi
mutate
}
const qr_refresh = (e: React.MouseEvent<HTMLButtonElement>) =>
@ -95,6 +98,9 @@ function Profil()
formData.qr_code = null;
setFormData(formData);
showData(data/*, e*/);
update data with phpapi
mutate
}
formData.email = data.data.email;
formData.name = data.data.name;

View File

@ -18,6 +18,8 @@ const upload = (file: File): Promise<any> =>
"Content-Type": "multipart/form-data",
}
});
console.log('CreateQr upload');
console.log(uploadRes);
// let a: number = 1+3;
// a++;

View File

@ -17,6 +17,8 @@ export const updateDog = async ({email, name, phone}:
name,
phone
});
console.log('Api updateDog');
console.log(data);
return data;
}
catch(err){
@ -60,6 +62,8 @@ export const registerUser = async ({email,password}:
email,
password
});
console.log('Api registerUser');
console.log(data);
return data;
}
catch(err)
@ -81,6 +85,8 @@ export const updateQR = async ({qr_width_cm, qr_height_cm, qr_fontsize, qr_visib
qr_visible_items,
qr_item_sequence
});
console.log('Api updateQR');
console.log(data);
return data;
}
catch(err)
@ -136,6 +142,19 @@ export const getProfilData = async () =>
export const getUser = async () =>
{
const res = await Axios.get('getUser.php');
console.log("Api getUser");
console.log(res);
const {data} = res;
return data;
}
export const session = async () =>
{
const res = await Axios.get('session.php');
console.log("Api session");
console.log(res);
const {data} = res;
return data;
}