Skip to content
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

[FEATURE] Ajouter un composant PixOverlay (PIX-15734). #802

Open
wants to merge 3 commits into
base: dev
Choose a base branch
from

Conversation

Jeyffrey
Copy link
Contributor

@Jeyffrey Jeyffrey commented Jan 8, 2025

🎄 Problème

Les overlay (modal, sidepanel, etc.) ne sont pas uniforme d’une app à l’autre.

🎁 Proposition

Création d’un composant PixOverlay, utilisé dans les composant Modal et Sidebar.

🎅 Pour tester

Tester les différents composants.

@Jeyffrey Jeyffrey added 🚧 Development in progress Work In Progress cross-team Toutes les équipes de dev labels Jan 8, 2025
@Jeyffrey Jeyffrey self-assigned this Jan 8, 2025
@pix-bot-github
Copy link

Une fois l'application déployée, elle sera accessible à cette adresse https://ui-pr802.review.pix.fr
Les variables d'environnement seront accessibles sur scalingo https://dashboard.scalingo.com/apps/osc-fr1/pix-ui-review-pr802/environment

@Jeyffrey Jeyffrey force-pushed the pix-15734-new-pix-overlay-component branch 3 times, most recently from c0635a0 to 23c943f Compare January 9, 2025 09:06
@Jeyffrey Jeyffrey force-pushed the pix-15734-new-pix-overlay-component branch 5 times, most recently from efcef7f to 4984d68 Compare January 9, 2025 09:33
@Jeyffrey Jeyffrey force-pushed the pix-15734-new-pix-overlay-component branch from 4984d68 to 8970ba7 Compare January 9, 2025 09:35
@Jeyffrey Jeyffrey marked this pull request as ready for review January 9, 2025 10:29
z-index: 1000;
inset: 0;
overflow-y: auto;
background-color: rgba(var(--pix-primary-700-inline), 0.3);
Copy link
Member

Choose a reason for hiding this comment

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

Question : ce background-color primary sera commun aux différentes applications ou y'a des variantes prévues ?

Copy link
Contributor

Choose a reason for hiding this comment

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

import { Meta, Story, ArgTypes } from '@storybook/blocks';
import * as ComponentStories from './pix-overlay.stories';

<Meta of={ComponentStories} />
Copy link
Member

Choose a reason for hiding this comment

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

Question : Si ce composant à une doc à part entière on pourrait croire qu'il peut s'utiliser seul.

Est-ce qu'on ne préciserait pas qu'il ne peut être utilisé seul mais qu'il existe pour mutualiser l'overlay entre nos différents composants qui en font usage ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Est-ce que c'est pas déjà le cas pour le composant PixBlock par exemple ?

Comment on lines 29 to -32
assert.contains("It's a modal!");
assert.contains('content');
assert.contains('footer');
assert.dom('.pix-modal__overlay--hidden').doesNotExist();
Copy link
Contributor

Choose a reason for hiding this comment

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

question
Est-ce que l'on souhaite tester une variable css ?

suggestion
Utiliser testing library pour tester le texte ?

@@ -94,7 +94,7 @@ module('Integration | Component | modal', function (hooks) {
</PixModal>`);

// then
assert.dom('.pix-modal__overlay--hidden').exists();
assert.dom('.pix-overlay--hidden').exists();
Copy link
Contributor

Choose a reason for hiding this comment

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

suggestionù

utiliser testing library pour tester la non présence du texte, plutôt que la présence de l'overlay caché ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

En fait l'overlay n'a rien d'assez spécifique pour vérifier sa présence dans les tests.
Le texte est dans tous les cas toujours présent sur la page.

Donc je vois pas d'autre moyen de tester la présence / absence de l'overlay que par sa classe CSS :/

Copy link
Contributor

Choose a reason for hiding this comment

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

l'overlay permet de gérer la visibilité de la modal aussi non avec le cas visible / hidden ?

Du coup tester que le texte n'est pas présent en getByText ( pas accessible suffit à dire que le comportement que l'on souhaite est là ) .

Tester la class dans le component overlay oui pourquoi pas. mais à mon sens le test de la pix-modal n'a pas à avoir cette connaissance 🤔

Copy link
Contributor Author

@Jeyffrey Jeyffrey Jan 10, 2025

Choose a reason for hiding this comment

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

Je crois me souvenir pourquoi on a fait ça : le getByText fonctionnerait même lorsque la modale est non visible parce qu'on a toujours la modale dans le DOM.
Elle est juste cachée ou non.

Et qunit ne gère pas ce cas il me semble.

Copy link
Contributor

Choose a reason for hiding this comment

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

screen.getByText() si c'est pas accessible (bien que présent dans le dom), il ne devrait pas le lire.
C'est effectivement le assert.dom qui ne fait pas de distinction entre visible ou non dans la page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants