-
-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
💡 [Feat: Idée] Ajout d'un support pour le "multi-service" #564
base: main
Are you sure you want to change the base?
Conversation
… title in account selection)
…1.tsx`, `UnivRennes2.tsx` & `UnivSorbonneParisNord.tsx`
Salut, (PS: ajoute ma mention quand tu réponds, sinon je ne verrais pas) |
Hey, je suis désolé j'ai pas donné beaucoup de news, les semaines s'enchainent vite en ce moment... J'ai justement pull les derniers changements de main en milieu de semaine, et j'ai résolu le typecheck hier soir (j'ai pas encore push). Je compte reprendre le travail ce soir. J'espère ne pas rencontrer trop de problèmes... Pour ce qu'il me reste à faire, à part un peu d'UI, c'est de régler et comprendre un peu mieux le soucis des instances, pour être sur de ne pas les casser... Quand tout sera prêt je demanderai les reviews de toute manière 👍🏻 |
(which is the project's package manager)
maybe it will resolve ts
Bon ducoup j'ai réussi à me remettre dedans et à tester les changements que j'ai fait il y a quelque temps déjà... Pour régler les erreurs d'instance, j'ai juste pris soin de sauvegarder l'objet Au passage, j'ai fix le ts comme à mon habitude ! J'ai aussi passer le workflow du typecheck sur Si vous voulez retester allez-y ! |
tu peux redemander ma review stp avant que j'oublie stp ? 😂 |
J'ai hate que ce soit dans une version apk de papillon !! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alors, c'est parfait et je ne rencontre plus aucun problème !! Bravo pour cette intégration, peut-être 2 points à souligner mais peu dérangeant :
- Il serait intéressant d'indiquer à l'utilisateur quand il n'a pas défini un compte sur une page plutôt qu'un chargement infini
- J'ai remarqué que la photo de profil et la couleur de l'app se réinitialisait
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mince, je voulais approuver, déso 😅
Est ce que on peut mettre la connection automatique sur tel ou tel "truc comme Éclat" je sais pas comment ça s'appelle |
|
Et ? C'est pas une pr c'est une issue et j'ai vu (j'ai commenté) |
j'pense qu'il serait mieux de faire la connexion automatique dans une autre pr pask celle là est déjà assez complète et complexe à review |
Why not faudrait que je regarde, normalement c'est pas sensé charger dans le vide mais juste charger et rien afficher (c'est un bug inhérent à certaines implem de feature je pense).
Ça m'est arrivé aussi je sais pas pourquoi... J'ai rien trouvé de concret pour l'instant, mais c'est pas un bug qui avait été remonté (la pdp qui se réinitialise sur l'icone du service par défaut) ? Merci d'avoir testé et review en tout cas 👍🏻 |
🚀 Nouvelle Pull Request
Dans cette PR, je propose une nouvelle fonctionnalité avancée pour Papillon , qui est de rassembler plusieurs services scolaires connectés en "espaces / environnements", où chaque fonctionnalité utilise un service précis...
Mais à quoi ça sert ?
Pour ceux qui se posent la question, cela permet de rassembler les différents services que peuvent utiliser les universités ou établissement, en un espace unifié. Par exemple, dans mon cas, la gestion des notes, devoirs, edt, ect passe par pronote, tandis que les actualités et la messagerie ne sont disponibles que sur skolengo. Ainsi, en me créant un espace je pourrai rassembler toute ma vie scolaire dans un seul environnement Papillon.
Comment ça fonctionne ?
Cf, screen
Un "espace" donc, est géré comme un compte principal (
PrimaryAccount
) par Papillon. Il dispose de ses propres paramètres, de son propre profil utilisateur ect... Sa particularitée est la nouvelle cléassociatedAccountsLocalIDs
, qui contient les identifiants locaux des comptes liés à cet espace. Aussi, j'ai créé un nouveau store (useMultiService
) pour y stocker les espaces créé, et pour chaque fonctionnalité d'un espace, l'identifiant du compte à utiliser.Ensuite, pour chaque fonctionnalité dans le dossier
services
, on ajoute un cas pour le compte MultiService, et on redirige vers le compte à utiliser:Et donc on a la possibilité de créer le nombre d'espaces que l'on souhaite (cf screens)
Informations importantes
Si vous trouvez cette fonctionnalité intéressante, il faudrait m'aider à réorganiser l'interface (nottament la sélection des services, qui est un peu moche), donc il faudra voir avec les designers.
J'ai aussi du créé une image par défaut pour les espaces (pour ne pas les confondre avec des comptes classiques, et aussi pour qu'ils possèdent une icone propre au lancement de l'app: cf screen)
N'hésitez pas à me demander du contexte supplémentaire (sur discord ce serait plus pratique) ! Merci !
Screenshots / assets
Checklist d'avant pull request
Veuillez cocher toutes les cases applicables en remplaçant [ ] par [x].
TODO
(aka des annotations pour du code manquant) dans vos modificationsChangelogs proposés
src/stores/account/types.ts
)switchTo
(src/stores/account/types.ts
)src/views/settings/SettingsExternalServices.tsx
pour résoudre les erreurs dues au nouveau typesrc/stores/multiService
)src/utils/multiservice
src/utils/ui/default-profile-picture.ts
(&assets/images/multiservice.png
)src/views/settings/SettingsMultiService.tsx
&src/views/settings/SettingsMultiServiceSpace.tsx
)src/router/screens/settings/index.ts
src/router/helpers/types.ts
src/components/Settings/MultiServiceContainerCard.tsx
,src/components/News/Beta.tsx
&src/components/Global/AccountItem.tsx
src/view/settings/Settings.tsx
pour ajouter l'onglet dans les paramètressrc/services
src/components/Home/AccountSwitcherContextMenu.tsx
)Ce qu'il reste à faire
Support dansreload-account.ts
key
dansSettingsMultiServiceSpace.tsx
Informations supplémentaires
Chaque espace, possède un identifiant unique, qui est l'identifiant du compte de cet espace, et que l'on retrouve aussi dans l'objet qui réprésente l'envrionnement (stocké dans
useMultiService
).J'ai du modifier la fonction
switchTo
pour ajouter un cas particulier pour les espace (comptesAccountService.PapillonMultiService
):associatedAccountsLocalIDs
)instance
du compte; par défautinstance
est null (et jamais modifié, puisque ce n'est pas réellement un service) mais cette valeur sert à déterminer à plusieurs endroits si le compte a terminé son chargement: switchTo défini donc instance à une chaine de caractères non-nulle pour éviter les icones de chargement infini.