modification concernant l'affichage de type de congés dans la pagedemande+Affichage du service du collabrateur et son rôle+ version mobile de la page demande

This commit is contained in:
2025-08-11 17:19:49 +02:00
parent f5ee031efc
commit 871f166457
8 changed files with 558 additions and 764 deletions

View File

@@ -15,13 +15,12 @@ export const AuthProvider = ({ children }) => {
const [isLoading, setIsLoading] = useState(true);
useEffect(() => {
// Vérifier si l'utilisateur est déjà connecté
const savedUser = localStorage.getItem('user');
if (savedUser) {
try {
setUser(JSON.parse(savedUser));
} catch (error) {
console.error('Erreur lors du parsing de l\'utilisateur sauvegardé:', error);
console.error("Erreur parsing utilisateur sauvegardé:", error);
localStorage.removeItem('user');
}
}
@@ -30,7 +29,6 @@ export const AuthProvider = ({ children }) => {
const login = async (email, password) => {
try {
// Tester plusieurs URLs possibles selon la configuration locale
const possibleUrls = [
'http://localhost/GTA/project/public/login.php',
'http://localhost:80/GTA/project/public/login.php',
@@ -39,29 +37,16 @@ export const AuthProvider = ({ children }) => {
];
let response = null;
let lastError = null;
for (const url of possibleUrls) {
try {
console.log(' Test URL:', url);
console.log("Test URL:", url);
response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: email,
mot_de_passe: password
}),
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, mot_de_passe: password }),
});
if (response.ok) {
console.log(' URL qui fonctionne:', url);
break;
}
} catch (error) {
lastError = error;
console.log(' URL échouée:', url, error.message);
if (response.ok) break;
} catch {
continue;
}
}
@@ -71,35 +56,34 @@ export const AuthProvider = ({ children }) => {
}
const text = await response.text();
console.log(' Réponse brute:', text);
// Vérifier si la réponse est du JSON valide
let data;
try {
data = JSON.parse(text);
} catch (parseError) {
console.error(' Réponse non-JSON:', text.substring(0, 200));
throw new Error('Le serveur PHP ne répond pas correctement. Vérifiez que PHP est démarré.');
} catch {
console.error("Réponse non-JSON:", text.substring(0, 200));
throw new Error("Le serveur PHP ne répond pas correctement.");
}
if (data.success) {
const userData = {
id: data.user.id,
name: data.user.prenom + ' ' + data.user.nom,
name: `${data.user.prenom} ${data.user.nom}`,
prenom: data.user.prenom,
nom: data.user.nom,
email: data.user.email,
role: data.user.role || 'Employe'
role: data.user.role || 'Employe',
service: data.user.service || 'Non défini'
};
setUser(userData);
localStorage.setItem('user', JSON.stringify(userData));
return true;
} else {
console.error(' Échec connexion:', data.message);
console.error("Échec connexion:", data.message);
return false;
}
} catch (error) {
console.error('Erreur de connexion:', error);
console.error("Erreur de connexion:", error);
return false;
}
};
@@ -109,12 +93,7 @@ export const AuthProvider = ({ children }) => {
localStorage.removeItem('user');
};
const value = {
user,
login,
logout,
isLoading
};
const value = { user, login, logout, isLoading };
return (
<AuthContext.Provider value={value}>
@@ -123,4 +102,4 @@ export const AuthProvider = ({ children }) => {
);
};
export default AuthContext;
export default AuthContext;