-
Notifications
You must be signed in to change notification settings - Fork 62
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
fix(tabs): init tabs with custom active index other than zero #677
fix(tabs): init tabs with custom active index other than zero #677
Conversation
Félicitations pour cette première PR 🥇 |
@@ -1,12 +1,14 @@ | |||
// Jest Snapshot v1, https://goo.gl/fbAQLP | |||
|
|||
exports[`<Help> Render Should render Help component 1`] = ` | |||
<button | |||
<div |
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.
Question : Comment ça se fait que l'on passe sur un div
ici ?
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.
Honnetement je ne sais pas car je n'ai pas modifié ce composant :) J'ai juste remarqué qu'un TU sur celui-ci ne passait pas et j'ai juste mis à jour le snapshot (Il parait qu'il y a une autre PR à ce sujet).
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.
Oui, il y a un problème actuellement avec ce test, qui fonctionne différemment entre nos poste et la build.
De mon coté pour que ma PR build, j'ai forcé exceptionnellement mon push sans la mise à jour de la snapshot car ça ne me concernait pas.
J'ai créé cette issue #675
car je suis pas sur que cette PR soit en lien malgré le titre : #673
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.
Le soucis des tests est en cours d'investigation, c'est un soucis entre lerna et la CI
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.
Ha oui, je pensais que c'était résolu ce souci… En l'état il faudrait attendre la correction de ce problème
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.
Guillaume et Arnaud s'y sont cassé les dents pour le moment...
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.
Qu'est-ce que je fais dans ce cas ? Je pousse le snapshot modifié ou pas ?
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.
Pousse pas le help en effet, j'ai voulu le pousser aussi (j'ai le meme soucis sur ma PR), pousse que ce qui a été directement impacté par ta PR
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.
ok, done.
packages/tabs/src/Tab.tsx
Outdated
@@ -1,10 +1,5 @@ | |||
import * as React from 'react'; |
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.
thought : tu n'as rien changé à part l'indent', tu devrais peut-être supprimer cette modif'
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.
ok
packages/tabs/src/TabsCore.tsx
Outdated
|
||
return ( | ||
<TabsStateless | ||
activeIndex={activeIndex || state.activeIndex} | ||
activeIndex={state.activeIndex} | ||
{...otherProps} | ||
onChange={onChangeEvent(onChange)(setState)(state)} |
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.
suggestion : on pourrait peut-être renommer onChangeEvent
en setActiveIndex
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.
pas chaud pour faire ce renommage car le onChangeEvent
permet de base de modifier le activeIndex mais permet aussi d'exécuter une fonction supplémentaire (paramètre onChange
)
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.
Une fonction devrait toujours être nommé en fonction de ce qu'elle fait et pas comment elle est appelé :)
Ce n'est pas le sujet de la PR donc c'est pas grave si on ne le fait pas maintenant
packages/tabs/src/TabsCore.tsx
Outdated
let initialState = defaultState; | ||
|
||
if (activeIndex) { | ||
initialState.activeIndex = activeIndex; |
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.
question : Pourquoi initialState
est un objet ? On n'utilise que la clé dedans activeIndex
La possibilité de mutation est un risque de dysfonctionnement, si on a besoin d'un autre state on pourra toujours à l'avenir faire un autre useState
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.
En fait c'est un risque majeur, initialState
étant une référence de l'objet defaultState
, celle-ci étant global au module TasbCore.tsx
sera commune à tous les appels à ce composant, donc un bug potentiel quand il y a 2 fois le composant dans la page.
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.
j'ai fait en sorte que "activeIndex" soit l'état (ce n'est plus un objet). La prop "activeIndex" est obligatoire avec une valeur par défaut à 0.
packages/tabs/src/TabsCore.tsx
Outdated
let initialState = defaultState; | ||
|
||
if (activeIndex) { | ||
initialState.activeIndex = activeIndex; |
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.
En fait c'est un risque majeur, initialState
étant une référence de l'objet defaultState
, celle-ci étant global au module TasbCore.tsx
sera commune à tous les appels à ce composant, donc un bug potentiel quand il y a 2 fois le composant dans la page.
2397fc2
to
3238993
Compare
3238993
to
60f31c8
Compare
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.
beau boulot merci !
3246fd0
60f31c8
to
3246fd0
Compare
Related issue
Unable to activate index upper than zero (default) when init Tabs component
Reference to the issue
Here you can add link to related issue
Description of the issue
It is impossible to display particular tab other than 0 index when showing Tabs component
Person(s) for reviewing proposed changes
Important
Before creating a pull request run unit tests