Actions bulk
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.