Skip to content

Commit

Permalink
add assays column hidden by default
Browse files Browse the repository at this point in the history
  • Loading branch information
onursumer committed Jan 15, 2025
1 parent 0387a27 commit d8a14be
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 6 deletions.
2 changes: 2 additions & 0 deletions packages/data-portal-explore/src/components/ExploreTabs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,8 @@ export const ExploreTabs: React.FunctionComponent<IExploreTabsProps> = observer(
filteredParticipants={props.filteredCases}
biospecimens={props.samples}
filteredBiospecimens={props.filteredSamples}
files={props.files}
filteredFiles={props.filteredFiles}
/>
</div>
)}
Expand Down
46 changes: 40 additions & 6 deletions packages/data-portal-explore/src/components/PublicationTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,25 +28,41 @@ interface IPublicationTableProps {
filteredParticipants: Entity[];
biospecimens: Entity[];
filteredBiospecimens: Entity[];
files: Entity[];
filteredFiles: Entity[];
}

function getCounts(
manifest: PublicationManifest,
filteredEntities: Entity[],
unfilteredEntities: Entity[]
unfilteredEntities: Entity[],
countFn: (
manifest: PublicationManifest,
entities: Entity[]
) => number = getEntityCount
) {
const filteredCount = getEntityCount(manifest, filteredEntities);
const filteredCount = countFn(manifest, filteredEntities);
const unfilteredCount =
filteredEntities.length === unfilteredEntities.length
? filteredCount
: getEntityCount(manifest, unfilteredEntities);
: countFn(manifest, unfilteredEntities);

return {
filteredCount,
unfilteredCount,
};
}

function getAssayCount(manifest: PublicationManifest, files: Entity[]) {
const uid = getPublicationUid(manifest);

return _(files)
.filter((f) => f.publicationIds?.includes(uid) || false)
.map((f) => f.assayName)
.uniq()
.value().length;
}

function getCountString(filteredCount: number, unfilteredCount: number) {
const filteredCountString =
filteredCount !== unfilteredCount ? `${filteredCount}/` : '';
Expand All @@ -55,9 +71,9 @@ function getCountString(filteredCount: number, unfilteredCount: number) {
}

function getEntityCount(manifest: PublicationManifest, entities: Entity[]) {
return entities.filter((p) =>
p.publicationIds?.includes(getPublicationUid(manifest))
).length;
const uid = getPublicationUid(manifest);

return entities.filter((p) => p.publicationIds?.includes(uid)).length;
}

export const PublicationTable: React.FunctionComponent<IPublicationTableProps> = (
Expand Down Expand Up @@ -195,6 +211,24 @@ export const PublicationTable: React.FunctionComponent<IPublicationTableProps> =
wrap: true,
sortable: true,
},
{
name: 'Assays',
selector: (manifest: PublicationManifest) =>
getAssayCount(manifest, props.filteredFiles),
cell: (manifest: PublicationManifest) => {
const { filteredCount, unfilteredCount } = getCounts(
manifest,
props.filteredFiles,
props.files,
getAssayCount
);
return getCountString(filteredCount, unfilteredCount);
},
grow: 0.5,
wrap: true,
sortable: true,
omit: true,
},
{
name: 'Content Type',
selector: (manifest: PublicationManifest) =>
Expand Down

0 comments on commit d8a14be

Please sign in to comment.