fix la maj des participants et des propositions

This commit is contained in:
Yannick Le Duc
2025-08-25 22:41:39 +02:00
parent f768df7d1a
commit b7febbf713
9 changed files with 96 additions and 36 deletions

View File

@@ -42,9 +42,10 @@ export default function AddParticipantModal({ isOpen, onClose, onSuccess, campai
last_name: '',
email: ''
});
} catch (err) {
setError('Erreur lors de l\'ajout du participant');
console.error(err);
} catch (err: any) {
const errorMessage = err?.message || err?.details || 'Erreur lors de l\'ajout du participant';
setError(`Erreur lors de l'ajout du participant: ${errorMessage}`);
console.error('Erreur lors de l\'ajout du participant:', err);
} finally {
setLoading(false);
}

View File

@@ -48,9 +48,10 @@ export default function AddPropositionModal({ isOpen, onClose, onSuccess, campai
author_last_name: 'admin',
author_email: 'admin@example.com'
});
} catch (err) {
setError('Erreur lors de la création de la proposition');
console.error(err);
} catch (err: any) {
const errorMessage = err?.message || err?.details || 'Erreur lors de la création de la proposition';
setError(`Erreur lors de la création de la proposition: ${errorMessage}`);
console.error('Erreur lors de la création de la proposition:', err);
} finally {
setLoading(false);
}

View File

@@ -26,9 +26,10 @@ export default function DeleteParticipantModal({ isOpen, onClose, onSuccess, par
try {
await participantService.delete(participant.id);
onSuccess();
} catch (err) {
setError('Erreur lors de la suppression du participant');
console.error(err);
} catch (err: any) {
const errorMessage = err?.message || err?.details || 'Erreur lors de la suppression du participant';
setError(`Erreur lors de la suppression du participant: ${errorMessage}`);
console.error('Erreur lors de la suppression du participant:', err);
} finally {
setLoading(false);
}

View File

@@ -26,9 +26,10 @@ export default function DeletePropositionModal({ isOpen, onClose, onSuccess, pro
try {
await propositionService.delete(proposition.id);
onSuccess();
} catch (err) {
setError('Erreur lors de la suppression de la proposition');
console.error(err);
} catch (err: any) {
const errorMessage = err?.message || err?.details || 'Erreur lors de la suppression de la proposition';
setError(`Erreur lors de la suppression de la proposition: ${errorMessage}`);
console.error('Erreur lors de la suppression de la proposition:', err);
} finally {
setLoading(false);
}

View File

@@ -48,9 +48,10 @@ export default function EditParticipantModal({ isOpen, onClose, onSuccess, parti
});
onSuccess();
} catch (err) {
setError('Erreur lors de la modification du participant');
console.error(err);
} catch (err: any) {
const errorMessage = err?.message || err?.details || 'Erreur lors de la modification du participant';
setError(`Erreur lors de la modification du participant: ${errorMessage}`);
console.error('Erreur lors de la modification du participant:', err);
} finally {
setLoading(false);
}

View File

@@ -55,9 +55,10 @@ export default function EditPropositionModal({ isOpen, onClose, onSuccess, propo
});
onSuccess();
} catch (err) {
setError('Erreur lors de la modification de la proposition');
console.error(err);
} catch (err: any) {
const errorMessage = err?.message || err?.details || 'Erreur lors de la modification de la proposition';
setError(`Erreur lors de la modification de la proposition: ${errorMessage}`);
console.error('Erreur lors de la modification de la proposition:', err);
} finally {
setLoading(false);
}

View File

@@ -107,15 +107,32 @@ export const propositionService = {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
async update(id: string, updates: any): Promise<Proposition> {
const { data, error } = await supabase
.from('propositions')
.update(updates)
.eq('id', id)
.select()
.single();
if (error) throw error;
return data;
try {
// Effectuer la mise à jour directement
const { data, error } = await supabase
.from('propositions')
.update(updates)
.eq('id', id)
.select('*')
.single();
if (error) {
console.error('Erreur Supabase lors de la mise à jour:', error);
if (error.code === 'PGRST116') {
throw new Error(`Proposition avec l'ID ${id} non trouvée`);
}
throw new Error(`Erreur lors de la mise à jour: ${error.message || 'Erreur inconnue'}`);
}
if (!data) {
throw new Error('Aucune donnée retournée après la mise à jour');
}
return data;
} catch (error: any) {
console.error('Erreur dans propositionService.update:', error);
throw error;
}
},
async delete(id: string): Promise<void> {
@@ -155,15 +172,32 @@ export const participantService = {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
async update(id: string, updates: any): Promise<Participant> {
const { data, error } = await supabase
.from('participants')
.update(updates)
.eq('id', id)
.select()
.single();
if (error) throw error;
return data;
try {
// Effectuer la mise à jour directement
const { data, error } = await supabase
.from('participants')
.update(updates)
.eq('id', id)
.select('*')
.single();
if (error) {
console.error('Erreur Supabase lors de la mise à jour du participant:', error);
if (error.code === 'PGRST116') {
throw new Error(`Participant avec l'ID ${id} non trouvé`);
}
throw new Error(`Erreur lors de la mise à jour du participant: ${error.message || 'Erreur inconnue'}`);
}
if (!data) {
throw new Error('Aucune donnée retournée après la mise à jour du participant');
}
return data;
} catch (error: any) {
console.error('Erreur dans participantService.update:', error);
throw error;
}
},
async delete(id: string): Promise<void> {