Portfolio comme un OS #3 — le système de fenêtres
Les petites fenêtres qui s'ouvrent quand on clique sur une icône : état des fenêtres ouvertes, z-index du premier plan, et un hook React maison pour tout orchestrer.

Aujourd'hui, on parle du système de fenêtres — ces petites fenêtres qui s'ouvrent quand tu cliques sur une icône du bureau.
Chaque icône écoute un événement de clic qui appelle une fonction d'ouverture, basée sur l'attribut « contenu » stocké dans la structure de données de l'icône. Pour toutes les fenêtres à ouvrir, j'ai défini sur la vue un état : une liste d'objets { identifiant de l'icône, window (les attributs de l'icône cliquée) }. Au clic, on insère ces attributs dans la liste, et un composant se charge d'afficher les fenêtres ouvertes — avec un bon coup de CSS.
Comme une fenêtre subit beaucoup d'actions (ouverture, fermeture, déplacement, redimensionnement…), j'ai créé un hook personnalisé en React — un truc que je te conseille vivement. Un autre état retient l'identifiant de la fenêtre au premier plan, pour lui donner le plus grand z-index et faire passer son contenu devant les autres.
Plusieurs autres fonctionnalités vivent dans ce hook. Voilà pour le système de fenêtres — le prochain billet parlera de la barre des tâches. Je reste ouvert à tout commentaire et apport. ✊🏾
![[object Object] — 2](/blog/portfolio-comme-un-os-3-systeme-fenetres-2.jpg)
![[object Object] — 3](/blog/portfolio-comme-un-os-3-systeme-fenetres-3.jpg)