Skip to content
This repository was archived by the owner on Aug 30, 2025. It is now read-only.

💅🏻 [Feature] Amélioration des "Dynamic Widget"#721

Draft
camarm-dev wants to merge 77 commits intoPapillonApp:mainfrom
camarm-dev:feat/dynamic-wigets
Draft

💅🏻 [Feature] Amélioration des "Dynamic Widget"#721
camarm-dev wants to merge 77 commits intoPapillonApp:mainfrom
camarm-dev:feat/dynamic-wigets

Conversation

@camarm-dev
Copy link
Copy Markdown
Contributor

Amélioration des widgets

J'ai remarqué que depuis la présentation de la feature au Papillon Event, on n'a toujours pas vu les fameux Dynamic Widgets. J'ai donc implémenté plus de widget...

J'ai aussi rajouté une page dans les paramètres pour désactiver chaque widget un à un. Il y a aussi une section pour configurer des paramètres supplémentaires: âge maximal d'un évènement à afficher dans un widget (par exemple, n'affiche pas la dernière actualité si elle date de plus de 5j...) et suppression du widget après l'avoir "lu" (cliquer dessus).

Pour afficher les information dans un certain ordre d'importance, j'ai ajouté une propriété importance aux widget: c'est une fonction, ce qui permet de dynamiquement changer l'importance (exemple; afficher le qr code de cantine aux alentours de midi...)

Voici la liste des widgets que j'ai ajouté:

Nom Description Screen(s)
Dernier évènement de vie scolaire Affiche le dernier évènement de vie scolaire (retard, absence, punition, observation)
Changement EDT Affiche le prochain cour du jour contenant un changement image
Dernière actualité Affiche la dernière actualité image
Prochain contrôle Affiche la prochaine évaluation image
Devoirs à faire Affiche les devoirs à faire image

Et les différentes pages modifiées / ajoutées

Paramètres Paramètres des widgets
image image

Checklist d'avant pull request

  • Vous avez testé de build le projet avec vos modifications et ce build a réussi
  • Vous respectez les conventions de codage et de nommage du projet
  • Vous utilisez la tabulation pour l'indentation afin de maintenir un code lisible
  • Cette pull request n'est pas un duplicata d'une autre
  • Cette pull request est prête à être revue (review) et fusionnée (merge)
  • Il n'y a pas de TODO (aka des annotations pour du code manquant) dans vos modifications
  • Il n'y a pas d'erreurs de langue dans votre code (grammaire, vocabulaire, conjugaison, orthographe)
  • Les détails des changements ont été décrits ci-dessous
  • Cette pull-request n'est pas une "breaking-change" (des modifications qui vont entraîner la modification du fonctionnement de certaines fonctionnalités déjà existantes)

Changelogs proposés

  • Ajouts de nouveaux widgets dans src/widgets
  • Ajout d'une page dans les paramètres dans src/views/settings
  • Ajout du tri des widgets avant leur affichage dans src/components/Home/Header.tsx

Informations supplémentaires

C'est encore un draft, j'ai pas totalement fini ce que je voulais. N'hésitez pas à donner votre avis !

  • Implémenter correctement la suppression après lecture
  • Implémenter des fonctions importance plus précises

Copy link
Copy Markdown
Contributor

@Kgeek33 Kgeek33 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ceci est une review testée via Expo Go

Fonctionne plutôt bien, j'ai pas pu tester tous les widgets (en approche des vacances, donc pas contrôle et d'autres). Mais des changements sont à faire (je ne review pas encore l'indentation)

  • Ton fichier package-lock.json contient un retour vide à la ligne 2048 j'crois, bref tu fais npm i et c'est bon
  • Pour "Masquer après lecture", pourquoi ne pas utiliser AsyncStorage ? Car quand on redémarre l'app, ça se réaffiche comme avant
  • Il serait intéressant d'ajouter une option pour redirigier vers SettingsWidgets sur la page d'accueil (comme les onglets sur mobile, le bouton "Gérer")

Comment thread src/widgets/Components/NextHomeworks.tsx
Comment thread src/widgets/Components/LastNews.tsx
Comment thread src/widgets/Components/LastNews.tsx Outdated
Comment thread src/widgets/Components/TimetableChanges.tsx Outdated
Comment thread src/widgets/Components/TimetableChanges.tsx
Comment thread src/widgets/Components/NextCourse.tsx
Comment thread src/widgets/Components/NextCourse.tsx
Comment thread src/widgets/Components/NextCourse.tsx
Comment thread src/widgets/Components/NextHomeworks.tsx Outdated
camarm-dev and others added 5 commits February 15, 2025 14:48
@camarm-dev
Copy link
Copy Markdown
Contributor Author

Juste mettre une icône danger à côté de la salle ne serait pas plus pratique ?

Le soucis c'est que ça indique pas si le prof est absent / le cours annulé l'icone... C'est pour ça que le statusText est essentiel...

Ton fichier package-lock.json contient un retour vide à la ligne 2048 j'crois, bref tu fais npm i et c'est bon

Résolu.

Pour "Masquer après lecture", pourquoi ne pas utiliser AsyncStorage ? Car quand on redémarre l'app, ça se réaffiche comme avant

C'est écrit dans la description de ma PR: la suppression après lecture n'est pas terminée 👀.

Il serait intéressant d'ajouter une option pour redirigier vers SettingsWidgets sur la page d'accueil (comme les onglets sur mobile, le bouton "Gérer")

Why not je vais regarder

@camarm-dev
Copy link
Copy Markdown
Contributor Author

Le bouton pour les paramètres je ne sais pas vraiment où le mettre à part ici... Ça fait trop chargé je trouve...

image

@Kgeek33
Copy link
Copy Markdown
Contributor

Kgeek33 commented Feb 15, 2025

C'est écrit dans la description de ma PR: la suppression après lecture n'est pas terminée 👀.

Ok, j'te fais une review du code pour intégrer ça ou pas besoin ?

@Kgeek33
Copy link
Copy Markdown
Contributor

Kgeek33 commented Feb 15, 2025

Le bouton pour les paramètres je ne sais pas vraiment où le mettre à part ici... Ça fait trop chargé je trouve...

image

oui je suis d'accord mais de base je l'aurai mis sur la ligne des widgets, pas sur la ligne des onglets
donc, dans ta capture, après le widget devoir, un bouton comme t'as fait (juste l'icône, non ?)

@camarm-dev
Copy link
Copy Markdown
Contributor Author

Ok, j'te fais une review du code pour intégrer ça ou pas besoin ?

Je ferai ça demain tqt.

oui je suis d'accord mais de base je l'aurai mis sur la ligne des widgets, pas sur la ligne des onglets donc, dans ta capture, après le widget devoir, un bouton comme t'as fait (juste l'icône, non ?)

Ça rend vraiment pas bien, en plus c'est vraiment une place réservée aux widgets c'est très étrange de mettre un bouton à cet endroit là... Je vais réfléchir à comment bien l'intégrer.

@Cleboost
Copy link
Copy Markdown
Contributor

Cleboost commented Feb 19, 2025

J'me dis, vous voulez pas le mettre dans beta avec Papillon Magic?

@raphckrman
Copy link
Copy Markdown
Member

C'est très beau mais je trouve que les widgets "Dernier évènement vie scolaire" fait très chargé, et celui du "Prochain contrôle" fait trop vide je trouve y'a beaucoup d'espaces, ce serait bien d'avoir un avis de @toi-et-moi ou @ecnivtwelve pour cette PR :)

@camarm-dev
Copy link
Copy Markdown
Contributor Author

C'est très beau mais je trouve que les widgets "Dernier évènement vie scolaire" fait très chargé, et celui du "Prochain contrôle" fait trop vide je trouve y'a beaucoup d'espaces, ce serait bien d'avoir un avis de @toi-et-moi ou @ecnivtwelve pour cette PR :)

Le widget Vie sco est effectivement un peu chargé, à voir leur avis oui...
Par contre pour la prochaine eval, si le prof met une longue description, ça va être équilibré (la description va être sur deux ligne)... Le problème c'est que quand ça tient en une seule ligne je vois pas trop comment faire 🤷🏼‍♂️...

@ecnivtwelve
Copy link
Copy Markdown
Contributor

Même chose, après résolution des conflits, ça peut venir

@camarm-dev
Copy link
Copy Markdown
Contributor Author

Je vais essayer de reprendre la PR c'est un peu chaud en ce moment... Il me reste la gestion des lectures, il faut que je créé un store et que je gère correctement les hooks... De toute manière j'ouvre la PR dès que c'est prêt !

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants