Labo · Réception d'une proposition
Lecture seule, aucune écriture envoyée Ouvrir en pleine page

Vers quoi on part

Cette page charge la vraie proposition via l'API publique et rend les vrais composants de fiche. Les aperçus sont des iframes, qui ont leur propre viewport : les points de rupture réagissent comme sur un vrai appareil. Aucun bouton n'envoie quoi que ce soit au back.

Version
Point de vue
Écran
Identifiant de proposition
Validez avec Entrée. Collez l'identifiant d'une proposition artiste vers hôte pour voir ce sens avec ses vraies données.
375 px

Un seul bloc d'action, qui suit le défilement

Conversion

Le bloc est à sa place sous la proposition, puis se colle au bas de l'écran dès que le défilement le ferait sortir, en pleine largeur. Un seul bloc, donc pas de doublon, et aucun JavaScript, donc rien à désynchroniser.

position: sticky; bottom: 0

Le prix des places, pas un prix d'achat

Ton juste

Annoncer un montant total sur un évènement en billetterie laisse croire à l'hôte qu'il achète la prestation. On montre le prix des places et le public visé, qui lui disent si c'est réalisable chez lui. Le montant ne réapparaît que quand l'hôte règle vraiment.

wish.tariffes, wish.minimumPublicExpected, place.maxPublic

Les quatre versions de la page

Couverture

Hôte qui reçoit, artiste qui reçoit, et les deux vues de celui qui a envoyé. La page actuelle ne montre aujourd'hui aucun état à l'émetteur tant que la proposition est en attente.

sélecteur Point de vue

La date et l'heure en clair

Friction

« Voir le détail » n'ouvrait une modale que pour révéler une heure. Une seule date, comme le front en envoie depuis qu'on a vu que plusieurs dates étaient lues comme un choix à faire.

components/ProposalDetailCard.vue:21

Un refus qui garde le lien

Back déjà prêt

refusalMessage existe côté back et déclenche mail, SMS, message interne et ouverture de la conversation. Le front ne l'envoyait jamais : tous les refus passaient par la branche froide.

ProposalRefusalType.php:35, ProposalSubscriber.php:171

Les heures étaient fausses en ligne

Correctif

Sans fuseau explicite, Luxon rend dans le fuseau du serveur, et en build de production Vue garde le texte du serveur. Un créneau choisi à 18h00 s'affiche 16h00 pour tout le monde. Comparez les deux versions.

setZone('Europe/Paris')