This commit is contained in:
gcch 2025-06-19 16:07:29 +02:00
commit de73fc619a
3560 changed files with 747274 additions and 0 deletions

58
docs/STUFF.md Normal file
View file

@ -0,0 +1,58 @@
I'll see you soup
Google API
AIzaSyDGe62r-bDxvNuDCP6HIfWIJAMvelFxU1s
402628219773-hl8niqniiiklf15f9biou8g06pbm9sac.apps.googleusercontent.com
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
- Code promo ?
- La commande peut être associée au panier.
- Vu que l'on passe par l'API REST, le panier est dissocié de la commande.
- Il est possible de fixer le hash du panier dans la commande avec la fonction set_cart_hash de WC_Order.
- Cela permet par la suite d'utiliser la fonction cancel_order WC_Order à l'annulation de cette dernière lors du retour au Panier depuis Stripe.
- Ce ne sera possible qu'en utilisant un endpoint personnalisé réalisant ces opérations plutôt que l'API REST.
- Dans l'idéal,
- Ajouter un bouton "Reset cart" quelque part pour tout réinitialiser (et appeler cancel_order si implémenté)
---
- BadRequestError
- reponse.status === 400
- reponse.body = {
code: string,
message: string (différenciation sur le message ?),
data: {
status: number (400),
}
}
- Chargement de la page
- Récupération des informations à la génération de la page
- Panier
- Code promo
- Mode de livraison
- Sous-totaux
- Total
- Adresses
- Récupération des informations dans le LocalStorage
- Code promo
- Mode de livraison
- Adresses
- À l'injection de données du LocalStorage
- Mettre à jour les sous-totaux
- À l'appui sur le bouton de calcul de la livraison et au succès de la requête
- Mettre à jour les méthodes de livraison
- Mettre à jour les sous-totaux et le total
- Sauvegarder les nouvelles données dans le LocalStorage
- Événements à créer
- MiseAJourCodePromo
- Se déclenche quand le champ du Code promo est modifié
- MiseAJourProduits
- Se déclenche quand une des lignes du Panier est modifiée (addition/soustraction/suppression)
- MiseAJourMethodeLivraison
- Se déclence quand le choix de la Méthode de livraison est modifié
- MiseAJourAdresses
- Se déclenche quand un des champs du formulaire des adresses est modifié

60
docs/TODO.md Executable file
View file

@ -0,0 +1,60 @@
- PAGE PANIER
- [-] Bouton « Réinitialiser » pour les Articles
- [-] Bouton « Réinitialiser » pour les Adresses
- [ ] Sauvegarder la dernière adresse validée dans le LocalStorage
- VITE
- Récupérer les liens des fichiers JS depuis le manifeste dans les fichiers PHP
- Menu Mobile
- Reprendre pour suivre la maquette initiale
- PayPal à faire
- Styles pour les focus à faire
- Boutons
- Champs
- Utiliser un polyfill pour BroadcastChannel
- PAGE SHOP
- [ ] Faire apparaître le menu des catégories de Produits quand on scroll vers le haut
- PAGE PANIER
- MÉTHODES DE LIVRAISON
- [ ] Proposer la livraison à domicile en Belgique et en France pour le coût unique de 8 euros, quel que soit le montant de la commande
- PAGE PRODUIT
- Retirer les flèches de défilement.
- Réduire l'image en focus pour que l'on perçoive les images précédentes/suivantes.
- PIED DE PAGE
- Réduire la hauteur.
- TOUTES LES PAGES
- Trouver la source des bordures superflues.
---
## Bouton « Retour en haut »
Un bouton « Retour en haut » permet pour un Utilisateur de rapidement revenir au sommet d'une page fournie en contenu.
Ne pas proposer ce bouton pour des pages faibles en contenus. Hoa Loranger recommende ainsi d'utiliser le seuil de **plus de quatre pages** de contenu (une page correspond à ce qui traversé avec l'appui sur la touche Espace dans le navigateur).
### Apparence et contenu
- Un lien `<a>` vers une ancre située en haut de la page (par exemple `#en-tete`) OU un bouton utilisant _JavaScript_ pour revenir en haut.
- Cet élément doit en envelopper deux autres :
- une icône sous forme de balises `<img>` ou `<svg>` avec un attribut `aria-hidden="true"` ;
- un texte « Retour en haut » qui peut être visuellement caché mais toujours accessible par les lecteurs d'écrans via une classe `.visuellement-cache`.
- Le bouton apparaît au sommet du reste du contenu.
- On peut idéalement ajouter une impression de profondeur avec l'utilisation d'ombres.
### Comportement
- Le bouton apparaît en bas à droite de l'écran une fois que l'Utilisateur a défilé plus d'une page.
- Il disparaît en-deça de ce seuil.
- Le bouton reçoit alors l'attribut `aria-hidden="true"` et `tabindex="-1"` pour éviter que l'Utilisateur _tab_ dessus par erreur.
- Quand il reçoit le focus, cela doit être visuellement indiqué.
- Il est idéalement le dernier élément dans la _tabbing sequence_.
- Le clic sur le bouton renvoie l'Utilisateur au sommet de la page, avec ou sans défilement doux.
- Considérations pour les Utilisateurs avec lecteurs d'écran :
- Le renvoie au sommet de la page doit s'accompagner à un focus sur le premier élément pour le recevoir (par exemple un bouton).
### Liens
- [Creating an accessible 'back to top' button](https://jhartshorne.co.uk/posts/back-to-top/).
- [Back-to-Top Button Design Guidelines](https://www.nngroup.com/articles/back-to-top/).
- [Back to Top](https://designsystem.utah.gov/library/components/navigationLinks/backToTop).

22
docs/lol/cute.ts Executable file
View file

@ -0,0 +1,22 @@
const etapes = [
"┌(・ω・)┘",
"└(・ω・)┐",
"┌(;・ω・)┘",
"└(;・ω・)┐",
"┌(;・ω・;)┘",
"└(;・ω・;)┐",
];
const assigneTexte = (texte: string): void => ELEMENTS.BOUTON_CODE_PROMO.textContent = texte;
let index = 0;
const z = {};
const callback = () => {
if (!ELEMENTS.BOUTON_CODE_PROMO.hasAttribute(ATTRIBUT_CHARGEMENT)) {
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Apply";
clearInterval(z.interval);
}
assigneTexte(etapes.at(index) ?? "Loading...");
index = index + 1 === etapes.length - 1 ? 0 : index + 1;
};
callback();
z.interval = setInterval(callback, 500);

View file

@ -0,0 +1,9 @@
# Informations produit sous forme de grille
- L'idée est de réimplémenter les informations essentiels du produit (nom, prix), le sélecteur de variation, les textes de détail, de conditions et d'entretien, et le bouton d'ajout au Panier.
- Plutôt qu'un encart flottant, contenant tout, il n'y aurait qu'une barre pleine longueur comprenant nom, prix et sélecteur de variation (`.essentiel-produit`).
- Il flotterait en bas de l'écran jusqu'à ce se poser à la fin des photos.
- Une nouvelle section, statique elle et faisant suite à la fois aux photos et à la barre, s'afficherait en pleine longueur sous forme d'accordéon, avec les anciens onglets comme sections.
- Par défaut, la section « Détails » serait développée.
- `<details>` et `<summary>` sont aujourd'hui pris en charge par les navigateurs (niveau _Baseline_), mais l'attribut `name` permettant l'ouverture exclusive d'une section par accordéon (p. ex. le développement d'une ferme toutes les autres) n'a que récemment été implémentée (2024 pour _Firefox_).
- Une implémentation en _JavaScript_ est donc pour l'instant nécessaire.

View file

@ -0,0 +1,5 @@
# Remaniement du défilement des photos de la page Produit
- Les flèches de défilement sont supprimées.
- À la place, les photos ne s'affichent plus en pleine longueur.
- Elles le sont à ~93%, pour que l'on perçoive sur les bords la photo précédente/suivante et signale à l'utilisteur qu'il est possible de défiler.