-
Notifications
You must be signed in to change notification settings - Fork 0
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(Tooltip): fix dynamic width #778
Conversation
740a8b9
to
b7d91cc
Compare
Storybook for this build: https://ds.equisoft.io/pr-778/ |
Je ne connais pas react-popper-tooltip et son API a l'air tres limite. Cependant j'ai trouve ceci https://popper.js.org/docs/v2/lifecycle/#manual-update Et cette methode est expose par react-tooltip-popper
Donc si on appelle ca quand on affiche le tooltip, ca devrait fixer le probleme. Si ca corrige, je prefere ca que le key. |
const currentLabel = isClicked ? (confirmationLabel ?? label) : label; | ||
const tooltipVariant = (mode === 'confirm' && isClicked) ? 'success' : 'normal'; | ||
|
||
useEffect(() => { |
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.
Ca va causer un double render. Tu peux utiliser un useRef+useMemo a la place du useState+useEffect
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.
c'est un peu ça le but. je veux trigger un re-render du tooltip pour que react popper tooltip re-calcul le css quand le texte change pendant qu'il est ouvert
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.
useEffect(() => {
popperTooltip.update?.();
}, [currentLabel]);
mieux avec update pas besoin de state et c'est plus explicite. mais il faut quand meme que j'utilise le useEffect pour forcer l'update seulement quand le text a changé
67860ea
to
426691e
Compare
426691e
to
c330e53
Compare
e742fdb
to
3e7cab2
Compare
3e7cab2
to
ea759ea
Compare
44fcc28
to
da26572
Compare
* feat(Tooltip): fix dynamic width * feat(Tooltip): fix dynamic width * feat(Tooltip): remove dynamic text story * feat(Tooltip): update tooltip when label changes using useRef
* feat(Tooltip): fix dynamic width * feat(Tooltip): fix dynamic width * feat(Tooltip): remove dynamic text story * feat(Tooltip): update tooltip when label changes using useRef
DS-791
Ajouter une key prop au tooltip permet de forcer react à re-calculer le css dynamique avec les transform dans le component de la librairie react-popper-tooltip. Cette solution semble plus intéressante que d'overrider les styles de react-popper-tooltip.
Quand le label du tooltip change, on change la prop key et cela permet de mounter une nouvelle instance du tooltip et de re-calculer le css correctement pour le nouveau label. Cette amélioration garantira que le tooltip maintienne sa position indépendamment des changements de contenu, améliorant ainsi l'expérience utilisateur.