Un membre pour les deux obligations, un badge pour l'un ou l'autre

Featurekamo-internal
Expédié
11 août 2026 à 16:36 UTC
Auteur
kamo
Commite
f8afef1

L'onglet du membre en matière de respect des obligations comporte deux sous-onglets, en attente et complétés, pour un type d'obligation. Ceux-ci sont un ÉTAT, pas un genre - donc ils s'effondrent dans un filtre d'état (avec "all", lequel deux onglets n'avait nulle part où mettre, et qui signifiait auparavant vérifier les deux pour répondre "est-ce que c'est celui-ci I signé?"), et la bande de la languette est libérée pour séparer les deux choses qui sont vraiment différentes: Emballages légaux et instruments à signer, comportement inchangé derrière un filtre Formation attribuée et cours à suivre Chaque panneau conserve son propre filtre dans sa propre param. Un filtre partagé serait porteur d'un seau légal dans le panneau d'apprentissage, où le même mot signifie un ensemble différent d'états, et change de languette serait silencieusement de refiltrer l'autre liste. Un sous-sous-étranger est normalisé sur le support, parce que SettingsView.writeTabToUrl met ?tab et supprime ?configure mais laisse ?sub'y seul' 'l' écran était déjà correct via le backback de l'index, mais l'URL revendiquait un état que cette composante n'avait jamais eu, Et l'URL est ce qui est mis en signet et collage dans un ticket d'assistance. NavTop montre maintenant UN badge pour les deux. Un membre ne pense pas aux "paquets à signer" et aux "cours à prendre "comme deux systèmes, ils pensent aux choses qu'ils doivent; deux marques presque identiques côte à côte dans chrome fixe leur ferait fonctionner quel être allumé. Le compte est la somme, et l'icône gagne un état d'attention réel - deux anneaux sur::avant/::après d'une enveloppe, de sorte que le glyphe lui-même ne bouge jamais Et ne combat jamais l'ancre du badge. Le mouvement est un signal ADAPTATible, pas le seul (le nombre et la couleur d'erreur le porte toujours), c'est pourquoi préfère-réduction-mouvement la goutte avec rien perdu. MemberAssignedTraining délibérément expédie NON colonne d'action. trainingActionPréquemment décide début/reprise/retake/certificat et est testé en unités, mais le joueur de parcours n'est pas construit - et a "Start" visiblement désactivé est une promesse que le produit ne peut pas tenir, qui se lit comme brisé plutôt que inachevé. La colonne arrive avec le joueur. trainingStatusesFor envoie chaque statut EXPLICITEMENT pour "tous" plutôt que d'omettre le param: le Le défaut de repli du serveur n'existe pas pour sauver un signet rassis, pas pour ne pas être une convention d'appel. Les états voyagent comme des params répétés, jamais CSV - une virgule est double codée par la passerelle APIService. les clés test-i18n ont attrapé les clés manquantes exactement comme prévu; hr.training.member. kamo-traduction-dictionnaire d'abord et vérifié sur son origine/principal avant cet engagement. test npm: 3 gardes propres, 98 dossiers, 1221 tests passants.

Tous les changements

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation