‫Instructeur : Terminons maintenant enfin cette partie
‫de la fonctionnalité de connexion.
‫Et rappelez-vous comment j'ai dit que
‫dans cette vidéo, je voulais implémenter une
‫très bonne alerte lorsque l'utilisateur se connecte avec succès,
‫et donc pour voir cela, déconnectons l'utilisateur pour
‫le moment en supprimant le cookie manuellement.
‫Rechargeons, et maintenant bien sûr, l'utilisateur
‫ne devrait plus être connecté, et en
‫effet il ne l'est pas.
‫Comme nous le savons déjà, c'est parce que le
‫cookie n'a pas été envoyé dans la demande.
‫Il y a donc un middleware connecté que nous avons
‫créé dans la dernière
‫vidéo n'a pas mis l'objet utilisateur en réponse. locaux, vous vous en
‫souvenez ?
‫Donc, si ce n'est pas là, le manuel de l'utilisateur ne sera
‫pas rendu, et à la place cette partie sera rendue
‫afin que nous puissions maintenant cliquer ici sur Connexion.
‫Donc, cette alerte dont je parlais avant, je veux qu'elle
‫apparaisse ici essentiellement au début, puis après
‫une seconde et demie,
‫nous voulons toujours faire ce rechargement.
‫Passons donc à la page d'accueil principale.
‫Quoi qu'il en soit,
‫créons quelques fonctions pour cette alerte dans un autre fichier séparé.
‫Donc nouveau fichier,
‫alerte. js.
‫D'accord, mais maintenant, avant de pouvoir passer à autre chose,
‫nous devons réfléchir
‫un peu à notre architecture frontale ici.
‫Maintenant, ce cours, bien sûr, ne concerne pas le front-end,
‫mais nous devons au moins nous en
‫soucier un peu ici,
‫car nous commençons vraiment à
‫obtenir une bonne quantité de fichiers
‫ici, et les inclure tous dans nos
‫pages n'est pas une bonne pratique.
‫Donc,
‫comme nous l'avons fait ici.
‫Ce n'est donc pas une bonne pratique.
‫Nous ne devrions avoir qu'un seul gros fichier
‫JavaScript qui inclut tout le code.
‫Ainsi, dans le développement frontal JavaScript moderne,
‫nous utilisons généralement ce qu'on appelle un bundler de modules.
‫Le plus populaire est probablement toujours Webpack, mais généralement
‫Webpack nous pose beaucoup de problèmes et
‫c'est vraiment pénible de le configurer.
‫Il y a donc en fait un très gentil petit nouveau dans le
‫quartier, pour ainsi dire, qui s'appelle Parcel.
‫Nous allons donc jeter un œil à cela, voir si cela apparaît déjà,
‫et en effet, c'est celui-là.
‫Un bundler d'applications Web si rapide et sans configuration.
‫C'est donc exactement ce que nous recherchons.
‫Simplement un bundler qui ne nécessite aucune configuration
‫complexe, car nous ne voulons pas
‫perdre de temps avec cela.
‫Très bien, alors allons-y et installons-le ici.
‫Donc npm install et
‫je ne sais pas si c'est juste Parcel en fait.
‫Alors
‫revenons ici.
‫C'est probablement Parcel. js ou quelque chose,
‫parce que je me souviens de la dernière fois que
‫je l'ai installé, cela n'a pas fonctionné tout de suite, alors vérifions cela.
‫Oui, en effet, c'est Parcel-bundler.
‫Maintenant, nous avons une erreur.
‫D'accord, j'ai donc oublié de l'enregistrer en tant que dépendance de développement.
‫Donc, nous le voulons en fait comme un développeur de sauvegarde, d'accord,
‫et c'est parce que c'est un outil de développement.
‫Maintenant, quelque chose n'allait toujours pas.
‫Laissez-moi l'essayer avec sudo ici.
‫Et donc, si cela ne fonctionnait pas
‫non plus dans votre cas, utilisez simplement sudo pour obtenir les autorisations appropriées.
‫Très bien, alors jetons un coup d'œil à notre paquet. json
‫et en effet le voici, d'accord.
‫Maintenant, si vous regardez
‫cette vidéo quelque temps après que je l'ai
‫enregistrée, ils sont peut-être déjà passés à la version numéro
‫deux et cela, comme nous le
‫savons déjà, pourrait introduire des changements de rupture.
‫Et donc à partir de maintenant, si vous obtenez des erreurs que
‫vous n'avez pas vues ici dans
‫la vidéo, veuillez installer ce package ici en utilisant la
‫version .
‫1, d'accord.
‫Donc, en
‫gros, ajoutez-en un comme ça, d'accord.
‫Donc, cela vous annonce alors que vous rencontrez ces erreurs étranges et j'espère
‫que cela m'épargnera également des tonnes de commentaires
‫négatifs ou de critiques négatives qui
‫s'attendent à ce que je mette à jour toutes mes vidéos toutes les deux
‫semaines simplement parce qu'un outil est mis à jour, et bien
‫sûr ce n'est pas possible.
‫Tant de fois, la solution
‫la plus simple consiste simplement à utiliser la
‫même version que celle que j'utilise dans la vidéo, d'accord.
‫Quoi qu'il en soit, maintenant, afin d'utiliser réellement
‫Parcel, ajoutons quelques scripts ici.
‫J'en rajoute donc un à regarder ou JavaScript.
‫D'accord, et pour
‫cela j'utilise la commande Parcel watch.
‫Cela fonctionnerait déjà très bien dès la sortie de la
‫boîte, mais je veux encore configurer un peu,
‫car sinon, cela va me mettre le paquet final dans
‫certains dossiers que je ne veux pas.
‫Précisons donc quel dossier il doit réellement surveiller.
‫C'est donc public/JavaScript puis index. js, c'est donc notre point d'entrée et
‫c'est le fichier
‫que nous allons créer dans une seconde.
‫D'accord.
‫Ensuite, le répertoire de sortie doit également être
‫en public.
‫js, d'accord.
‫Plusieurs fois, vous aurez des
‫dossiers différents pour le développement et pour la
‫sortie, mais dans ce cas, comme il s'agit d'une architecture
‫très simple, je vais mettre le fichier bundle au
‫même endroit que les fichiers de développement.
‫Très bien, spécifions également le fichier de
‫sortie et
‫cela devrait donc être bundle. js, d'accord.
‫Alors maintenant, je peux l'exécuter et il examinera ensuite
‫ce fichier ici et verra si quelque chose change ou dans
‫l'une des dépendances et chaque
‫fois que cela se
‫produira, il regroupera à nouveau tous
‫les fichiers dans cet ensemble. js, d'accord.
‫Ensuite, dupliquons
‫également cela, car nous voulons également une
‫version finale, disons de production, d'accord.
‫Donc celui-ci, nous allons exécuter ceux où
‫ils sont vraiment terminés, d'accord.
‫Donc ça prend un peu plus de temps, mais
‫ça fait aussi un peu plus de trucs d'optimisation, mais ça, bien
‫sûr, nous n'avons pas besoin de développement.
‫En développement comme toujours, nous voulons juste que cela fonctionne.
‫Exécutons donc npm
‫avec watch:js, mais avant cela, créons en fait
‫l'index. js.
‫Fermons ici certains de ces dossiers.
‫C'est un peu trop confus comme ça.
‫Donc index. js et faisons une simple
‫console. connectez-vous ici pour le moment.
‫Bonjour de Parcel,
‫d'accord.
‫Ensuite, allons également à notre
‫base ici, puis nous allons maintenant commenter tout cela
‫et n'inclure
‫que le fichier bundle.
‫Encore une fois, un fichier qui contiendra essentiellement tout le code qui
‫se trouve dans tous les autres fichiers
‫et toutes leurs dépendances.
‫Alors faisons une sauvegarde, et maintenant, exécutons ceci, voyons ce que
‫nous obtenons là.
‫Et en effet, nous avons obtenu notre nouveau fichier, qui est bundle. js et il
‫contient déjà tout ce tas de code, d'accord,
‫simplement pour cette ligne de code à ce stade.
‫Mais de toute façon rechargeons notre page
‫ici, et bonjour de Parcel.
‫Cela a donc fonctionné, et maintenant allons-y et
‫installons ce fichier ici.
‫Donc, pour éviter toute confusion, fermons ces fichiers dont
‫nous n'avons plus besoin pour ce que
‫nous faisons en ce moment.
‫Donc ça fait beaucoup de choses.
‫D'accord, celui-ci non plus.
‫Alors maintenant, l'idée est essentiellement que cet indice. js est notre
‫fichier d'entrée, et donc dans celui-ci,
‫nous ne pouvons pas obtenir de données
‫de l'interface utilisateur, puis nous déléguons des actions
‫à certaines fonctions provenant de ces autres modules ici essentiellement.
‫Nous avons donc maintenant le module de
‫connexion, nous avons notre module d'alertes, et
‫comme dans Node. js, nous
‫pouvons maintenant exporter les données de ces modules.
‫Alors faisons-le, et ce que je veux
‫exporter, c'est cette fonction ici.
‫Maintenant, cela fonctionne un peu différemment
‫de celui de Node. js
‫car Node. js utilise quelque chose
‫appelé CommonJS pour implémenter des modules.
‫Je ne sais pas
‫si j'ai mentionné cela lorsque nous
‫avons parlé des modules pour la première fois, mais ici, dans JavaScript frontal depuis ES2015
‫ou ES6, il existe également quelque chose appelé modules en JavaScript.
‫La syntaxe est un
‫peu différente, mais en fait la façon dont
‫cela fonctionne dans les coulisses, mais en fait, si vous comprenez
‫comment cela fonctionne avec CommonJS, celle-ci sera très similaire.
‫Ainsi, les modules ES6 utilisent la syntaxe d'import export.
‫Donc ici, tout ce que nous avons à faire est de dire
‫exporter, puis tout ce que nous voulons exporter à partir de ce
‫fichier, et c'est vraiment tout.
‫Maintenant, ce morceau de code ici, nous allons
‫l'utiliser dans le fichier d'index.
‫Alors rappelez-vous comment j'ai dit que ce fichier
‫ici sert davantage à obtenir des données de l'interface
‫utilisateur, puis à déléguer l'action.
‫C'est donc exactement ce que nous faisons ici, d'accord.
‫Alors là on n'a que ce genre de
‫module qui exporte ensuite la fonction login.
‫Ensuite, nous pouvons importer cela ici et appeler
‫login ici même dans index. js et
‫ça marche comme ça.
‫Donc, importez au lieu d'exiger ensuite
‫le nom de la variable que nous voulons importer.
‫J'utilise donc des accolades ici.
‫Cela s'appelle donc
‫login et ensuite du nom du fichier.
‫Qui dans ce cas, même répertoire, login.
‫Maintenant, désactivons également eslint ici, et j'ai utilisé ces
‫accolades ici, essentiellement parce que nous effectuons l'exportation
‫de cette manière, mais il existe également quelque chose
‫de similaire à module. export qui est
‫en quelque sorte l'exportation par défaut.
‫Ainsi, dans les modules ES6, cela s'appelle en fait une exportation par défaut.
‫Donc, dans ce cas, nous n'aurions pas besoin de ces accolades.
‫D'accord.
‫Pour le moment, nous devons procéder comme
‫ceci, car c'est bien le nom de cette fonction que
‫nous avons exportée, d'accord.
‫Maintenant, quelque chose de vraiment important dans cette connexion est que
‫nous avons utilisé axios.
‫Et rappelez-vous comment j'ai dit que nous allions l'installer
‫à partir de npm en tant que module npm, n'est-ce pas ?
‫Faisons-le maintenant, et en fait parce que nous avons
‫déjà commenté les axios d'ici.
‫Donc, pour le moment, la connexion ne peut pas utiliser axios.
‫Eh bien parce que nous ne l'avons plus inclus ici.
‫Allons donc ajouter, ouvrir un nouveau terminal
‫et installer axios dans notre projet.
‫Alors maintenant, tout ce que nous avons à faire est de dire importer axios
‫depuis axios, et c'est tout,
‫très bien.
‫Donc ce fichier, pour l'instant du moins, est terminé mais
‫ne le fermons pas car nous en
‫aurons encore besoin très bientôt.
‫Ensuite, nous devrions également installer un polyfill, qui permettra
‫également à certaines des nouvelles fonctionnalités
‫JavaScript de fonctionner dans les anciens navigateurs.
‫Alors disons npm install et celui-ci ici
‫semble un peu bizarre.
‫Ajoutons donc babel/polyfill, comme
‫ceci.
‫Ensuite, ici, nous
‫allons
‫importer comme ça, d'accord.
‫Donc celui-ci ici, nous ne l'enregistrons dans aucune variable, car ce
‫n'est pas du tout nécessaire.
‫Tout ce que nous voulons que cela fasse, c'est essentiellement
‫d'être inclus dans notre bundle final pour bien
‫polyremplir certaines des fonctionnalités de JavaScript.
‫Très bien, et c'est donc aussi pourquoi il est
‫ici en première ligne de ces importations.
‫Quoi qu'il en soit, importons maintenant cette mapbox également.
‫Pour cela, nous devons d'abord
‫créer une fonction qui va faire tout cela ici.
‫D'accord.
‫Créons donc export
‫displayMap,
‫qui prendra en compte le tableau des emplacements.
‫Cela sera donc effectivement lu dans l'index. js, d'accord.
‫Donc encore une fois, index. js sert davantage à obtenir des
‫données à partir de l'interface utilisateur, donc à
‫partir du site Web, puis à déléguer certaines actions à ces autres
‫modules, d'accord.
‫Par conséquent, ce genre de choses ici sera fait à l'intérieur d'index.
‫Faisons-le ici.
‫Ensuite, importez displayMap
‫mapbox, d'accord.
‫Appelons cela
‫aussi avec les emplacements.
‫Maintenant, rappelez-vous quand nous avons créé cette carte et rappelez-vous comment
‫il nous a demandé si nous voulions utiliser
‫la bibliothèque mapbox sur npm?
‫Nous pourrions donc maintenant aller de l'avant
‫et utiliser celui-ci au lieu de celui que nous utilisons actuellement.
‫Alors bon ce n'est
‫pas ici.
‫Ouais, donc celui-ci.
‫Voici donc la bibliothèque mapbox que nous utilisons
‫actuellement, mais encore une fois, il
‫existe également une version npm.
‫Donc, nous n'aurions pas besoin d'avoir celui-ci.
‫Cependant, pour une raison quelconque, il
‫y a un problème avec l'utilisation de cette bibliothèque avec Parcel, d'accord.
‫Donc, d'autres personnes rencontrent ce problème.
‫Nous ne pouvons donc pas utiliser la bibliothèque
‫mapbox npm avec Parcel.
‫C'est donc une raison pour laquelle je le fais toujours comme ça.
‫D'accord.
‫Mapbox est donc complété par ceci.
‫Nous n'en avons plus besoin non plus.
‫Maintenant, débarrassons-nous en fait de certaines de ces erreurs que
‫nous avons vues ici.
‫Eh bien maintenant, ils ne
‫sont plus là, mais par exemple, nous avons eu
‫le problème que ce code ici créait
‫des erreurs lorsque nous étions sur des pages qui n'avaient pas cette carte ici, n'est-ce pas.
‫Parce que bien sûr sur la page de détail a cette carte
‫donc cet élément, mais alors ce code s'exécute bien sûr
‫sur toutes les autres
‫pages, cela créera alors des erreurs là-bas.
‫Alors corrigeons ça.
‫Donc, ce que je fais ici, c'est d'abord
‫créer un élément avec cela, puis tester s'il existe réellement
‫avant d'exécuter cette ligne de code.
‫Nous allons donc créer ici quelques éléments DOM.
‫Et ici
‫je dirais délégation.
‫Donc si mapbox
‫et alors seulement à ces deux actions
‫ici, d'accord.
‫Ici c'est aussi puis mapbox et
‫c'est beaucoup plus sympa.
‫Ici, mettons également des
‫valeurs, et je vais mettre ces
‫deux-là parce qu'en fait nous pourrions en avoir besoin
‫ou en fait nous en aurons besoin pour d'autres choses également.
‫Donc, de cette façon, c'est un peu plus propre.
‫Ajoutons également cet écouteur d'événement
‫ici uniquement si cet élément existe, d'accord.
‫Parce que bon, encore une fois, cela créera une erreur si ce n'est pas le cas.
‫Donc loginform, et
‫donc
‫si
‫et ensuite réutilisons-le ici, sauvegardons-le, et maintenant
‫ça a l'air mieux.
‫D'accord.
‫Fermons en fait ce terminal.
‫Ceci, vous devriez continuer à regrouper notre code chaque fois
‫qu'il y a une sauvegarde.
‫Enregistrons-le à nouveau ici.
‫Bon, j'espère que ça a changé maintenant.
‫Alors allons-y et essayons cela.
‫Donc, si vous pouvez toujours vous connecter à ce stade,
‫cela signifie que cela a réellement fonctionné.
‫Eh bien peut-être pas.
‫Essayons à nouveau ici.
‫Très bien, donc il y a quelque chose qui ne va pas ici.
‫Donc, comme toujours, enregistrons cet e-mail et ce mot de passe
‫sur la console ici.
‫Je veux dire, parce que nous savons déjà
‫qu'en fait cette fonction est appelée ici, n'est-ce pas.
‫Sinon, nous n'aurions même pas l'erreur.
‫Exact, car cette erreur vient clairement de notre API.
‫Donc, tout ce que nous avons ici fonctionne réellement, je crois.
‫Jetons un œil à la console.
‫Il semble donc qu'il n'y ait en fait pas de nom d'utilisateur
‫et de mot de passe.
‫D'accord.
‫Je ne sais pas pourquoi.
‫Jetons un coup d'œil si nous obtenons réellement quelque chose.
‫Alors connectez-vous
‫et je les enregistrerai
‫également ici, pas ici mais ici.
‫Et donc apparemment, le problème doit
‫être que le nom d'utilisateur et le mot
‫de passe ne sont pas vraiment définis.
‫Oh, et maintenant, bien sûr, je peux voir pourquoi.
‫Quelle stupide erreur.
‫Nous essayons donc de lire ces valeurs ici,
‫dès le début lorsque la page se
‫charge, et bien sûr, à ce stade, ces valeurs ne sont pas définies.
‫Donc, bien sûr, nous ne pouvons
‫les définir qu'ici dans notre écouteur d'événement, n'est-ce pas.
‫Donc, au moment où cette fonction ici est
‫bien appelée, bien sûr, l'e-mail et le mot de passe sont
‫définis, c'est donc le moment où nous pouvons les lire.
‫C'était donc un peu stupide, mais,
‫vous savez, parfois ce genre de choses arrive.
‫Maintenant, copions ceci ici.
‫Cette fois, nous sommes connectés avec succès,
‫ce qui signifie que notre code ici fonctionne toujours.
‫Super, et maintenant passons à la dernière partie que
‫nous voulions faire dans
‫cette conférence, qui est en fait de créer ces alertes, d'accord.
‫Créons donc une fonction appelée show alert et exportons-la.
‫Ainsi, lors de la connexion, nous importerons cette fonction et
‫l'utiliserons là-bas.
‫Donc, showAlert et ceci en
‫tant qu'entrée obtiendra un type et un message,
‫donc comme ça.
‫Et ce type
‫est soit un succès,
‫soit une erreur,
‫d'accord.
‫Car en fonction de cette entrée nous aurons alors des
‫CSS différents pour chacune de ces alertes et vous
‫le verrez dans une seconde.
‫Donc, ce que nous allons faire, c'est créer un
‫balisage HTML ici, puis l'insérer dans notre code HTML, c'est donc quelque
‫chose de très simple.
‫Donc, un balisage et la chaîne du modèle
‫et maintenant du bon HTML.
‫Il s'agit donc simplement d'un div avec une
‫classe d'alerte, puis
‫d'alerte -- donc un modificateur avec notre
‫type.
‫D'accord, et c'est pourquoi il
‫doit s'agir d'un succès ou d'une erreur.
‫Alors permettez-moi de montrer rapidement cela
‫en CSS, car je pense qu'il est vraiment important
‫de vraiment savoir comment tout cela se joue ensemble, d'accord.
‫Nous avons donc ici notre
‫classe d'alerte, puis le succès de l'alerte et l'erreur d'alerte.
‫Très bien.
‫Comme toujours, désactivons eslint ici, d'accord, et débarrassons-nous
‫de cela et maintenant, bien sûr,
‫voici le message que nous transmettons à
‫cette fonction.
‫Bien sûr, nous pourrions
‫ensuite l'utiliser dans toute l'application, mais dans
‫ce cas, nous n'en avons besoin ici que pour notre connexion.
‫Alors documentez-vous. queryselector, et maintenant
‫nous sélectionnons ici l'élément où
‫nous voulons inclure ce HTML que nous venons de créer.
‫C'est donc en fait juste au
‫début de l'élément body.
‫Donc tout en haut de la page.
‫Donc
‫body, puis insérez le HTML adjacent, donc celui-ci ici.
‫Si vous avez suivi mon cours complet
‫sur JavaScript, tout cela n'aura rien de nouveau pour
‫vous, d'accord.
‫Nous pouvons donc ici spécifier quelques mots-clés, et
‫dans ce cas, nous voulons afterbegin.
‫Donc, fondamentalement, cela signifie
‫que c'est à l'intérieur du corps, mais dès le début, d'accord.
‫Ensuite, le HTML, donc le
‫balisage, que nous voulons réellement inclure.
‫Super.
‫Cela va donc créer une alerte très simple
‫basée sur le type et la méthode, mais maintenant nous voulons également
‫une fonction pour masquer les alertes.
‫Alors créons-le ici aussi, exportons-le, et probablement nous n'en
‫avons même pas besoin en dehors d'ici,
‫mais toujours pour la réutilisation, c'est toujours une bonne idée
‫d'exporter tout cela.
‫Celui-ci n'a besoin de prendre aucun argument.
‫Alors maintenant, tout ce que nous allons faire est
‫de sélectionner l'élément avec la
‫classe d'alerte, puis de le supprimer.
‫Donc alerte de sélecteur
‫de requête.
‫Donc exactement le même nom de classe qu'ici.
‫Ensuite, nous devons utiliser une astuce
‫JavaScript dans laquelle nous devons passer d'un niveau
‫à l'élément parent, puis supprimer un élément enfant.
‫Donc, s'il y a un élément, alors
‫élément. parentElement. removeChild
‫puis l'élément.
‫D'accord.
‫Encore une fois, cela devrait être simplement du JavaScript de base
‫ou une manipulation DOM de base.
‫Donc, puisqu'il s'agit d'un cours
‫de nœud, je ne vais pas approfondir cela.
‫Quoi qu'il en soit, ce que je veux faire
‫ici maintenant, c'est que chaque fois que
‫nous affichons une alerte, masquez d'abord toutes les alertes qui existent déjà.
‫Nous devons donc toujours
‫nous assurer de toujours exécuter hideAlert.
‫Enfin, je veux aussi toujours masquer toutes les alertes après
‫cinq secondes.
‫Donc window
‫setTimeout hideAlert après cinq
‫secondes.
‫Très bien, et maintenant importons cela ici.
‫Afficher l'alerte, il a été appelé, n'est-ce pas ?
‫Oh showAlert, avec type et message.
‫Alors montreAlert
‫à
‫partir de là et ainsi de suite...
‫Ouais, donc nous voulons utiliser ce droit dans cet endroit.
‫Donc, au lieu de l'alerte JavaScript, nous
‫voulons faire showAlert, d'accord, et ici
‫la même chose.
‫Nous devons encore spécifier le
‫type ici,
‫et c'est donc le succès dans
‫ce cas et ici c'est l'erreur.
‫Nous avons atteint l'auto-complétion.
‫D'accord, c'est mieux.
‫Alors testons-le.
‫Et tout d'abord, nous devons nous déconnecter en supprimant ce cookie.
‫Rechargez, connectez-vous, et maintenant je
‫le teste
‫d'abord avec un mauvais mot de
‫passe et c'est parti.
‫Donc e-mail ou mot de passe incorrect directement dans notre belle alerte et vous
‫avez vu qu'au bout de cinq secondes, il a disparu.
‫Bien sûr, nous aurions pu
‫y mettre de l'animation sympa et tout,
‫mais je pense que comme ça, c'est déjà plus que suffisant.
‫Voyons donc cela à nouveau rapidement, et
‫c'est donc à cela que cela ressemblera, mais
‫quand c'est correct, alors bien sûr, cela devrait être vert.
‫Alors oui, connecté avec succès et nous
‫voyons un rechargement après une seconde et demie
‫et maintenant cela fonctionne vraiment.
‫C'est notre authentification complète sur le front-end.
‫C'était beaucoup de travail, mais si vous voulez mon avis, cela en vaut vraiment la peine.
‫Maintenant, la seule chose qui manque, c'est
‫que nous nous déconnections lorsque nous cliquons sur ce bouton ici.
‫Donc pour l'instant ce n'est pas
‫le cas et donc dans la prochaine vidéo réparons ça.