YaYaw TableYaYaw Table

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 :

  1. L'utilisateur clique sur Copy ou Delete.
  2. La boîte de dialogue s'ouvre et stocke l'action en attente.
  3. Les clics externes sont ignorés tant que la confirmation est ouverte.
  4. Confirm exécute l'action en attente exactement une fois.
  5. 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.

On this page