corr add group
This commit is contained in:
parent
44e6ccbb6c
commit
b033087a60
@ -494,35 +494,69 @@ export default function EquipePage() {
|
||||
if (!response.ok) {
|
||||
// Try to parse error message from response
|
||||
let errorMessage = "Échec de la création du groupe";
|
||||
|
||||
// Provide status-specific default messages
|
||||
if (response.status === 409) {
|
||||
errorMessage = "Un groupe avec ce nom existe déjà";
|
||||
} else if (response.status === 400) {
|
||||
errorMessage = "Nom de groupe invalide";
|
||||
} else if (response.status === 401) {
|
||||
errorMessage = "Non autorisé";
|
||||
} else if (response.status === 500) {
|
||||
errorMessage = "Erreur serveur lors de la création du groupe";
|
||||
}
|
||||
|
||||
try {
|
||||
// Check if response has content
|
||||
const contentType = response.headers.get('content-type');
|
||||
const text = await response.text();
|
||||
const contentType = response.headers.get('content-type') || '';
|
||||
let text: string = '';
|
||||
|
||||
if (text && contentType?.includes('application/json')) {
|
||||
try {
|
||||
const errorData = JSON.parse(text);
|
||||
errorMessage = errorData.message || errorData.error || errorMessage;
|
||||
} catch {
|
||||
// If JSON parsing fails, use the text
|
||||
errorMessage = text || errorMessage;
|
||||
try {
|
||||
text = await response.text();
|
||||
} catch (textError) {
|
||||
console.error('Error reading response text:', textError);
|
||||
// If we can't read the text, use the default error message and skip parsing
|
||||
text = '';
|
||||
}
|
||||
|
||||
// Only try to parse if we have text content
|
||||
if (text && typeof text === 'string' && text.trim().length > 0) {
|
||||
if (contentType.includes('application/json')) {
|
||||
try {
|
||||
const errorData = JSON.parse(text);
|
||||
errorMessage = errorData.message || errorData.error || errorMessage;
|
||||
} catch (parseError) {
|
||||
// If JSON parsing fails, use the text (truncated if too long)
|
||||
console.warn('Failed to parse error response as JSON:', parseError);
|
||||
errorMessage = text.length > 200 ? text.substring(0, 200) + '...' : text;
|
||||
}
|
||||
} else {
|
||||
// If there's text but not JSON, use it (truncated if too long)
|
||||
errorMessage = text.length > 200 ? text.substring(0, 200) + '...' : text;
|
||||
}
|
||||
} else if (text) {
|
||||
// If there's text but not JSON, use it
|
||||
errorMessage = text;
|
||||
} else {
|
||||
// If no content, use status text
|
||||
errorMessage = response.statusText || errorMessage;
|
||||
}
|
||||
} catch (error) {
|
||||
// If anything fails, use status text or default
|
||||
console.error('Error parsing error response:', error);
|
||||
errorMessage = response.statusText || errorMessage;
|
||||
// If anything fails reading the response, use the default message
|
||||
console.error('Error processing error response:', error);
|
||||
// errorMessage already has a default value, so we keep it
|
||||
}
|
||||
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
|
||||
const newGroup = await response.json();
|
||||
// Only parse JSON if response is OK
|
||||
let newGroup;
|
||||
try {
|
||||
const text = await response.text();
|
||||
if (!text || text.trim().length === 0) {
|
||||
throw new Error("Réponse vide du serveur");
|
||||
}
|
||||
newGroup = JSON.parse(text);
|
||||
} catch (parseError) {
|
||||
console.error("Error parsing success response:", parseError);
|
||||
throw new Error("Erreur lors de la lecture de la réponse du serveur");
|
||||
}
|
||||
|
||||
setGroups(prev => [...prev, newGroup]);
|
||||
setNewGroupDialogOpen(false);
|
||||
setNewGroupName("");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user