add function creatPost and login wp

This commit is contained in:
sebvtl728
2025-01-31 08:22:48 +01:00
parent 81ac3d831e
commit 841161cb9b
16 changed files with 1177 additions and 355 deletions
+115
View File
@@ -0,0 +1,115 @@
import { useState } from "react";
import { loginWithAppPassword, getToken, logout } from "../../auth";
import {
Box,
Button,
Card,
CardContent,
TextField,
Typography,
Container,
Avatar,
} from "@mui/material";
import LockOutlinedIcon from "@mui/icons-material/LockOutlined";
function TestLogin() {
const [username, setUsername] = useState("");
const [appPassword, setAppPassword] = useState("");
const [token, setToken] = useState(getToken());
const handleLogin = async (e) => {
e.preventDefault();
const newToken = await loginWithAppPassword(username, appPassword);
if (newToken) {
setToken(newToken);
// alert("Connexion réussie !");
} else {
alert("Échec de la connexion !");
}
};
const handleLogout = () => {
logout();
setToken(null);
// alert("Déconnexion réussie !");
};
return (
<Box
sx={{
backgroundImage: "url('https://source.unsplash.com/random/1600x900?technology')",
backgroundSize: "cover",
backgroundPosition: "center",
minHeight: "100vh",
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<Container maxWidth="xs">
<Card
sx={{
padding: 4,
boxShadow: 6,
borderRadius: 3,
textAlign: "center",
backdropFilter: "blur(10px)",
backgroundColor: "rgba(255, 255, 255, 0.8)",
}}
>
<CardContent>
<Avatar sx={{ margin: "auto", backgroundColor: "#0e467f" }}>
<LockOutlinedIcon />
</Avatar>
<Typography variant="h5" sx={{ fontWeight: "bold", mt: 2 }}>
{token ? "Bienvenue !" : "Connexion"}
</Typography>
{token ? (
<Button
variant="contained"
color="error"
onClick={handleLogout}
sx={{ mt: 3, width: "100%" }}
>
Déconnexion
</Button>
) : (
<form onSubmit={handleLogin}>
<TextField
label="Nom d'utilisateur"
fullWidth
margin="normal"
variant="outlined"
value={username}
onChange={(e) => setUsername(e.target.value)}
required
/>
<TextField
label="Mot de passe d'application"
fullWidth
margin="normal"
variant="outlined"
type="password"
value={appPassword}
onChange={(e) => setAppPassword(e.target.value)}
required
/>
<Button
type="submit"
variant="contained"
color="primary"
sx={{ mt: 3, width: "100%" }}
>
Se connecter
</Button>
</form>
)}
</CardContent>
</Card>
</Container>
</Box>
);
}
export default TestLogin;