La zone qui cesse d'inviter
Une ligne sépare une zone de dépôt honnête d'une zone qui promet ce qu'elle ne peut pas tenir. Voici ce qui l'a rendue nécessaire.
Une ligne sépare une zone de dépôt honnête d’une zone qui promet ce qu’elle ne peut pas tenir.
const inviting = multiple || chosen.length === 0;
Voici ce qui l’a rendue nécessaire.
Sur l’écran des factures de nosferry.com, la personne qui émet la facture officielle joint le PDF dans un panneau latéral. Tout dans ce panneau nous appartenait : la typographie, les espacements, les arrondis, le mode sombre. Tout sauf un contrôle, qui affichait Choose File No file chosen dans la police de Chrome, en anglais, et que personne ne pouvait styliser. Le champ de fichier était le seul endroit du produit où le produit cessait de se ressembler.
La Dropzone de @akira-io/ui a réglé cela. Puis le composant s’est retrouvé sur l’écran réel, avec un PDF déjà joint, et il affichait toujours Drag a file here.
Il ne pouvait en accepter aucun. multiple était désactivé, un fichier était déjà choisi et le dépôt suivant aurait remplacé le précédent sans prévenir. La zone annonçait une capacité qu’elle n’avait pas. Aucune exception n’a été levée. Aucun test n’a viré au rouge.
Avec un fichier choisi et sans multiple, la zone de dépôt, son libellé et son bouton ne sont plus rendus. Restent le fichier, sa taille et le contrôle qui le retire, et remplacer suppose de retirer d’abord. Sous multiple, rien ne change, puisqu’il reste de la place pour un autre fichier. La racine et l’input caché restent montés dans les deux cas : c’est l’invitation qui disparaît, jamais ce qu’il y a dessous.
L’objection tient. C’est un état de plus à maintenir, et cela coûte un clic que personne ne payait avant. Cela reste le moindre mal. Une fausse invitation est un défaut que personne ne signale : on dépose un deuxième fichier, on voit le premier disparaître et on cesse de faire confiance au panneau. Le clic supplémentaire se voit. La promesse rompue, elle, ne se voit pas.
Rien de tout cela ne vient de la maquette.
Une maquette ne contredit jamais un composant. C’est le travail de l’écran réel.