Flux de confirmation et contrat des callbacks pour copy, delete, edit et export
Actions bulk
Flux de confirmation
copy et delete utilisent une boîte de dialogue de confirmation.
Comportement actuel :
- L'utilisateur clique sur
CopyouDelete. - La boîte de dialogue s'ouvre et stocke l'action en attente.
- Les clics externes sont ignorés tant que la confirmation est ouverte.
Confirmexécute l'action en attente exactement une fois.- La fermeture du menu suit le résultat du callback (
closeMenu).
Cela évite le cas précédent où un clic externe réinitialisait l'état pendant que la boîte de dialogue (portal) était ouverte.
Comportement déterministe des actions
edit: exécution immédiate.export: exécution immédiate.copy: confirmation toujours requise.delete: confirmation toujours requise.
Contrat des callbacks bulk
Structure de retour recommandée :
type BulkActionResult = {
success: boolean;
closeMenu: boolean;
clearSelection: boolean;
message?: string;
};Exemple (onBulkDelete)
onBulkDelete: async (rows) => {
const ids = rows.map((row) => String((row.original as { id: string }).id));
const response = await deleteMany(ids);
return {
success: response.success,
closeMenu: response.success,
clearSelection: response.success,
message: response.success
? `Deleted ${ids.length} rows`
: response.error ?? "Delete failed",
};
};Compatibilité legacy
YaYaw Table normalise encore les retours hérités des callbacks, mais le contrat explicite par objet est fortement recommandé pour un comportement prévisible.