From 15ef377aca3d219c9f3156ec81c466050d67378f Mon Sep 17 00:00:00 2001 From: GaelleA Date: Fri, 17 Nov 2023 11:09:08 -0500 Subject: [PATCH] fix(consequence): SJIP-545 consequence intergenic --- .../FerlabComponent/EntityGeneConsequence.tsx | 35 ++++++----- .../FerlabComponent/Pathogenecity.utils.tsx | 2 +- src/views/VariantEntity/utils/summary.tsx | 35 ++++++----- .../ConsequencesCell/index.module.scss | 40 ------------- .../components/ConsequencesCell/index.tsx | 60 ------------------- .../PageContent/VariantsTable/index.tsx | 11 ++-- 6 files changed, 45 insertions(+), 138 deletions(-) delete mode 100644 src/views/Variants/components/ConsequencesCell/index.module.scss delete mode 100644 src/views/Variants/components/ConsequencesCell/index.tsx diff --git a/src/views/VariantEntity/FerlabComponent/EntityGeneConsequence.tsx b/src/views/VariantEntity/FerlabComponent/EntityGeneConsequence.tsx index 5ba403a4..c1c56eaf 100644 --- a/src/views/VariantEntity/FerlabComponent/EntityGeneConsequence.tsx +++ b/src/views/VariantEntity/FerlabComponent/EntityGeneConsequence.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { NO_GENE } from '@ferlab/ui/core/components/Consequences/Cell'; import { ProColumnType } from '@ferlab/ui/core/components/ProTable/types'; import { IArrangerEdge } from '@ferlab/ui/core/graphql/types'; import { hydrateResults } from '@ferlab/ui/core/graphql/utils'; @@ -38,22 +39,24 @@ export const EntityGeneConsequences = ({ id={id} loading={loading} tables={ - genes?.map((gene) => ({ - columns, - data: hydrateResults(gene?.node?.consequences?.hits?.edges || []), - subTitle: ( - - ), - })) || [] + genes + ?.filter((gene) => gene.node.symbol !== NO_GENE) + .map((gene) => ({ + columns, + data: hydrateResults(gene?.node?.consequences?.hits?.edges || []), + subTitle: ( + + ), + })) || [] } title={title} /> diff --git a/src/views/VariantEntity/FerlabComponent/Pathogenecity.utils.tsx b/src/views/VariantEntity/FerlabComponent/Pathogenecity.utils.tsx index c51514af..60411752 100644 --- a/src/views/VariantEntity/FerlabComponent/Pathogenecity.utils.tsx +++ b/src/views/VariantEntity/FerlabComponent/Pathogenecity.utils.tsx @@ -92,7 +92,7 @@ export const makeUnGroupedDataRows = (genes: IArrangerEdge[]) => { } return genes.map((gene) => { - const rowOrphanet = orphanetFromEdges(gene, gene.node.orphanet.hits.edges || []); + const rowOrphanet = orphanetFromEdges(gene, gene.node.orphanet?.hits?.edges || []); const rowOmim = omimFromEdges(gene, keepOnlyOmimWithId(gene.node.omim?.hits?.edges || [])); const rowCosmic = cosmicFromEdges(gene, gene.node.cosmic?.hits?.edges || []); const rowHpo = hpoFromEdges(gene, gene.node.hpo?.hits?.edges || []); diff --git a/src/views/VariantEntity/utils/summary.tsx b/src/views/VariantEntity/utils/summary.tsx index e12f0b85..debc50e9 100644 --- a/src/views/VariantEntity/utils/summary.tsx +++ b/src/views/VariantEntity/utils/summary.tsx @@ -1,4 +1,5 @@ import intl from 'react-intl-universal'; +import { NO_GENE } from '@ferlab/ui/core/components/Consequences/Cell'; import ExternalLink from '@ferlab/ui/core/components/ExternalLink'; import { IEntitySummaryColumns } from '@ferlab/ui/core/pages/EntityPage/EntitySummary'; import { numberWithCommas, toExponentialNotation } from '@ferlab/ui/core/utils/numberUtils'; @@ -40,22 +41,24 @@ export const getSummaryItems = (variant?: IVariantEntity): IEntitySummaryColumns }, { label: intl.get('screen.variants.summary.genes'), - value: variant?.genes?.hits?.edges?.length - ? variant.genes.hits.edges.map((gene) => { - if (!gene?.node?.symbol) { - return; - } - return ( - - {gene.node.symbol} - - ); - }) - : TABLE_EMPTY_PLACE_HOLDER, + value: + variant?.genes?.hits?.edges?.length && + variant.genes.hits.edges.filter((gene) => gene?.node?.symbol !== NO_GENE).length + ? variant.genes.hits.edges.map((gene) => { + if (!gene?.node?.symbol) { + return; + } + return ( + + {gene.node.symbol} + + ); + }) + : TABLE_EMPTY_PLACE_HOLDER, }, { label: intl.get('screen.variants.summary.omim'), diff --git a/src/views/Variants/components/ConsequencesCell/index.module.scss b/src/views/Variants/components/ConsequencesCell/index.module.scss deleted file mode 100644 index 253eb046..00000000 --- a/src/views/Variants/components/ConsequencesCell/index.module.scss +++ /dev/null @@ -1,40 +0,0 @@ -@import 'src/style/themes/include/colors'; - -.stackLayout { - min-width: 375px; -} - -.consequenceUl { - list-style: none; - padding: 0; -} - -.highImpact { - fill: $red-5; -} - -.lowImpact { - fill: $green-6; -} - -.moderateImpact { - fill: $orange-5; -} - -.modifierImpact { - fill: $gray-6; -} - -.detail { - padding-right: 12px; -} - -.bullet { - margin-right: 8px; - min-width: 10px; - min-height: 10px; -} - -.symbol { - padding-right: 8px; -} diff --git a/src/views/Variants/components/ConsequencesCell/index.tsx b/src/views/Variants/components/ConsequencesCell/index.tsx deleted file mode 100644 index ed0504b3..00000000 --- a/src/views/Variants/components/ConsequencesCell/index.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import ExternalLink from '@ferlab/ui/core/components/ExternalLink'; -import { IArrangerEdge } from '@ferlab/ui/core/graphql/types'; -import StackLayout from '@ferlab/ui/core/layout/StackLayout'; -import { removeUnderscoreAndCapitalize } from '@ferlab/ui/core/utils/stringUtils'; -import { IConsequenceEntity, Impact } from 'graphql/variants/models'; - -import HighBadgeIcon from 'components/Icons/VariantBadgeIcons/HighBadgeIcon'; -import LowBadgeIcon from 'components/Icons/VariantBadgeIcons/LowBadgeIcon'; -import ModerateBadgeIcon from 'components/Icons/VariantBadgeIcons/ModerateBadgeIcon'; -import ModifierBadgeIcon from 'components/Icons/VariantBadgeIcons/ModifierBadgeIcon'; -import { toKebabCase } from 'utils/helper'; - -import style from './index.module.scss'; - -const impactToColorClassName = Object.freeze({ - [Impact.High]: , - [Impact.Low]: , - [Impact.Moderate]: , - [Impact.Modifier]: , -}); - -const pickImpactBadge = (impact: Impact) => impactToColorClassName[impact]; - -const ConsequencesCell = ({ - consequences, - symbol, -}: { - consequences: IArrangerEdge[]; - symbol: string; -}) => { - const pickedEdge = consequences.find((c) => c.node.picked); - if (!pickedEdge) { - //must never happen - return null; - } - - const picked = pickedEdge?.node; - if (!picked?.consequence) { - return null; - } - - return ( - - {pickImpactBadge(picked.vep_impact)} - - {removeUnderscoreAndCapitalize(picked.consequence[0])} - - {symbol && ( - - - {symbol} - - - )} - {picked.hgvsp && {picked.hgvsp.split(':')[1]}} - - ); -}; - -export default ConsequencesCell; diff --git a/src/views/Variants/components/PageContent/VariantsTable/index.tsx b/src/views/Variants/components/PageContent/VariantsTable/index.tsx index 6a67ec6c..5fa75e85 100644 --- a/src/views/Variants/components/PageContent/VariantsTable/index.tsx +++ b/src/views/Variants/components/PageContent/VariantsTable/index.tsx @@ -1,9 +1,8 @@ -// variant table - import { useEffect, useState } from 'react'; import intl from 'react-intl-universal'; import { useDispatch } from 'react-redux'; import { Link } from 'react-router-dom'; +import ConsequencesCell from '@ferlab/ui/core/components/Consequences/Cell'; import ExternalLink from '@ferlab/ui/core/components/ExternalLink'; import ProTable from '@ferlab/ui/core/components/ProTable'; import { PaginationViewPerQuery } from '@ferlab/ui/core/components/ProTable/Pagination/constants'; @@ -47,8 +46,6 @@ import { STATIC_ROUTES } from 'utils/routes'; import { truncateString } from 'utils/string'; import { getProTableDictionary } from 'utils/translation'; -import ConsequencesCell from '../../../components/ConsequencesCell'; - import styles from './index.module.scss'; interface OwnProps { @@ -122,7 +119,11 @@ const defaultColumns: ProColumnType[] = [ const consequences = geneWithPickedConsequence.consequences?.hits?.edges; return ( - + ); }, },