From 7bbaaed218814f7aa7ced04aae21b9955eeaca0d Mon Sep 17 00:00:00 2001 From: Alek Perron <156684667+aperron-ferlab@users.noreply.github.com> Date: Thu, 4 Apr 2024 16:12:35 -0400 Subject: [PATCH] feat: CQDG-659 Implement Landing Page V2 (#262) * feat: CQDG-659 implement landing page V2 --- cypress/e2e/Consultation/Landing.cy.ts | 121 +++++++++++ cypress/e2e/Consultation/Login.cy.ts | 27 --- cypress/e2e/Consultation/PageStudy.cy.ts | 4 +- .../e2e/Facettes/PageDataExploration.cy.ts | 6 +- cypress/e2e/Facettes/PageStudies.cy.ts | 6 +- cypress/e2e/Facettes/PageVariants.cy.ts | 2 +- cypress/e2e/Navigation/Logout.cy.ts | 43 ++-- package-lock.json | 14 +- package.json | 2 +- src/App.tsx | 6 +- src/components/Icons/CQDGLogoFull.tsx | 76 +++---- .../Layout/SideImage/index.module.scss | 70 ------- src/components/Layout/SideImage/index.tsx | 51 ----- src/components/assets/FCI.svg | 87 -------- src/components/assets/FRQS.svg | 9 - src/components/assets/RARE.png | Bin 0 -> 13552 bytes src/components/assets/background.svg | 195 ++++++++++++++++++ src/components/assets/cartagene.png | Bin 0 -> 160786 bytes src/components/assets/genome_qc.svg | 25 --- src/components/assets/logos-FCI-color.svg | 87 ++++++++ src/components/assets/logos-FRQS-color.png | Bin 0 -> 11701 bytes src/components/assets/logos-chusj-color.svg | 12 ++ src/components/assets/logos-ferlab-color.svg | 19 ++ src/components/assets/logos-genome_qc.svg | 14 ++ src/components/assets/sd4h.png | Bin 0 -> 5316 bytes src/components/assets/side-img-svg.svg | 43 ---- src/locales/en.ts | 70 +++++++ src/locales/fr.ts | 75 ++++++- src/services/api/arranger/models.ts | 2 + src/style/themes/cqdg/antd/buttons.less | 58 +++++- src/utils/translation.ts | 1 + .../BottomBanner/BannerItem/index.module.scss | 15 ++ .../Login/BottomBanner/BannerItem/index.tsx | 36 ++++ .../Login/BottomBanner/index.module.scss | 37 ++++ src/views/Login/BottomBanner/index.tsx | 31 +++ src/views/Login/Cards/Rare/index.module.scss | 30 +++ src/views/Login/Cards/Rare/index.tsx | 16 ++ .../Login/Cards/SecureData/index.module.scss | 38 ++++ src/views/Login/Cards/SecureData/index.tsx | 30 +++ src/views/Login/Cards/Stats/index.module.scss | 16 ++ src/views/Login/Cards/Stats/index.tsx | 81 ++++++++ .../Login/Cards/Variants/index.module.scss | 25 +++ src/views/Login/Cards/Variants/index.tsx | 55 +++++ src/views/Login/Cards/index.module.scss | 59 ++++++ src/views/Login/Cards/index.tsx | 19 ++ src/views/Login/Footer/index.module.scss | 50 +++++ src/views/Login/Footer/index.tsx | 31 +++ .../Login/Studies/Carousel/index.module.scss | 53 +++++ src/views/Login/Studies/Carousel/index.tsx | 44 ++++ .../Login/Studies/Summary/index.module.scss | 25 +++ src/views/Login/Studies/Summary/index.tsx | 27 +++ src/views/Login/Studies/index.module.scss | 34 +++ src/views/Login/Studies/index.tsx | 16 ++ src/views/Login/TextIcon/index.module.scss | 120 +++++++++++ src/views/Login/TextIcon/index.tsx | 32 +++ src/views/Login/TopBanner/index.module.scss | 68 ++++++ src/views/Login/TopBanner/index.tsx | 83 ++++++++ src/views/Login/index.module.scss | 174 +--------------- src/views/Login/index.tsx | 95 ++------- 59 files changed, 1816 insertions(+), 649 deletions(-) create mode 100644 cypress/e2e/Consultation/Landing.cy.ts delete mode 100644 cypress/e2e/Consultation/Login.cy.ts delete mode 100644 src/components/Layout/SideImage/index.module.scss delete mode 100644 src/components/Layout/SideImage/index.tsx delete mode 100644 src/components/assets/FCI.svg delete mode 100644 src/components/assets/FRQS.svg create mode 100644 src/components/assets/RARE.png create mode 100644 src/components/assets/background.svg create mode 100644 src/components/assets/cartagene.png delete mode 100644 src/components/assets/genome_qc.svg create mode 100644 src/components/assets/logos-FCI-color.svg create mode 100644 src/components/assets/logos-FRQS-color.png create mode 100644 src/components/assets/logos-chusj-color.svg create mode 100644 src/components/assets/logos-ferlab-color.svg create mode 100644 src/components/assets/logos-genome_qc.svg create mode 100644 src/components/assets/sd4h.png delete mode 100644 src/components/assets/side-img-svg.svg create mode 100644 src/views/Login/BottomBanner/BannerItem/index.module.scss create mode 100644 src/views/Login/BottomBanner/BannerItem/index.tsx create mode 100644 src/views/Login/BottomBanner/index.module.scss create mode 100644 src/views/Login/BottomBanner/index.tsx create mode 100644 src/views/Login/Cards/Rare/index.module.scss create mode 100644 src/views/Login/Cards/Rare/index.tsx create mode 100644 src/views/Login/Cards/SecureData/index.module.scss create mode 100644 src/views/Login/Cards/SecureData/index.tsx create mode 100644 src/views/Login/Cards/Stats/index.module.scss create mode 100644 src/views/Login/Cards/Stats/index.tsx create mode 100644 src/views/Login/Cards/Variants/index.module.scss create mode 100644 src/views/Login/Cards/Variants/index.tsx create mode 100644 src/views/Login/Cards/index.module.scss create mode 100644 src/views/Login/Cards/index.tsx create mode 100644 src/views/Login/Footer/index.module.scss create mode 100644 src/views/Login/Footer/index.tsx create mode 100644 src/views/Login/Studies/Carousel/index.module.scss create mode 100644 src/views/Login/Studies/Carousel/index.tsx create mode 100644 src/views/Login/Studies/Summary/index.module.scss create mode 100644 src/views/Login/Studies/Summary/index.tsx create mode 100644 src/views/Login/Studies/index.module.scss create mode 100644 src/views/Login/Studies/index.tsx create mode 100644 src/views/Login/TextIcon/index.module.scss create mode 100644 src/views/Login/TextIcon/index.tsx create mode 100644 src/views/Login/TopBanner/index.module.scss create mode 100644 src/views/Login/TopBanner/index.tsx diff --git a/cypress/e2e/Consultation/Landing.cy.ts b/cypress/e2e/Consultation/Landing.cy.ts new file mode 100644 index 00000000..789cff1e --- /dev/null +++ b/cypress/e2e/Consultation/Landing.cy.ts @@ -0,0 +1,121 @@ +/// +import '../../support/commands'; + +beforeEach(() => { + cy.visit('/'); +}); + +describe('Page Landing - Vérifier les informations affichées', () => { + it('Section Upper banner', () => { + cy.get('[class*="TopBanner_logo"]').should('exist'); + cy.get('[class*="TopBanner_title"]').contains(/(Portail de données|Data Portal)/).should('exist'); + cy.get('[class*="TopBanner_description"]').contains(/(Le Centre québécois de données génomiques est une plateforme d'harmonisation et de diffusion des données génomiques générées par les études cliniques et de recherche du Québec.|The Quebec Genomic Data Center is a data harmonization and sharing platform for genomic datasets produced by Quebec's clinical and research studies.)/).should('exist'); + cy.get('[data-cy="Login"]').contains(/(Connexion|Login)/).should('exist'); + cy.get('[data-cy="Signup"]').contains(/(Créer compte|Sign up)/).should('exist'); + }); + + it('Section Studies Side Panel Tile', () => { + cy.get('[class*="Studies_container"] [class*="Summary"] [id="study"]').should('exist'); + cy.get('[class*="Studies_container"] [class*="Summary"] [class*="TextIcon_layout"]').contains('3').should('exist'); + cy.get('[class*="Studies_container"] [class*="Summary"] [class*="TextIcon_layout"]').contains('Studies').should('exist'); + cy.get('[class*="Studies_container"] [class*="Summary"]').contains(/(Explorez les données harmonisées d’études dans les populations pédiatriques et adultes.|Explore harmonized data from studies in both pediatric and adult populations.)/).should('exist'); + }); + + it('Section Studies Right Panel Tile', () => { + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_dots"]').should('exist'); + + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"] [src*="/static/media/cartagene."]').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_subTitle"]').contains('CARTaGENE').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(CARTaGENE est une plateforme publique de recherche du CHU Sainte-Justine créée pour accélérer la recherche en santé. CARTaGENE est constitué à la fois d'échantillons biologiques et de données de santé provenant de 43 000 résidents du Québec âgés de 40 à 69 ans.|CARTaGENE is a public research platform of the CHU Sainte-Justine created to accelerate health research. CARTaGENE consists of both biological samples and health data from 43,000 Quebec residents aged between 40 to 69 years.)/).should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier \(WGS\) de 2 179 individus.|The dataset currently available in the CQDG contains whole genome sequencing \(WGS\) data for 2,179 individuals.)/).should('exist'); + + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('DEE').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_subTitle"]').contains(/(Investigation des causes génétiques des encéphalopathies épileptogènes|Investigating the genetic causes of epileptogenic encephalopathies)/).should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Étude de séquençage du génome entier \(WGS\) chez des enfants atteints d'encéphalopathies épileptogènes.|Whole Genome Sequencing \(WGS\) study in children with epileptogenic encephalopathies.)/).should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier de 588 individus appartenant à 196 familles.|The dataset currently available in the CQDG contains whole genome sequencing data for 588 individuals belonging to 196 families.)/).should('exist'); + + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('BACQ').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_subTitle"]').contains(/(Biobanque des anomalies congénitales au Québec|Quebec congenital malformation biobank)/).should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Biobanque de cas affectés bien caractérisés ainsi que de leurs parents permettant de mener des études de génétique moléculaire pour identifier les gènes associés à ces malformations.|Biobank of well-characterized affected cases as well as their parents allowing molecular genetic studies to be carried out to identify the genes associated with these malformations.)/).should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Le jeu de données présentement hébergé au CQDG comprend les données de séquençage de l’exome entier \(WXS\) de 386 individus appartenant à 124 familles.|The dataset currently available in the CQDG contains whole exome sequencing \(WXS\) data for 386 individuals belonging to 124 families.)/).should('exist'); + + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('PRAGMatIQ').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_subTitle"]').contains(/(Pratique rapide de la génomique pédiatrique au Québec|Applying rapid pediatric genomics in Quebec)/).should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(L'objectif du projet est d'offrir un séquençage clinique rapide du génome entier \(WGS\) à tous les nouveau-nés et nourrissons gravement malades qui pourraient bénéficier de ce test au Québec.|The objective of the project is to offer rapid clinical Whole Genome Sequencing \(WGS\) to all critically ill newborns and infants who could benefit from this test in Quebec.)/).should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Les données de 257 individus ont été soumises au CQDG. Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier de 110 individus appartenant à 38 familles.|Data for 257 individuals has been submitted to the CQDG. The dataset currently available in the CQDG contains whole genome sequencing data for 110 individuals belonging to 38 families.)/).should('exist'); + + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('NeuroDev').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_subTitle"]').contains(/(Troubles du neuro-développement|Neurodevelopmental disorders)/).should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(L'objectif principal de ce projet est de constituer une banque d'échantillons et de données provenant d'enfants et d'adultes atteints d'un retard global de développement, d'épilepsie et\/ou de malformations et de membres de leur famille pour alimenter divers projets de recherche qui visent à identifier les gènes impliqués dans ces pathologies.|The main objective of this project is to constitute a bank of samples and data from children and adults with global developmental delay, epilepsy and\/or malformations and members of their family to supply various research projects which aim to identify the genes involved in these conditions.)/).should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_description"]').contains(/(Les données de 382 individus ont été soumises au CQDG. Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier de 67 individus appartenant à 22 familles.|Data for 382 individuals has been submitted to the CQDG. The dataset currently available in the CQDG contains whole genome sequencing data for 67 individuals belonging to 22 families.)/).should('exist'); + }); + + it('Section Released Data Stats', () => { + cy.get('[class*="Stats_wrapper"] [class*="ant-card-head"]').contains(/(Édition|Release) V1/).should('exist'); + + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(0).find('[id="study"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(0).contains('3').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(0).contains(/(Études|Studies)/).should('exist'); + + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(1).find('[id="participant"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(1).contains('599').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(1).contains('Participants').should('exist'); + + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(2).find('[id="biospecimen"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(2).contains('599').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(2).contains(/Biosp(é|e)cimens/).should('exist'); + + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(3).find('[id="file"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(3).contains(/\.\d{1,2}(T|G)B/).should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(3).contains(/(Fichiers|Files)/).should('exist'); + + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(4).find('[id="gene"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(4).contains('599').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(4).contains(/G(é|e)nomes/).should('exist'); + + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(5).find('[id="exomes"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(5).contains('0').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(5).contains('Exomes').should('exist'); + }); + + it('Section Rare QC', () => { + cy.get('[class*="Rare_container"] [src*="/static/media/RARE."]').should('exist'); + cy.get('[class*="Rare_title"]').contains(/(Réseau pour Avancer la REcherche sur les maladies rares au Québec|Network to advance research on rare diseases in Quebec)/).should('exist'); + cy.get('[class*="Rare_text"]').contains(/(Le CQDG est un fier partenaire du nouveau Réseau pour Avancer la REcherche sur les maladies rares au Québec \(RARE.Qc\) financé par le FRQS. RARE.Qc est un regroupement de plus 100 chercheurs et patients partenaires à travers le Québec, qui vise à transformer la recherche sur les maladies rares.|The CQDG is a proud partner of the new Réseau pour Avancer la REcherche sur les maladies rares au Québec \(Network to advance research on rare diseases in Quebec or RARE.Qc\) financed by the FRQS. RARE.Qc is a coalition of over 100 researchers and patient partners across Quebec, aiming to transform research on rare diseases, particularly by promoting collaboration and data sharing using the CQDG infrastructure.)/).should('exist'); + }); + + it('Section SD4H', () => { + cy.get('[class*="SecureData_container"] [src*="data:image/png"]').should('exist'); + cy.get('[class*="SecureData_title"]').contains(/(CQDG dans l’infonuage|CQDG in the Cloud)/).should('exist'); + cy.get('[class*="SecureData_text"]').contains(/(Analysez les données du CQDG avec vos propres logiciels sur l’infrastructure infonuagique Secure Data for Health \(SD4H\). D’autres infonuages seront également intégrés au CQDG dans un avenir rapproché. Contactez-nous pour en savoir plus.|Analyse CQDG datasets with your own software using the Secure Data for Health \(SD4H\) cloud-based infrastructure. Other cloud providers will be integrated with CQDG in a near future. Contact us to learn more.)/).should('exist'); + cy.get('[class*="SecureData_container"] [href="mailto:support@cqdg.ca"]').contains(/(Contactez-nous|Contact us)/).should('exist'); + }); + + it('Section Variant Tile', () => { + cy.get('[class*="Variants_container"] [id="gene"]').should('exist'); + cy.get('[class*="Variants_container"] [class*="TextIcon_title"]').contains(/\d{3}K/).should('exist'); + cy.get('[class*="Variants_container"] [class*="TextIcon_subTitle"]').contains(/(Variants germinaux|Germline Variants)/).should('exist'); + cy.get('[class*="Variants_container"] [class*="Variants_description"]').contains(/(Notre explorateur de variants offre des fonctions de recherche avancées. En quelques clics, vous pouvez explorer des millions de variants germinaux annotés issus des génomes et exomes des participants du CQDG.|Our variant explorer offers advanced searching capabilities. With just a few clicks, you can explore millions of annotated germline variants from genomes and exomes of the CQDG participants.)/).should('exist'); + cy.get('[class*="Variants_container"] [type="button"]').contains(/(Explorer les données de variants|Explore variant data)/).should('exist'); + }); + + it('Section Documentation Tiles', () => { + cy.get('[class*="BannerItem_container"]').eq(0).find('[id="information"]').should('exist'); + cy.get('[class*="BannerItem_container"]').eq(0).find('[class*="TextIcon_title"]').contains(/(Centre de documentation|Documentation Center)/).should('exist'); + cy.get('[class*="BannerItem_container"]').eq(0).contains(/(Pour savoir comment soumettre vos données, faire une demande d’accès ou pour consulter des guides d’utilisation du portail, visitez le centre de documentation.|To learn how to submit your data, request access to data, or to read user guides for the portal, visit the Documentation Center.)/).should('exist'); + cy.get('[class*="BannerItem_container"]').eq(0).find('[href="https://docs.cqdg.ca/"]').contains(/(Centre de documentation|Documentation Center)/).should('exist'); + + cy.get('[class*="BannerItem_container"]').eq(1).find('[id="cloud-database"]').should('exist'); + cy.get('[class*="BannerItem_container"]').eq(1).find('[class*="TextIcon_title"]').contains(/(Données à héberger \?|Need to Host Your Data\?)/).should('exist'); + cy.get('[class*="BannerItem_container"]').eq(1).contains(/(Le CQDG offre aux chercheurs une plateforme idéale pour entreposer et diffuser les données génomiques générées par les études cliniques et de recherche.|The CQDG offers an ideal platform for researchers to store and share genomic data produced by clinical and research studies.)/).should('exist'); + cy.get('[class*="BannerItem_container"]').eq(1).find('[href="https://docs.cqdg.ca/docs/comment-soumettre-vos-donn%C3%A9es"]').contains(/(Soumettre vos données|Submit your data)/).should('exist'); + }); + + it('Section Lower banner', () => { + cy.get('[src*="/static/media/logos-genome_qc."]').should('exist'); + cy.get('[src*="/static/media/logos-chusj-color."]').should('exist'); + cy.get('[src*="/static/media/logos-FRQS-color."]').should('exist'); + cy.get('[src*="/static/media/logos-FCI-color."]').should('exist'); + cy.get('[src*="/static/media/logos-ferlab-color."]').should('exist'); + }); +}); diff --git a/cypress/e2e/Consultation/Login.cy.ts b/cypress/e2e/Consultation/Login.cy.ts deleted file mode 100644 index c530b310..00000000 --- a/cypress/e2e/Consultation/Login.cy.ts +++ /dev/null @@ -1,27 +0,0 @@ -/// -import '../../support/commands'; - -describe('Page Login', () => { - it('Vérifier les informations affichées', () => { - cy.visit('/'); - - cy.contains(/(Données disponibles|Available Data)/).should('exist'); - cy.get('[data-cy="DataRelease_Study"]').contains(/\d{1}/).should('exist'); - cy.get('[data-cy="DataRelease_Study"]').contains(/(Étude|Studies)/).should('exist'); - cy.get('[data-cy="DataRelease_Participant"]').contains(/\d{1}/).should('exist'); - cy.get('[data-cy="DataRelease_Participant"]').contains('Participants').should('exist'); - cy.get('[data-cy="DataRelease_Biospecimen"]').contains(/\d{1}/).should('exist'); - cy.get('[data-cy="DataRelease_Biospecimen"]').contains(/Biosp(é|e)cimens/).should('exist'); - cy.get('[data-cy="DataRelease_File"]').contains(/\.\d{1,2}(T|G)B/).should('exist'); - cy.get('[data-cy="DataRelease_File"]').contains(/(Fichiers|Data Files)/).should('exist'); - - cy.contains(/(Portail de données|Data Portal)/).should('exist'); - cy.contains(/(Le Centre québécois de données génomiques est une plateforme d'harmonisation et de diffusion des données génomiques générées par les études cliniques et de recherche du Québec.|The Quebec Genomic Data Center is a data harmonization and sharing platform for genomic datasets produced by Quebec's clinical and research studies.)/).should('exist'); - cy.get('[data-cy="Login"]').contains(/(Connexion|Login)/).should('exist'); - cy.get('[data-cy="Signup"]').contains(/(Créer un compte|Sign up)/).should('exist'); - - cy.get('img[src*="/static/media/genome_qc."]').should('exist'); - cy.get('img[src*="/static/media/FRQS."]').should('exist'); - cy.get('img[src*="/static/media/FCI."]').should('exist'); - }); -}); diff --git a/cypress/e2e/Consultation/PageStudy.cy.ts b/cypress/e2e/Consultation/PageStudy.cy.ts index 6299f99c..10ddd59b 100644 --- a/cypress/e2e/Consultation/PageStudy.cy.ts +++ b/cypress/e2e/Consultation/PageStudy.cy.ts @@ -105,10 +105,10 @@ describe('Page d\'une étude - Vérifier les informations affichées', () => { cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class="ant-descriptions-item-label"]').eq(2).contains('Strategy').should('exist'); cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class="ant-descriptions-item-content"]').eq(2).contains('WGS').should('exist'); cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class="ant-descriptions-item-content"]').eq(2).find('[class*="StudyEntity_tag_"]').should('exist'); - cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(0).find('svg[data-icon="user"]').should('exist'); + cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(0).find('g[id="family"]').should('exist'); cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(0).contains(/^3$/).should('exist'); cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(0).contains('Participants').should('exist'); - cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(1).find('svg[data-icon="file-text"]').should('exist'); + cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(1).find('g[id="file"]').should('exist'); cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(1).contains(/^12$/).should('exist'); cy.get('[id="dataset"]').eq(0).find('[id="dataset"]').eq(0).find('[class*="EntityDataset_rowCountCard"]').eq(1).contains('Files').should('exist'); }); diff --git a/cypress/e2e/Facettes/PageDataExploration.cy.ts b/cypress/e2e/Facettes/PageDataExploration.cy.ts index b3d1e8f2..85b7d8b7 100644 --- a/cypress/e2e/Facettes/PageDataExploration.cy.ts +++ b/cypress/e2e/Facettes/PageDataExploration.cy.ts @@ -34,7 +34,7 @@ describe('Page Data Exploration (Participants) - Filtrer avec les facettes', () cy.get('[data-cy="Tag_PT0000010"]').should('exist'); cy.get('[class*="QueryBar_selected"]').find('[class*="QueryPill_field"]').contains('Participant ID').should('exist'); cy.get('[class*="QueryBar_selected"]').find('[class*="QueryValues_value"]').contains('PT0000010').should('exist'); - cy.validateTableResultsCount(/^1 Results$/); + cy.validateTableResultsCount(/^1 Result$/); cy.get('[data-icon="close-circle"]').click({force: true}); cy.get('[data-cy="Tag_PT0000010"]').should('not.exist'); @@ -133,7 +133,7 @@ describe('Page Data Exploration (Biospecimens) - Filtrer avec les facettes', () cy.get('[data-cy="Tag_SR0000214"]').should('exist'); cy.get('[class*="QueryBar_selected"]').find('[class*="QueryPill_field"]').contains('Sample ID').should('exist'); cy.get('[class*="QueryBar_selected"]').find('[class*="QueryValues_value"]').contains('SR0000214').should('exist'); - cy.validateTableResultsCount(/^1 Results$/); + cy.validateTableResultsCount(/^1 Result$/); cy.get('[data-icon="close-circle"]').click({force: true}); cy.get('[data-cy="Tag_SR0000214"]').should('not.exist'); @@ -184,7 +184,7 @@ describe('Page Data Exploration (Data Files) - Filtrer avec les facettes', () => cy.get('[data-cy="Tag_FI0000572"]').should('exist'); cy.get('[class*="QueryBar_selected"]').find('[class*="QueryPill_field"]').contains('File ID').should('exist'); cy.get('[class*="QueryBar_selected"]').find('[class*="QueryValues_value"]').contains('FI0000572').should('exist'); - cy.validateTableResultsCount(/^1 Results$/); + cy.validateTableResultsCount(/^1 Result$/); cy.get('[data-icon="close-circle"]').click({force: true}); cy.get('[data-cy="Tag_FI0000572"]').should('not.exist'); diff --git a/cypress/e2e/Facettes/PageStudies.cy.ts b/cypress/e2e/Facettes/PageStudies.cy.ts index 3444b52b..32ebe837 100644 --- a/cypress/e2e/Facettes/PageStudies.cy.ts +++ b/cypress/e2e/Facettes/PageStudies.cy.ts @@ -38,7 +38,7 @@ describe('Page des études - Filtrer avec les facettes', () => { cy.get('[data-cy="Search_Dropdown"]').find('div[class*="ant-select-item"]').eq(0).click({force: true}); cy.get('[data-cy="Tag_STUDY1"]').should('exist'); - cy.validateTableResultsCount(/^1 Results$/); + cy.validateTableResultsCount(/^1 Result$/); cy.get('[data-icon="close-circle"]').click({force: true}); cy.get('[data-cy="Tag_STUDY1"]').should('not.exist'); @@ -51,14 +51,14 @@ describe('Page des études - Filtrer avec les facettes', () => { cy.get('[data-cy="Search_Dropdown"]').find('div[class*="ant-select-item"]').eq(0).click({force: true}); cy.get('[data-cy="Tag_T-DEE"]').should('exist'); - cy.validateTableResultsCount(/^1 Results$/); + cy.validateTableResultsCount(/^1 Result$/); cy.get('[data-icon="close-circle"]').click({force: true}); cy.get('[data-cy="Tag_T-DEE"]').should('not.exist'); }); it('Domain - Rare Diseases', () => { - cy.validateFacetFilter('Domain', 'Rare diseases', 'rare diseases', /^1 Results$/, false); + cy.validateFacetFilter('Domain', 'Rare diseases', 'rare diseases', /^1 Result$/, false); cy.validateFacetRank(0, 'Domain'); }); diff --git a/cypress/e2e/Facettes/PageVariants.cy.ts b/cypress/e2e/Facettes/PageVariants.cy.ts index d69c6f63..9798480f 100644 --- a/cypress/e2e/Facettes/PageVariants.cy.ts +++ b/cypress/e2e/Facettes/PageVariants.cy.ts @@ -61,7 +61,7 @@ describe('Page des variants (Variant) - Filtrer avec les facettes', () => { cy.get('[data-cy="Tag_1-11846011-A-G"]').should('exist'); cy.get('[class*="QueryBar_selected"]').find('[class*="QueryPill_field"]').contains('Variant ID').should('exist'); cy.get('[class*="QueryBar_selected"]').find('[class*="QueryValues_value"]').contains('1-11846011-A-G').should('exist'); - cy.validateTableResultsCount(/^1 Results$/); + cy.validateTableResultsCount(/^1 Result$/); cy.get('[data-icon="close-circle"]').click({force: true}); cy.get('[data-cy="Tag_1-11846011-A-G"]').should('not.exist'); diff --git a/cypress/e2e/Navigation/Logout.cy.ts b/cypress/e2e/Navigation/Logout.cy.ts index 43d73d1a..2691838c 100644 --- a/cypress/e2e/Navigation/Logout.cy.ts +++ b/cypress/e2e/Navigation/Logout.cy.ts @@ -11,23 +11,30 @@ describe('Page Logout', () => { it('Vérifier les informations affichées', () => { cy.logout(); - cy.contains('Available Data').should('exist'); - cy.get('[data-cy="DataRelease_Study"]').contains(/\d{1}/).should('exist'); - cy.get('[data-cy="DataRelease_Study"]').contains('Stud').should('exist'); - cy.get('[data-cy="DataRelease_Participant"]').contains(/\d{1}/).should('exist'); - cy.get('[data-cy="DataRelease_Participant"]').contains('Participants').should('exist'); - cy.get('[data-cy="DataRelease_Biospecimen"]').contains(/\d{1}/).should('exist'); - cy.get('[data-cy="DataRelease_Biospecimen"]').contains('Biospecimens').should('exist'); - cy.get('[data-cy="DataRelease_File"]').contains(/\.\d{1,2}(T|G)B/).should('exist'); - cy.get('[data-cy="DataRelease_File"]').contains('Data Files').should('exist'); - - cy.contains('Data Portal').should('exist'); - cy.contains('The Quebec Genomic Data Center is a data harmonization and sharing platform for genomic datasets produced by Quebec\'s clinical and research studies.').should('exist'); - cy.get('[data-cy="Login"]').contains('Login').should('exist'); - cy.get('[data-cy="Signup"]').contains('Sign up').should('exist'); - - cy.get('img[src*="/static/media/genome_qc."]').should('exist'); - cy.get('img[src*="/static/media/FRQS."]').should('exist'); - cy.get('img[src*="/static/media/FCI."]').should('exist'); + cy.get('[class*="TopBanner_title"]').contains(/(Portail de données|Data Portal)/).should('exist'); + cy.get('[class*="Studies_container"] [class*="Summary"] [id="study"]').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_dots"]').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"] [src*="/static/media/cartagene."]').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('DEE').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('BACQ').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('PRAGMatIQ').should('exist'); + cy.get('[class*="Studies_container"] [class*="ant-carousel"] [class*="Carousel_title"]').contains('NeuroDev').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-head"]').contains(/(Édition|Release)/).should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(0).find('[id="study"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(1).find('[id="participant"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(2).find('[id="biospecimen"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(3).find('[id="file"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(4).find('[id="gene"]').should('exist'); + cy.get('[class*="Stats_wrapper"] [class*="ant-card-body"] [class*="TextIcon_layout"]').eq(5).find('[id="exomes"]').should('exist'); + cy.get('[class*="Rare_container"] [src*="/static/media/RARE."]').should('exist'); + cy.get('[class*="SecureData_container"] [src*="data:image/png"]').should('exist'); + cy.get('[class*="Variants_container"] [id="gene"]').should('exist'); + cy.get('[class*="BannerItem_container"]').eq(0).find('[id="information"]').should('exist'); + cy.get('[class*="BannerItem_container"]').eq(1).find('[id="cloud-database"]').should('exist'); + cy.get('[src*="/static/media/logos-genome_qc."]').should('exist'); + cy.get('[src*="/static/media/logos-chusj-color."]').should('exist'); + cy.get('[src*="/static/media/logos-FRQS-color."]').should('exist'); + cy.get('[src*="/static/media/logos-FCI-color."]').should('exist'); + cy.get('[src*="/static/media/logos-ferlab-color."]').should('exist'); }); }); diff --git a/package-lock.json b/package-lock.json index 42a40a43..79d6cddc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@apollo/client": "^3.7.11", "@dnd-kit/core": "^4.0.3", "@dnd-kit/sortable": "^5.1.0", - "@ferlab/ui": "^8.2.2", + "@ferlab/ui": "^9.9.7", "@loadable/component": "^5.15.2", "@nivo/bar": "^0.84.0", "@nivo/pie": "^0.84.0", @@ -2888,9 +2888,9 @@ } }, "node_modules/@ferlab/ui": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@ferlab/ui/-/ui-8.2.3.tgz", - "integrity": "sha512-iBrFjYQaUxMeDe+rJzL2feeiDt1CsaOiIpaGW2UotdgPyKOKOPNSy7/q/cTNIJVrivT8a7L3hOeZTzlEiygpfQ==", + "version": "9.9.7", + "resolved": "https://registry.npmjs.org/@ferlab/ui/-/ui-9.9.7.tgz", + "integrity": "sha512-085MAfBLgl6vayaJcJwQSKXuCtcB4cYT3UBMOd6j++2qjtvpV+jxN/lzIHZK03tE6CjSAJKJMwzAt0NTptu8sA==", "dependencies": { "@ant-design/icons": "^4.7.0", "@dnd-kit/core": "^4.0.3", @@ -27429,9 +27429,9 @@ "version": "8.56.0" }, "@ferlab/ui": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@ferlab/ui/-/ui-8.2.3.tgz", - "integrity": "sha512-iBrFjYQaUxMeDe+rJzL2feeiDt1CsaOiIpaGW2UotdgPyKOKOPNSy7/q/cTNIJVrivT8a7L3hOeZTzlEiygpfQ==", + "version": "9.9.7", + "resolved": "https://registry.npmjs.org/@ferlab/ui/-/ui-9.9.7.tgz", + "integrity": "sha512-085MAfBLgl6vayaJcJwQSKXuCtcB4cYT3UBMOd6j++2qjtvpV+jxN/lzIHZK03tE6CjSAJKJMwzAt0NTptu8sA==", "requires": { "@ant-design/icons": "^4.7.0", "@dnd-kit/core": "^4.0.3", diff --git a/package.json b/package.json index 9b94ff09..2c00b8fb 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "@apollo/client": "^3.7.11", "@dnd-kit/core": "^4.0.3", "@dnd-kit/sortable": "^5.1.0", - "@ferlab/ui": "^8.2.2", + "@ferlab/ui": "^9.9.7", "@loadable/component": "^5.15.2", "@nivo/bar": "^0.84.0", "@nivo/pie": "^0.84.0", diff --git a/src/App.tsx b/src/App.tsx index e0c00552..4b3e1ae1 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -21,10 +21,8 @@ import ErrorPage from 'views/Error'; import Login from 'views/Login'; import { LANG } from 'common/constants'; -import MainSideImage from 'components/assets/side-img-svg.svg'; import ErrorBoundary from 'components/ErrorBoundary'; import PageLayout from 'components/Layout'; -import SideImageLayout from 'components/Layout/SideImage'; import Spinner from 'components/uiKit/Spinner'; import NotificationContextHolder from 'components/utils/NotificationContextHolder'; import { useLang } from 'store/global'; @@ -62,9 +60,7 @@ const App = () => { - - - + @@ -330,139 +330,139 @@ const CQDGLogoFull = ({ width = 152, height = 52, className = '' }: IconProps) = diff --git a/src/components/Layout/SideImage/index.module.scss b/src/components/Layout/SideImage/index.module.scss deleted file mode 100644 index cbd16bb8..00000000 --- a/src/components/Layout/SideImage/index.module.scss +++ /dev/null @@ -1,70 +0,0 @@ -@import 'src/style/themes/cqdg/colors'; - -.sideImagePageContainer { - position: relative; - height: 100vh; - background-color: $gray-8; - - .contentWrapper { - height: 100%; - width: 100%; - } - - .sideImageContainer { - background: #ffffff; - background-repeat: no-repeat; - background-position: bottom; - height: 100%; - transition: width 0.2s ease; - } - - .pageContent { - flex: 1; - - &.alignCenter { - justify-content: center; - align-items: center; - } - - &.light { - background-color: $gray-2; - } - } - - .logoImage { - width: 275px; - position: absolute; - margin: 20px; - } -} - -@media (min-width: 1351px) { - .sideImageContainer { - width: 575px; - } -} - -@media (max-width: 1350px) { - .sideImageContainer { - width: 435px; - } -} - -@media (max-width: 1180px) { - .sideImageContainer { - flex: 0; - } - - .pageContent { - display: flex; - - &.dark { - background-size: cover; - background-repeat: no-repeat; - background-position: center; - background: linear-gradient(0deg, transparentize($gray-8, 0.1), transparentize($gray-8, 0.1)), - url(../../assets/side-img-svg.svg) bottom; - background-size: cover; - } - } -} diff --git a/src/components/Layout/SideImage/index.tsx b/src/components/Layout/SideImage/index.tsx deleted file mode 100644 index 0f2bf792..00000000 --- a/src/components/Layout/SideImage/index.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { ReactElement } from 'react'; -import { Row } from 'antd'; -import cx from 'classnames'; -import EnvVariables from 'helpers/EnvVariables'; - -import style from 'components/Layout/SideImage/index.module.scss'; - -interface OwnProps { - logoSrc?: string; - sideImgSrc?: string; - alignCenter?: boolean; - theme?: 'light' | 'dark'; - children: ReactElement; -} - -const SideImageLayout = ({ - logoSrc, - sideImgSrc, - alignCenter = true, - theme = 'dark', - children, -}: OwnProps) => ( -
- {logoSrc && ( - - CQDG Logo Logo - - )} - -
- - {children} - - -
-); - -export default SideImageLayout; diff --git a/src/components/assets/FCI.svg b/src/components/assets/FCI.svg deleted file mode 100644 index 14d6a7e6..00000000 --- a/src/components/assets/FCI.svg +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/components/assets/FRQS.svg b/src/components/assets/FRQS.svg deleted file mode 100644 index 24586658..00000000 --- a/src/components/assets/FRQS.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/components/assets/RARE.png b/src/components/assets/RARE.png new file mode 100644 index 0000000000000000000000000000000000000000..7ee7f158e21f3d9ad73556ad711f801c3588d718 GIT binary patch literal 13552 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 OfdR$k#i~T~{r?Z8!a0`! literal 0 HcmV?d00001 diff --git a/src/components/assets/background.svg b/src/components/assets/background.svg new file mode 100644 index 00000000..68700eaa --- /dev/null +++ b/src/components/assets/background.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/assets/cartagene.png b/src/components/assets/cartagene.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4671ebdbf979b73aafba811aecce69b39461b3 GIT binary patch literal 160786 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 z�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 z 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 T0t}k}00000NkvXXu0mjfXdreI literal 0 HcmV?d00001 diff --git a/src/components/assets/genome_qc.svg b/src/components/assets/genome_qc.svg deleted file mode 100644 index d45f31fa..00000000 --- a/src/components/assets/genome_qc.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/components/assets/logos-FCI-color.svg b/src/components/assets/logos-FCI-color.svg new file mode 100644 index 00000000..594fd20e --- /dev/null +++ b/src/components/assets/logos-FCI-color.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/assets/logos-FRQS-color.png b/src/components/assets/logos-FRQS-color.png new file mode 100644 index 0000000000000000000000000000000000000000..885fbe4bbc5f6113fe82f78f499e5edf2b66e6bf GIT binary patch literal 11701 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 + + + + + + + + + + + diff --git a/src/components/assets/logos-ferlab-color.svg b/src/components/assets/logos-ferlab-color.svg new file mode 100644 index 00000000..196f0f20 --- /dev/null +++ b/src/components/assets/logos-ferlab-color.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/components/assets/logos-genome_qc.svg b/src/components/assets/logos-genome_qc.svg new file mode 100644 index 00000000..e4e1b59a --- /dev/null +++ b/src/components/assets/logos-genome_qc.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/components/assets/sd4h.png b/src/components/assets/sd4h.png new file mode 100644 index 0000000000000000000000000000000000000000..41d6b50d8c252d83d5242426a7e0d162f84fe853 GIT binary patch literal 5316 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 WTgLl - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/locales/en.ts b/src/locales/en.ts index b149f1ac..67bfc0ed 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -423,6 +423,7 @@ const en = { }, proTable: { results: 'Results', + result: 'Result', noResults: 'No Result', of: 'of', selected: 'item selected', @@ -755,6 +756,75 @@ const en = { "The Quebec Genomic Data Center is a data harmonization and sharing platform for genomic datasets produced by Quebec's clinical and research studies.", login: 'Login', signup: 'Sign up', + studies: { + title: 'Studies', + summary: 'Explore harmonized data from studies in both pediatric and adult populations.', + cartagene: { + subtitle: 'CARTaGENE', + description: + '

CARTaGENE is a public research platform of the CHU Sainte-Justine created to accelerate health research. CARTaGENE consists of both biological samples and health data from 43,000 Quebec residents aged between 40 to 69 years.

The dataset currently available in the CQDG contains whole genome sequencing (WGS) data for 2,179 individuals.

', + }, + dee: { + title: 'DEE', + subtitle: 'Investigating the genetic causes of epileptogenic encephalopathies', + description: + '

Whole Genome Sequencing (WGS) study in children with epileptogenic encephalopathies.

The dataset currently available in the CQDG contains whole genome sequencing data for 588 individuals belonging to 196 families.

', + }, + bacq: { + title: 'BACQ', + subtitle: 'Quebec congenital malformation biobank', + description: + '

Biobank of well-characterized affected cases as well as their parents allowing molecular genetic studies to be carried out to identify the genes associated with these malformations.

The dataset currently available in the CQDG contains whole exome sequencing (WXS) data for 386 individuals belonging to 124 families.

', + }, + pragmatiq: { + title: 'PRAGMatIQ', + subtitle: 'Applying rapid pediatric genomics in Quebec', + description: + '

The objective of the project is to offer rapid clinical Whole Genome Sequencing (WGS) to all critically ill newborns and infants who could benefit from this test in Quebec.

Data for 257 individuals has been submitted to the CQDG. The dataset currently available in the CQDG contains whole genome sequencing data for 110 individuals belonging to 38 families.

', + }, + neurodev: { + title: 'NeuroDev', + subtitle: 'Neurodevelopmental disorders', + description: + '

The main objective of this project is to constitute a bank of samples and data from children and adults with global developmental delay, epilepsy and/or malformations and members of their family to supply various research projects which aim to identify the genes involved in these conditions.

Data for 382 individuals has been submitted to the CQDG. The dataset currently available in the CQDG contains whole genome sequencing data for 67 individuals belonging to 22 families.

', + }, + }, + cards: { + stats: { + release: 'Release V1', + genomes: 'Genomes', + exomes: 'Exomes', + }, + rare: { + title: 'Network to advance research on rare diseases in Quebec', + description: + 'The CQDG is a proud partner of the new Réseau pour Avancer la REcherche sur les maladies rares au Québec (Network to advance research on rare diseases in Quebec or RARE.Qc) financed by the FRQS. RARE.Qc is a coalition of over 100 researchers and patient partners across Quebec, aiming to transform research on rare diseases, particularly by promoting collaboration and data sharing using the CQDG infrastructure.', + }, + secureData: { + title: 'CQDG in the Cloud', + description: + 'Analyse CQDG datasets with your own software using the Secure Data for Health (SD4H) cloud-based infrastructure. Other cloud providers will be integrated with CQDG in a near future. Contact us to learn more.', + contact: 'Contact us', + }, + variants: { + title: 'Germline Variants', + description: + 'Our variant explorer offers advanced searching capabilities. With just a few clicks, you can explore millions of annotated germline variants from genomes and exomes of the CQDG participants.', + explore: 'Explore variant data', + }, + }, + documentation: { + title: 'Documentation Center', + description: + 'To learn how to submit your data, request access to data, or to read user guides for the portal, visit the Documentation Center.', + button: 'Documentation Center', + }, + hosting: { + title: 'Need to Host Your Data?', + description: + 'The CQDG offers an ideal platform for researchers to store and share genomic data produced by clinical and research studies.', + button: 'Submit your data', + }, }, memberProfile: { notFound: 'User not found', diff --git a/src/locales/fr.ts b/src/locales/fr.ts index f0103aca..9ada7d65 100644 --- a/src/locales/fr.ts +++ b/src/locales/fr.ts @@ -424,6 +424,7 @@ const fr = { }, proTable: { results: 'Résultats', + result: 'Résultat', noResults: 'Aucun résultat', of: 'de', selected: 'élément sélectionné', @@ -763,9 +764,79 @@ const fr = { loginPage: { title: 'Portail de données', resume: - "Le Centre québécois de données génomiques est une plateforme d'harmonisation et de diffusion des données génomiques générées par les études cliniques et de recherche du Québec.", + "Le Centre Québécois de Données Génomiques est une plateforme d'harmonisation et de diffusion des données génomiques générées par les études cliniques et de recherche du Québec.", login: 'Connexion', - signup: 'Créer un compte', + signup: 'Créer compte', + studies: { + title: 'Études', + summary: + 'Explorez les données harmonisées d’études dans les populations pédiatriques et adultes.', + cartagene: { + subtitle: 'CARTaGENE', + description: + "

CARTaGENE est une plateforme publique de recherche du CHU Sainte-Justine créée pour accélérer la recherche en santé. CARTaGENE est constitué à la fois d'échantillons biologiques et de données de santé provenant de 43 000 résidents du Québec âgés de 40 à 69 ans.

Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier (WGS) de 2 179 individus.

", + }, + dee: { + title: 'DEE', + subtitle: 'Investigation des causes génétiques des encéphalopathies épileptogènes', + description: + "

Étude de séquençage du génome entier (WGS) chez des enfants atteints d'encéphalopathies épileptogènes.

Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier de 588 individus appartenant à 196 familles.

", + }, + bacq: { + title: 'BACQ', + subtitle: 'Biobanque des anomalies congénitales au Québec', + description: + '

Biobanque de cas affectés bien caractérisés ainsi que de leurs parents permettant de mener des études de génétique moléculaire pour identifier les gènes associés à ces malformations.

Le jeu de données présentement hébergé au CQDG comprend les données de séquençage de l’exome entier (WXS) de 386 individus appartenant à 124 familles.

', + }, + pragmatiq: { + title: 'PRAGMatIQ', + subtitle: 'Pratique rapide de la génomique pédiatrique au Québec', + description: + "

L'objectif du projet est d'offrir un séquençage clinique rapide du génome entier (WGS) à tous les nouveau-nés et nourrissons gravement malades qui pourraient bénéficier de ce test au Québec.

Les données de 257 individus ont été soumises au CQDG. Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier de 110 individus appartenant à 38 familles.

", + }, + neurodev: { + title: 'NeuroDev', + subtitle: 'Troubles du neuro-développement', + description: + "

L'objectif principal de ce projet est de constituer une banque d'échantillons et de données provenant d'enfants et d'adultes atteints d'un retard global de développement, d'épilepsie et/ou de malformations et de membres de leur famille pour alimenter divers projets de recherche qui visent à identifier les gènes impliqués dans ces pathologies.

Les données de 382 individus ont été soumises au CQDG. Le jeu de données présentement hébergé au CQDG comprend les données de séquençage du génome entier de 67 individus appartenant à 22 familles.

", + }, + }, + cards: { + stats: { + release: 'Édition V1', + genomes: 'Génomes', + exomes: 'Exomes', + }, + rare: { + title: 'Réseau pour Avancer la REcherche sur les maladies rares au Québec', + description: + 'Le CQDG est un fier partenaire du nouveau Réseau pour Avancer la REcherche sur les maladies rares au Québec (RARE.Qc) financé par le FRQS. RARE.Qc est un regroupement de plus 100 chercheurs et patients partenaires à travers le Québec, qui vise à transformer la recherche sur les maladies rares.', + }, + secureData: { + title: 'CQDG dans l’infonuage', + description: + 'Analysez les données du CQDG avec vos propres logiciels sur l’infrastructure infonuagique Secure Data for Health (SD4H). D’autres infonuages seront également intégrés au CQDG dans un avenir rapproché. Contactez-nous pour en savoir plus.', + contact: 'Contactez-nous', + }, + variants: { + title: 'Variants germinaux', + description: + 'Notre explorateur de variants offre des fonctions de recherche avancées. En quelques clics, vous pouvez explorer des millions de variants germinaux annotés issus des génomes et exomes des participants du CQDG.', + explore: 'Explorer les données de variants', + }, + }, + documentation: { + title: 'Centre de documentation', + description: + 'Pour savoir comment soumettre vos données, faire une demande d’accès ou pour consulter des guides d’utilisation du portail, visitez le centre de documentation.', + button: 'Centre de documentation', + }, + hosting: { + title: 'Données à héberger ?', + description: + 'Le CQDG offre aux chercheurs une plateforme idéale pour entreposer et diffuser les données génomiques générées par les études cliniques et de recherche.', + button: 'Soumettre vos données', + }, }, memberProfile: { notFound: 'Membre non trouvé', diff --git a/src/services/api/arranger/models.ts b/src/services/api/arranger/models.ts index 5c1d718a..34758c14 100644 --- a/src/services/api/arranger/models.ts +++ b/src/services/api/arranger/models.ts @@ -33,6 +33,8 @@ export interface IStatistics { samples: number; studies: number; variants: number; + exomes: number; + genomes: number; } export interface ArrangerSingleColumnState { diff --git a/src/style/themes/cqdg/antd/buttons.less b/src/style/themes/cqdg/antd/buttons.less index eacc99c7..d95fb0a2 100644 --- a/src/style/themes/cqdg/antd/buttons.less +++ b/src/style/themes/cqdg/antd/buttons.less @@ -42,17 +42,20 @@ border-color: @gray-5; color: @gray-8; } + &:focus { background-color: @gray-1; border-color: @gray-5; color: @gray-8; } + &:active { background-color: @gray-3; } + &:focus-visible { border-color: @gray-8; - box-shadow: 0 0 0 2px @gray-1, 0 0 0 4px @gray-8; + box-shadow: 0 0 0 2px @gray-1, 0 0 0 3px @gray-8; } &.@{btn-prefix-cls}-dangerous:not(:disabled) { @@ -61,19 +64,43 @@ color: @red-7; border-color: @red-7; } + &:focus { color: @red-7; border-color: @red-7; } + &:active { color: @red-8; border-color: @red-8; } + &:focus-visible { border-color: @red-7; box-shadow: 0 0 0 2px @gray-1, 0 0 0 4px @red-7; } } + + &.@{btn-prefix-cls}-background-ghost:not(:disabled) { + border-color: @gray-1; + color: @gray-1; + + &:hover { + color: @blue-3; + border-color: @blue-3; + } + + &:focus-visible { + color: @gray-1; + border: 2px solid @gray-1; + box-shadow: none; + } + + &:active { + color: @blue-3; + border-color: @blue-3; + } + } } &-primary { @@ -81,14 +108,17 @@ background-color: @blue-9; border-color: @blue-9; } + &:focus { background-color: @blue-8; border-color: @blue-8; } + &:active { background-color: @blue-10; border-color: @blue-10; } + &:focus-visible { box-shadow: 0 0 0 2px @gray-1, 0 0 0 4px @blue-8; } @@ -98,14 +128,17 @@ background-color: @red-6; border-color: @red-6; } + &:focus { background-color: @red-6; border-color: @red-6; } + &:active { background-color: @red-8; border-color: @red-8; } + &:focus-visible { background-color: @red-7; box-shadow: 0 0 0 2px @gray-1, 0 0 0 4px @red-7; @@ -113,17 +146,24 @@ } &.@{btn-prefix-cls}-background-ghost:not(:disabled) { - border-color: @blue-5; - color: @blue-5; + background-color: @gold-4; + border-color: @gold-4; + color: @gray-8; &:hover { - border-color: @blue-3; - color: @blue-3; + background-color: @gold-5; + border-color: @gold-5; } + &:focus-visible { - border-color: @blue-3; - color: @blue-3; - border-width: 2px; + background-color: @gold-4; + border: 2px solid @gray-8; + box-shadow: 0 0 0 2px @gold-4, 0 0 0 3px @gold-4; + } + + &:active { + background-color: @gold-6; + border-color: @gold-6; } } } @@ -132,9 +172,11 @@ &:hover { background-color: @gray-2; } + &:active { background-color: @gray-3; } + &:focus-visible { box-shadow: 0 0 0 2px @gray-8; } diff --git a/src/utils/translation.ts b/src/utils/translation.ts index ad367a31..dd6821ed 100644 --- a/src/utils/translation.ts +++ b/src/utils/translation.ts @@ -57,6 +57,7 @@ export const getProTableDictionary = (): IProTableDictionary => ({ }, itemCount: { results: intl.get('global.proTable.results'), + result: intl.get('global.proTable.result'), noResults: intl.get('global.proTable.noResults'), of: intl.get('global.proTable.of'), selected: intl.get('global.proTable.selected'), diff --git a/src/views/Login/BottomBanner/BannerItem/index.module.scss b/src/views/Login/BottomBanner/BannerItem/index.module.scss new file mode 100644 index 00000000..3ef4caf0 --- /dev/null +++ b/src/views/Login/BottomBanner/BannerItem/index.module.scss @@ -0,0 +1,15 @@ +@import 'style/themes/cqdg/colors'; + +.container { + flex: 1; + display: flex; + flex-direction: column; + gap: 24px; + margin: 40px; +} + +.text { + color: $gray-1; + font-size: 16px; + line-height: 24px; +} diff --git a/src/views/Login/BottomBanner/BannerItem/index.tsx b/src/views/Login/BottomBanner/BannerItem/index.tsx new file mode 100644 index 00000000..eccd5cd0 --- /dev/null +++ b/src/views/Login/BottomBanner/BannerItem/index.tsx @@ -0,0 +1,36 @@ +import React, { ComponentType } from 'react'; +import ExternalLinkIcon from '@ferlab/ui/core/components/ExternalLink/ExternalLinkIcon'; +import { IIconProps } from '@ferlab/ui/core/components/Icons/type'; +import { Button } from 'antd'; + +import TextIcon from '../../TextIcon'; + +import styles from './index.module.scss'; + +type BannerItemProps = { + IconComponent: ComponentType; + title: string; + description: string; + buttonText: string; + buttonUrl: string; +}; +const BannerItem = ({ + IconComponent, + title, + description, + buttonText, + buttonUrl, +}: BannerItemProps) => ( +
+ +
{description}
+
+ +
+
+); + +export default BannerItem; diff --git a/src/views/Login/BottomBanner/index.module.scss b/src/views/Login/BottomBanner/index.module.scss new file mode 100644 index 00000000..280923e7 --- /dev/null +++ b/src/views/Login/BottomBanner/index.module.scss @@ -0,0 +1,37 @@ +@import 'style/themes/cqdg/colors'; + +.bottomBanner { + background: linear-gradient(266deg, #28AAE2 0.82%, #006095 98.04%); + width: 100%; + display: flex; + justify-content: center; + padding: 48px 24px; +} + +.content { + max-width: 1200px; + display: flex; + align-items: flex-start; + gap: 40px; +} + +@media (min-width: 800px) and (max-width: 1024px) { + .bottomBanner { + padding: 40px 24px; + + } + .content { + gap: 0; + } +} + +@media (max-width: 800px) { + .bottomBanner { + padding: 40px 24px; + } + + .content { + flex-direction: column; + gap: 0; + } +} \ No newline at end of file diff --git a/src/views/Login/BottomBanner/index.tsx b/src/views/Login/BottomBanner/index.tsx new file mode 100644 index 00000000..b2ed13c0 --- /dev/null +++ b/src/views/Login/BottomBanner/index.tsx @@ -0,0 +1,31 @@ +import React from 'react'; +import intl from 'react-intl-universal'; +import CloudDatabaseIcon from '@ferlab/ui/core/components/Icons/FuturoSpot/CloudDatabaseSpotIcon'; +import InformationIcon from '@ferlab/ui/core/components/Icons/FuturoSpot/InformationSpotIcon'; + +import BannerItem from './BannerItem'; + +import styles from './index.module.scss'; + +const BottomBanner = () => ( +
+
+ + +
+
+); + +export default BottomBanner; diff --git a/src/views/Login/Cards/Rare/index.module.scss b/src/views/Login/Cards/Rare/index.module.scss new file mode 100644 index 00000000..15825911 --- /dev/null +++ b/src/views/Login/Cards/Rare/index.module.scss @@ -0,0 +1,30 @@ +@import 'style/themes/cqdg/colors'; + +.container { + display: flex; + flex-direction: column; + gap: 24px; + padding: 40px; + width: 100%; + height: fit-content; +} + +.logo { + width: 143px; + height: 54px; + object-position: -4px; +} + +.title { + font-size: 24px; + font-weight: 800; + line-height: 32px; + color: $gray-9; +} + +.text { + font-size: 16px; + line-height: 24px; + color: $gray-8; +} + diff --git a/src/views/Login/Cards/Rare/index.tsx b/src/views/Login/Cards/Rare/index.tsx new file mode 100644 index 00000000..86a1bc50 --- /dev/null +++ b/src/views/Login/Cards/Rare/index.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import intl from 'react-intl-universal'; + +import rareLogo from 'components/assets/RARE.png'; + +import styles from './index.module.scss'; + +const Rare = () => ( +
+ +
{intl.get('screen.loginPage.cards.rare.title')}
+
{intl.get('screen.loginPage.cards.rare.description')}
+
+); + +export default Rare; diff --git a/src/views/Login/Cards/SecureData/index.module.scss b/src/views/Login/Cards/SecureData/index.module.scss new file mode 100644 index 00000000..b0f44f06 --- /dev/null +++ b/src/views/Login/Cards/SecureData/index.module.scss @@ -0,0 +1,38 @@ +@import 'style/themes/cqdg/colors'; + +.container { + width: 100%; + height: fit-content; + display: flex; + flex-direction: column; + gap: 24px; + padding: 40px; +} + +.logo { + width: 130px; + height: 54px; + object-position: -16px; +} + +.title { + font-size: 24px; + font-weight: 800; + line-height: 32px; + color: $gray-9; +} + +.text { + font-size: 16px; + line-height: 24px; + color: $gray-8; +} + + +@media (min-width: 800px) and (max-width: 1024px) { + .container { + padding: 40px 40px 0; + } +} + + diff --git a/src/views/Login/Cards/SecureData/index.tsx b/src/views/Login/Cards/SecureData/index.tsx new file mode 100644 index 00000000..2c8c86eb --- /dev/null +++ b/src/views/Login/Cards/SecureData/index.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import intl from 'react-intl-universal'; +import { MailOutlined } from '@ant-design/icons'; +import { Button } from 'antd'; + +import sd4hLogo from 'components/assets/sd4h.png'; +import { SUPPORT_EMAIL } from 'store/report/thunks'; + +import styles from './index.module.scss'; + +const SecureData = () => ( +
+ +
{intl.get('screen.loginPage.cards.secureData.title')}
+
{intl.get('screen.loginPage.cards.secureData.description')}
+
+ +
+
+); + +export default SecureData; diff --git a/src/views/Login/Cards/Stats/index.module.scss b/src/views/Login/Cards/Stats/index.module.scss new file mode 100644 index 00000000..964a3ca5 --- /dev/null +++ b/src/views/Login/Cards/Stats/index.module.scss @@ -0,0 +1,16 @@ +@import 'style/themes/cqdg/colors'; + +.wrapper { + height: fit-content; + width: 100%; + justify-self: center; + align-self: center; +} + +.cardContent { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: repeat(3, 1fr); + grid-row-gap: 32px; +} + diff --git a/src/views/Login/Cards/Stats/index.tsx b/src/views/Login/Cards/Stats/index.tsx new file mode 100644 index 00000000..ffe0b0ae --- /dev/null +++ b/src/views/Login/Cards/Stats/index.tsx @@ -0,0 +1,81 @@ +import React from 'react'; +import intl from 'react-intl-universal'; +import BiospecimenIcon from '@ferlab/ui/core/components/Icons/Futuro/BiospecimenIcon'; +import ExomesIcon from '@ferlab/ui/core/components/Icons/Futuro/ExomesIcon'; +import FileIcon from '@ferlab/ui/core/components/Icons/Futuro/FileIcon'; +import GeneIcon from '@ferlab/ui/core/components/Icons/Futuro/GeneIcon'; +import ParticipantIcon from '@ferlab/ui/core/components/Icons/Futuro/ParticipantIcon'; +import StudyIcon from '@ferlab/ui/core/components/Icons/Futuro/StudyIcon'; +import { numberFormat } from '@ferlab/ui/core/utils/numberUtils'; +import GridCard from '@ferlab/ui/core/view/v2/GridCard/index'; +import { Typography } from 'antd'; + +import { useGlobals } from 'store/global'; + +import TextIcon from '../../TextIcon'; + +import styles from './index.module.scss'; + +const { Title } = Typography; + +const Stats = () => { + const { stats } = useGlobals(); + const { + studies = 0, + participants = 0, + samples = 0, + fileSize = '', + exomes = 0, + genomes = 0, + } = stats || {}; + + return ( + {intl.get('screen.loginPage.cards.stats.release')}} + content={ +
+ + + + + + +
+ } + /> + ); +}; + +export default Stats; diff --git a/src/views/Login/Cards/Variants/index.module.scss b/src/views/Login/Cards/Variants/index.module.scss new file mode 100644 index 00000000..05ffc933 --- /dev/null +++ b/src/views/Login/Cards/Variants/index.module.scss @@ -0,0 +1,25 @@ +@import 'style/themes/cqdg/colors'; + +.container { + background: linear-gradient(343deg, #008FC7 23.91%, #016195 102.01%); + width: 100%; + height: fit-content; + padding: 48px; + display: flex; + flex-direction: column; + justify-content: center; + gap: 24px; + color: $gray-1; +} + +.description { + font-size: 16px; + line-height: 24px; +} + + +@media (max-width: 1024px) { + .container { + padding: 40px; + } +} diff --git a/src/views/Login/Cards/Variants/index.tsx b/src/views/Login/Cards/Variants/index.tsx new file mode 100644 index 00000000..444b326b --- /dev/null +++ b/src/views/Login/Cards/Variants/index.tsx @@ -0,0 +1,55 @@ +import React from 'react'; +import intl from 'react-intl-universal'; +import { ArrowRightOutlined } from '@ant-design/icons'; +import GeneIcon from '@ferlab/ui/core/components/Icons/FuturoSpot/GeneSpotIcon'; +import { numberFormat } from '@ferlab/ui/core/utils/numberUtils'; +import { useKeycloak } from '@react-keycloak/web'; +import { Button } from 'antd'; + +import { useGlobals } from 'store/global'; +import { STATIC_ROUTES } from 'utils/routes'; + +import TextIcon from '../../TextIcon'; + +import styles from './index.module.scss'; + +const Variants = () => { + const { keycloak } = useKeycloak(); + const { stats } = useGlobals(); + const { variants = 0 } = stats || {}; + const handleSignin = async () => { + const url = keycloak.createLoginUrl({ + redirectUri: `${window.location.origin}/${STATIC_ROUTES.VARIANTS}`, + locale: intl.getInitOptions().currentLocale, + }); + window.location.assign(url); + }; + + return ( +
+ +
+ {intl.get('screen.loginPage.cards.variants.description')} +
+
+ +
+
+ ); +}; + +export default Variants; diff --git a/src/views/Login/Cards/index.module.scss b/src/views/Login/Cards/index.module.scss new file mode 100644 index 00000000..31595d0e --- /dev/null +++ b/src/views/Login/Cards/index.module.scss @@ -0,0 +1,59 @@ +@import 'style/themes/cqdg/colors'; + +.cardsContainer { + display: flex; + justify-content: center; + padding: 48px 24px; + width: 100%; + height: fit-content; + background-color: $gray-1; +} + +.cardsGrid { + max-width: 1200px; + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: repeat(2, 1fr); + grid-column-gap: 40px; + grid-row-gap: 48px; +} + + +@media (min-width: 800px) and (max-width: 1024px) { + .cardsContainer { + padding: 40px 24px; + } + .cardsGrid { + grid-column-gap: 0; + grid-row-gap: 0; + } +} + +@media (max-width: 800px) { + .cardsContainer { + padding: 40px 24px; + } + + .cardsGrid { + grid-template-columns: repeat(1, 1fr); + grid-template-rows: repeat(4, 1fr); + grid-column-gap: 0; + grid-row-gap: 0; + } + + .cardsGrid div:nth-child(1) { + order: 1; + } + + .cardsGrid div:nth-child(2) { + order: 2; + } + + .cardsGrid div:nth-child(3) { + order: 4; + } + + .cardsGrid div:nth-child(4) { + order: 3; + } +} diff --git a/src/views/Login/Cards/index.tsx b/src/views/Login/Cards/index.tsx new file mode 100644 index 00000000..f2ba82f4 --- /dev/null +++ b/src/views/Login/Cards/index.tsx @@ -0,0 +1,19 @@ +import Rare from './Rare'; +import SecureData from './SecureData'; +import Stats from './Stats'; +import Variants from './Variants'; + +import styles from './index.module.scss'; + +const Cards = () => ( +
+
+ + + + +
+
+); + +export default Cards; diff --git a/src/views/Login/Footer/index.module.scss b/src/views/Login/Footer/index.module.scss new file mode 100644 index 00000000..4f9bee79 --- /dev/null +++ b/src/views/Login/Footer/index.module.scss @@ -0,0 +1,50 @@ +@import 'style/themes/cqdg/colors'; + +.footerContainer { + padding: 40px; + display: grid; + grid-template-columns: repeat(5, 1fr); + grid-gap: 40px; + justify-items: center; + align-items: center; +} + +.image { + display: flex; + justify-content: center; + align-items: center; +} + +.frqsLogo { + height: 48px; +} + +@media (min-width: 800px) and (max-width: 1024px) { + .footerContainer { + grid-template-columns: repeat(4, 1fr); + grid-template-rows: 1fr auto; + } + + .footerContainer > :last-child { + grid-column: 2 / span 2; + } +} + +@media (max-width: 800px) { + .footerContainer { + grid-template-columns: repeat(6, 1fr); + grid-template-rows: 1fr auto; + } + + .image { + grid-column: span 2; + } + + .footerContainer > :nth-last-child(1) { + grid-column: span 3; + } + + .footerContainer > :nth-last-child(2) { + grid-column: span 3; + } +} diff --git a/src/views/Login/Footer/index.tsx b/src/views/Login/Footer/index.tsx new file mode 100644 index 00000000..f739d44e --- /dev/null +++ b/src/views/Login/Footer/index.tsx @@ -0,0 +1,31 @@ +import React from 'react'; + +import ChuSjLogo from 'components/assets/logos-chusj-color.svg'; +import FciLogo from 'components/assets/logos-FCI-color.svg'; +import FerlabLogo from 'components/assets/logos-ferlab-color.svg'; +import FrqsLogo from 'components/assets/logos-FRQS-color.png'; +import GenomeQcLogo from 'components/assets/logos-genome_qc.svg'; + +import styles from './index.module.scss'; + +const Footer = () => ( +
+
+ GenomeQC Logo +
+
+ ChuSj Logo +
+
+ Frqs Logo +
+
+ Fci Logo +
+
+ Ferlab Logo +
+
+); + +export default Footer; diff --git a/src/views/Login/Studies/Carousel/index.module.scss b/src/views/Login/Studies/Carousel/index.module.scss new file mode 100644 index 00000000..15de0591 --- /dev/null +++ b/src/views/Login/Studies/Carousel/index.module.scss @@ -0,0 +1,53 @@ +@import 'style/themes/cqdg/colors'; + +.carousel { + max-width: 840px; + width: 100%; + background-color: $gray-1; +} + +.contentStyle { + padding: 24px 40px 64px 40px; + text-align: justify; +} + +.title { + font-size: 24px; + font-weight: 800; + line-height: 32px; + color: $gray-9; + margin-bottom: 24px +} + +.subTitle { + font-size: 20px; + font-weight: 600; + line-height: 28px; + color: $gray-9; + margin-bottom: 16px +} + +.description { + font-size: 16px; + line-height: 24px; + color: $gray-8; +} + +.dots li button { + background-color: $gray-9 !important; +} + +.dots { + bottom: 32px !important; +} + +.logo { + width: 81px; + height: 60px; +} + +@media (max-width: 1024px) { + .carousel { + max-width: 100%; + } +} diff --git a/src/views/Login/Studies/Carousel/index.tsx b/src/views/Login/Studies/Carousel/index.tsx new file mode 100644 index 00000000..fe0f824e --- /dev/null +++ b/src/views/Login/Studies/Carousel/index.tsx @@ -0,0 +1,44 @@ +import React from 'react'; +import intl from 'react-intl-universal'; +import { Carousel as AntCarousel } from 'antd'; + +import CartageneLogo from 'components/assets/cartagene.png'; + +import styles from './index.module.scss'; + +const studies = [ + { name: 'cartagene', logo: CartageneLogo }, + { name: 'dee' }, + { name: 'bacq' }, + { name: 'pragmatiq' }, + { name: 'neurodev' }, +]; + +const Carousel = () => ( + + {studies.map((study) => ( +
+
+ {study.logo ? ( + Study Logo + ) : ( + intl.get(`screen.loginPage.studies.${study.name}.title`) + )} +
+
+ {intl.get(`screen.loginPage.studies.${study.name}.subtitle`)} +
+
+ {intl.getHTML(`screen.loginPage.studies.${study.name}.description`)} +
+
+ ))} +
+); + +export default Carousel; diff --git a/src/views/Login/Studies/Summary/index.module.scss b/src/views/Login/Studies/Summary/index.module.scss new file mode 100644 index 00000000..4654cb80 --- /dev/null +++ b/src/views/Login/Studies/Summary/index.module.scss @@ -0,0 +1,25 @@ +@import 'style/themes/cqdg/colors'; + +.container { + max-width: 360px; + width: 100%; + background: linear-gradient(343deg, #008FC7 23.91%, #016195 102.01%); + padding: 48px; + display: flex; + justify-content: center; + flex-direction: column; + gap: 24px; +} + +.description { + font-size: 16px; + line-height: 24px; + color: $gray-1; +} + +@media (max-width: 1024px) { + .container { + max-width: 100%; + padding: 40px; + } +} diff --git a/src/views/Login/Studies/Summary/index.tsx b/src/views/Login/Studies/Summary/index.tsx new file mode 100644 index 00000000..f150cc16 --- /dev/null +++ b/src/views/Login/Studies/Summary/index.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import intl from 'react-intl-universal'; +import StudyIcon from '@ferlab/ui/core/components/Icons/FuturoSpot/StudySpotIcon'; + +import { useGlobals } from 'store/global'; + +import TextIcon from '../../TextIcon'; + +import styles from './index.module.scss'; + +const Summary = () => { + const { stats } = useGlobals(); + const { studies = 0 } = stats || {}; + return ( +
+ +
{intl.get('screen.loginPage.studies.summary')}
+
+ ); +}; + +export default Summary; diff --git a/src/views/Login/Studies/index.module.scss b/src/views/Login/Studies/index.module.scss new file mode 100644 index 00000000..fa28115e --- /dev/null +++ b/src/views/Login/Studies/index.module.scss @@ -0,0 +1,34 @@ +@import 'style/themes/cqdg/colors'; + + +.container { + padding: 48px 24px; + display: flex; + justify-content: center; + width: 100%; + + // This is a known bug with Slick (what is used under the hood by Carousel + // Fix: https://github.com/kenwheeler/slick/issues/982#issuecomment-73517458 + * { + min-height: 0; + min-width: 0; + } + +} + +.layout { + display: flex; +} + + +@media (max-width: 1024px) { + .container { + padding: 40px 24px; + } + + .layout { + flex-direction: column-reverse; + } +} + + diff --git a/src/views/Login/Studies/index.tsx b/src/views/Login/Studies/index.tsx new file mode 100644 index 00000000..debf16c3 --- /dev/null +++ b/src/views/Login/Studies/index.tsx @@ -0,0 +1,16 @@ +import React from 'react'; + +import Carousel from './Carousel'; +import Summary from './Summary'; + +import styles from './index.module.scss'; + +const Studies = () => ( +
+
+ + +
+
+); +export default Studies; diff --git a/src/views/Login/TextIcon/index.module.scss b/src/views/Login/TextIcon/index.module.scss new file mode 100644 index 00000000..d6ae2769 --- /dev/null +++ b/src/views/Login/TextIcon/index.module.scss @@ -0,0 +1,120 @@ +@import 'style/themes/cqdg/colors'; + +.light { + color: $gray-1; + + .icon { + color: $gray-1; + } + + .iconSpot { + color: $blue-7; + } +} + +.dark { + color: $gray-8; + + .icon { + color: $gray-8; + } +} + + +.small { + .layout { + display: flex; + align-items: center; + gap: 16px; + + .icon { + width: 48px; + height: 48px; + } + + .title { + font-size: 16px; + font-weight: 600; + line-height: 24px; + } + + .subTitle { + font-size: 14px; + line-height: 22px; + } + } +} + +.medium { + .layout { + display: flex; + align-items: center; + gap: 16px; + + .icon { + width: 64px; + height: 64px; + } + + .title { + font-size: 24px; + font-weight: 600; + line-height: 32px; + } + + .subTitle { + font-size: 16px; + line-height: 24px; + } + } +} + +.large { + .layout { + display: flex; + align-items: center; + gap: 24px; + + .icon { + width: 96px; + height: 96px; + } + + .title { + font-size: 38px; + font-weight: 600; + line-height: 46px; + } + + .subTitle { + font-size: 24px; + font-weight: 600; + line-height: 32px; + } + } +} + + +@media (max-width: 1024px) { + .large { + .layout { + gap: 16px; + + .icon { + width: 64px; + height: 64px; + } + + .title { + font-size: 24px; + line-height: 32px; + } + + .subTitle { + font-size: 16px; + line-height: 24px;; + } + } + } +} + diff --git a/src/views/Login/TextIcon/index.tsx b/src/views/Login/TextIcon/index.tsx new file mode 100644 index 00000000..376a8872 --- /dev/null +++ b/src/views/Login/TextIcon/index.tsx @@ -0,0 +1,32 @@ +import React, { ComponentType, ReactNode } from 'react'; +import { IIconProps } from '@ferlab/ui/core/components/Icons/type'; + +import styles from './index.module.scss'; + +type RenderIconProps = { + IconComponent: ComponentType; + title?: ReactNode; + subTitle?: ReactNode; + size?: 'small' | 'medium' | 'large'; + color?: 'light' | 'dark'; +}; + +const TextIcon = ({ + IconComponent, + title, + subTitle, + size = 'small', + color = 'light', +}: RenderIconProps) => ( +
+
+ +
+
{title}
+
{subTitle}
+
+
+
+); + +export default TextIcon; diff --git a/src/views/Login/TopBanner/index.module.scss b/src/views/Login/TopBanner/index.module.scss new file mode 100644 index 00000000..9099fea8 --- /dev/null +++ b/src/views/Login/TopBanner/index.module.scss @@ -0,0 +1,68 @@ +@import 'style/themes/cqdg/colors'; + +.topBanner { + background-image: url("../../../components/assets/background.svg"), linear-gradient(266deg, #28AAE2 0.82%, #006095 98.04%); + background-position: center; + display: flex; + flex-direction: column; + align-items: center; + padding: 80px 24px; +} + +.contentContainer { + max-width: 1200px; + width: 100%; +} + +.languageButton { + position: absolute !important; + top: 40px; + right: 40px; +} + +.content { + max-width: 800px; + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 24px; +} + +.logo { + height: 104px; + width: 300px; +} + +.title { + font-size: 24px; + font-weight: 800; + line-height: normal; + color: $gray-1; +} + +.description { + font-size: 16px; + font-weight: 600; + line-height: 24px; + color: $gray-1; +} + +@media (min-width: 800px) and (max-width: 1024px) { + .topBanner { + padding: 40px 40px; + + } + .content { + max-width: 720px; + } +} + +@media (max-width: 800px) { + .topBanner { + padding: 40px 40px; + + } + .content { + max-width: 520px; + } +} \ No newline at end of file diff --git a/src/views/Login/TopBanner/index.tsx b/src/views/Login/TopBanner/index.tsx new file mode 100644 index 00000000..9fc8ddbe --- /dev/null +++ b/src/views/Login/TopBanner/index.tsx @@ -0,0 +1,83 @@ +import intl from 'react-intl-universal'; +import { useDispatch } from 'react-redux'; +import { useKeycloak } from '@react-keycloak/web'; +import { Button, Space } from 'antd'; + +import { REDIRECT_URI_KEY } from 'common/constants'; +import CQDGLogoFull from 'components/Icons/CQDGLogoFull'; +import { getTargetLang } from 'components/Layout/Header'; +import useQueryParams from 'hooks/useQueryParams'; +import { globalActions, useLang } from 'store/global'; +import { updateUser } from 'store/user/thunks'; +import { STATIC_ROUTES } from 'utils/routes'; + +import styles from './index.module.scss'; + +const TopBanner = () => { + const { keycloak } = useKeycloak(); + const query = useQueryParams(); + const lang = useLang(); + const dispatch = useDispatch(); + + const handleSignin = async () => { + const url = keycloak.createLoginUrl({ + redirectUri: `${window.location.origin}/${ + query.get(REDIRECT_URI_KEY) || STATIC_ROUTES.STUDIES + }`, + locale: intl.getInitOptions().currentLocale, + }); + window.location.assign(url); + }; + + const handleChangeLang = () => { + const targetLang = getTargetLang(lang); + + dispatch( + updateUser({ + data: { + locale: targetLang, + }, + }), + ); + dispatch(globalActions.changeLang(targetLang)); + }; + + return ( +
+
+ +
+ +
{intl.get('screen.loginPage.title')}
+
{intl.get('screen.loginPage.resume')}
+ + + + +
+
+
+ ); +}; + +export default TopBanner; diff --git a/src/views/Login/index.module.scss b/src/views/Login/index.module.scss index 6b23bd52..583be100 100644 --- a/src/views/Login/index.module.scss +++ b/src/views/Login/index.module.scss @@ -1,175 +1,7 @@ -@import 'src/style/themes/cqdg/colors'; +@import 'style/themes/cqdg/colors'; -.loginPageContent { - padding: 40px; +.mainLayout { display: flex; flex-direction: column; - height: 100%; - - .switchLang { - position: absolute; - top: 40px; - right: 40px; - } - - .loginContainer { - display: flex; - flex-direction: column; - justify-content: center; - max-width: 800px; - margin: auto; - - .logoContainer { - margin-bottom: 24px; - } - - .logo { - max-width: 360px; - } - - .loginTitle { - font-style: normal; - font-weight: 600; - margin: 0; - - .titleEmphase { - color: $blue-4; - } - } - } - - .loginStats { - background-color: $blue-8; - display: flex; - flex-direction: column; - justify-content: center; - align-items: flex-start; - padding: 16px 24px 24px 24px; - - .statsDivider { - border-top: 1px solid $blue-9; - margin: 12px 0; - } - - .statsTitle { - color: $gray-1; - font-style: normal; - font-weight: 600; - font-size: 20px; - line-height: 24px; - margin-bottom: 0; - } - - > div { - width: 100%; - } - - .dataRelease { - display: flex; - justify-content: space-between; - margin-top: 12px; - } - } - - .bottomLogoContainer { - border-top: 1px solid $gray-4; - padding-top: 24px; - display: flex; - justify-content: space-between; - align-items: baseline; - } -} - -@media (min-width: 1181px) { - .logoContainer { - .logo { - height: auto; - width: 460px; - } - } - - .loginContainer { - .loginTitle { - line-height: 32px; - } - - .loginDescText { - font-size: 16px; - line-height: 24px; - } - } -} - -@media (max-width: 1180px) { - .logoContainer { - text-align: center; - .logo { - height: auto; - width: 300px; - } - } - - - .loginContainer { - .loginTitle { - font-size: 24px; - line-height: 32px; - text-align: center; - } - - .loginDescText { - text-align: center; - width: 100%; - display: block; - } - - .loginButtons { - width: 100%; - justify-content: center; - } - } -} - -@media (max-width: 800px) { - .loginPageContent { - display: flex; - flex-direction: column; - height: 100%; - padding: 40px 16px; - .loginContainer { - margin: unset; - - .loginTitle { - text-align: center; - - .titleEmphase { - color: $blue-4; - } - } - - .loginDescText { - font-size: 16px; - line-height: 24px; - } - } - } -} - -@media (max-width: 600px) { - .logoContainer { - .logo { - height: auto; - width: 250px; - } - } - - .loginButtons { - > div { - width: 100%; - - [type='button'] { - width: 100%; - } - } - } + background-color: $gray-2; } diff --git a/src/views/Login/index.tsx b/src/views/Login/index.tsx index 583bd793..931364a7 100644 --- a/src/views/Login/index.tsx +++ b/src/views/Login/index.tsx @@ -1,91 +1,30 @@ -import intl from 'react-intl-universal'; +import { useEffect } from 'react'; import { useDispatch } from 'react-redux'; -import { useKeycloak } from '@react-keycloak/web'; -import { Button, Divider, Space, Typography } from 'antd'; -import { REDIRECT_URI_KEY } from 'common/constants'; -import FCI from 'components/assets/FCI.svg'; -import FRQS from 'components/assets/FRQS.svg'; -import genome_qc from 'components/assets/genome_qc.svg'; -import CQDGLogoFull from 'components/Icons/CQDGLogoFull'; -import { getTargetLang } from 'components/Layout/Header'; -import DataRelease from 'components/uiKit/DataRelease'; -import useQueryParams from 'hooks/useQueryParams'; -import { globalActions, useLang } from 'store/global'; -import { updateUser } from 'store/user/thunks'; -import { STATIC_ROUTES } from 'utils/routes'; +import { fetchStats } from 'store/global/thunks'; -import styles from './index.module.scss'; +import BottomBanner from './BottomBanner'; +import Cards from './Cards'; +import Footer from './Footer'; +import Studies from './Studies'; +import TopBanner from './TopBanner'; -const { Title, Text } = Typography; +import styles from './index.module.scss'; const Login = () => { - const { keycloak } = useKeycloak(); - const query = useQueryParams(); - const lang = useLang(); const dispatch = useDispatch(); - const handleSignin = async () => { - const url = keycloak.createLoginUrl({ - redirectUri: `${window.location.origin}/${ - query.get(REDIRECT_URI_KEY) || STATIC_ROUTES.STUDIES - }`, - locale: intl.getInitOptions().currentLocale, - }); - window.location.assign(url); - }; - - const handleChangeLang = () => { - const targetLang = getTargetLang(lang); - - dispatch( - updateUser({ - data: { - locale: targetLang, - }, - }), - ); - dispatch(globalActions.changeLang(targetLang)); - }; + useEffect(() => { + dispatch(fetchStats()); + }, [dispatch]); return ( -
- - -
- -
- -
-
- - {intl.get('components.dataRelease.title')} - - - -
- - {intl.get('screen.loginPage.title')} - - {intl.get('screen.loginPage.resume')} - - - - -
-
- -
- - - -
+
+ + + + +
); };