Dans la précédente partie nous avons vu la mise en place du projet liste des tâches, avec la réflexion (très rapide) avant projet mais aussi son initialisation..
Pour rappel :
Le concept : Je me pose en dĂ©fi de coder une application web en ReactJS dans la limite d’une heure. Je partirais gĂ©nĂ©ralement d’une base vierge et essayerait de me tenir aux objectifs que je me fixe en dĂ©but d’exercice .
Continuons maintenant !
⏳ [00:30] Mise en place de l’architecture en Composants
![App.js Ă [00:30]](https://i2.wp.com/reactheure.fr/wp-content/uploads/2020/02/30app.jpg?fit=640%2C256&ssl=1)
Je commence par créer les composants :
- Header : Qui va contenir la phrase de bienvenue et le champs d’ajout d’une tâche
- List : Qui sera elle chargĂ©e d’afficher les tâches en cours et celles accomplies
Puis je les importe dans App.js.
Je pars sur une base très simple pour ces composants :

⏳ [00:33] Je passe App.js en composant également comme ceci :

Les plus observateurs ont peut ĂŞtre remarquĂ© que j’utilisais les classes de Grid de Bootstrap, mais aussi que je l’importe dans App.js !
En effet je n’utilise plus Bootstrap pour ses styles mais pour de la production rapide j’aime utiliser leur système de grilles…
Ainsi pour ne pas surcharger la solution avec du code inutilisĂ© j’utilise leur outil de customisation de paquet. En effet grâce Ă Less, vous pouvez ainsi choisir ce que vous voulez ou non. Je me suis donc crĂ©e une version de bootstrap contenant seulement leur système de grilles
⏳ [00:35] Création des GET + POST vers le LocalStorage
Comme je disais dans le premier article, on ne se reposera pas sur une API pour cet exercice. Cependant comme vous pouvez voir sur l’image ci-après le fonctionnement pour le Front est globalement le mĂŞme, et on pour amĂ©liorer cette application on peut rapidement remplacer les mĂ©thodes localStorage.X() vers un fetch par exemple.

Vous pouvez aussi remarquer que je lance dĂ©jĂ un this.postaToDo({test: « test »}). C’est un test du bon fonctionnement et voici le rĂ©sultat :

⏳ [00:39] Je ne m’attarde pas plus lĂ dessus mais je passe (en props) la data du state de App.js et la fonctions d’ajout, vers respectivement List et Header.
⏳ [00:41] Code du Header
Je commence Ă mettre du contenu textuel dans le Header : une salutation, le logo en texte (que je repasserais plus tard dans App.js pour une question de style).
✍️ Je mets aussi en place le champs d’entrĂ©e que je rĂ©cupère depuis la doc de react-suite.
Voici le code avant que je remplace l’alert de test du bouton « Ajouter une tâche » par la fonction passĂ©e en props depuis App.js

⏳ [00:45] Code de List
Il ne reste plus que 15 minutes au chrono, il faut s’activer maintenant pour gĂ©rer la fonctionnalitĂ© indissociable, l’affichage de la liste des tâches !
A ce moment lĂ je m’occupe de deux parties prĂ©liminaires : rĂ©cupĂ©rer le modèle de liste depuis la doc de react-swipeable-view
(pour rappel on veut pouvoir gĂ©rer l’Ă©tat d’une tâche en la faisant slider Ă gauche ou Ă droite)
mais aussi crĂ©er un loading pendant que l’application rĂ©cupère les tâches en cours !
(MĂŞme en localStorage il y a un minime dĂ©lais, pensez-y si vous ne voulez pas voir une console pleine d’erreurs ????)
Voici ce que ça donne :

Et voila le code :

⌛️ [00:59] Fin de la liste et du chrono.. ????
Et voilĂ nous arrivons dĂ©jĂ Ă la fin du chrono, sur les dernières minutes j’ai pu finir de mettre en place l’affichage de la liste pour les tâches en cours.
Voici le résultat final au chrono :

Malheureusement je manque de temps pour finir correctement toutes les fonctionnalitĂ©s… ????
Mais vu qu’on est sur mon blog et surtout que c’est la première Ă©dition de ce format ????, je me permets d’amĂ©liorer le rĂ©sultat pendant qqs dizaines de minutes supplĂ©mentaires….
⌛️ [01:23] Fin non officielle

Voici ce que ça donne ! ????????
Mieux non ?
Sur les dernières Ă©tapes j’ai ajoutĂ© les fonctions sur les Ă©lĂ©ments de la liste pour dĂ©finir l’action Ă effectuer en cas de slide sur suppression ou sur archivage. J’ai amĂ©liorĂ© le design global en allant notamment sur Illustrator pour sortir un petit sourire Ă la Amazon afin de crĂ©er un visage mignon avec le logo et rendre ça plus sympa !
Enfin j’ai amĂ©liorĂ© l’Ă©cran affichĂ© en cas oĂą aucune tâche n’est en cours comme vous pouvez le voir au-dessus.
Voilà que se termine la première édition du format #1hChrono ! ????
J’ai rĂ©ussi Ă rĂ©aliser (pour ce dĂ©lais imparti) une application pas piquĂ©e des hannetons ????. Cependant beaucoup de choses Ă apprendre du dĂ©passement du temps imparti ! En effet j’ai passĂ© beaucoup de temps Ă choisir les modules, faire un schĂ©ma, l’initialisation… Comme je disais et je pense ĂŞtre dans le vrai en persistant sur l’importance d’une bonne base avant de se lancer dans le code. ????
????‍♂️ Néanmoins je pense pouvoir gagner quelques minutes dans le futur en prenant des décisions plus rapidement et en augmentant globalement ma productivité sur ces étapes.
✍️ Question format : J’ai remarquĂ© que j’ai peut ĂŞtre mal dosĂ© les deux parties d’article, il y avait beaucoup de choses Ă montrer dans cet Ă©pisode final et ça impacte la longueur.
???? Je vais donc travailler ces points pour le prochain #1hChrono !
Je vous souhaite d’ici lĂ une bonne semaine de code (as-t-on mieux Ă faire en ce moment ?) et vous dit Ă bientĂ´t sur ReactHeure.fr !
N’oubliez pas de prendre soin de vous et de vos proches !