diff --git a/frontend/packages/data-portal/app/components/BrowseData/DatasetTable.tsx b/frontend/packages/data-portal/app/components/BrowseData/DatasetTable.tsx index 2ba029736..5b6f05b22 100644 --- a/frontend/packages/data-portal/app/components/BrowseData/DatasetTable.tsx +++ b/frontend/packages/data-portal/app/components/BrowseData/DatasetTable.tsx @@ -88,8 +88,7 @@ export function DatasetTable() { > diff --git a/frontend/packages/data-portal/app/components/Dataset/DatasetHeader.tsx b/frontend/packages/data-portal/app/components/Dataset/DatasetHeader.tsx index ae985ebfb..e38a1b8f9 100644 --- a/frontend/packages/data-portal/app/components/Dataset/DatasetHeader.tsx +++ b/frontend/packages/data-portal/app/components/Dataset/DatasetHeader.tsx @@ -46,7 +46,7 @@ export function DatasetHeader() {
diff --git a/frontend/packages/data-portal/app/components/Dataset/RunsTable.tsx b/frontend/packages/data-portal/app/components/Dataset/RunsTable.tsx index deda2ecc2..03a6ffc23 100644 --- a/frontend/packages/data-portal/app/components/Dataset/RunsTable.tsx +++ b/frontend/packages/data-portal/app/components/Dataset/RunsTable.tsx @@ -51,8 +51,10 @@ export function RunsTable() { > diff --git a/frontend/packages/data-portal/app/components/KeyPhoto.tsx b/frontend/packages/data-portal/app/components/KeyPhoto.tsx index a59bea569..2358182cd 100644 --- a/frontend/packages/data-portal/app/components/KeyPhoto.tsx +++ b/frontend/packages/data-portal/app/components/KeyPhoto.tsx @@ -1,7 +1,7 @@ import Skeleton from '@mui/material/Skeleton' import { match, P } from 'ts-pattern' -import { i18n } from 'app/i18n' +import { KeyPhotoFallbackIcon } from 'app/components/icons' import { cns } from 'app/utils/cns' export function KeyPhoto({ @@ -17,7 +17,7 @@ export function KeyPhoto({
) .with([P.string, false], () => ( - {`key + {`key )) .otherwise(() => ( -

{i18n.keyPhoto}

+ ))}
) diff --git a/frontend/packages/data-portal/app/components/Run/RunHeader.tsx b/frontend/packages/data-portal/app/components/Run/RunHeader.tsx index 98666ef33..c7299d6f2 100644 --- a/frontend/packages/data-portal/app/components/Run/RunHeader.tsx +++ b/frontend/packages/data-portal/app/components/Run/RunHeader.tsx @@ -18,7 +18,8 @@ export function RunHeader() { const { t } = useI18n() const tiltSeries = run.tiltseries[0] - const keyPhotoURL = 'https://loremflickr.com/400/400/cat' + const keyPhotoURL = + run.tomogram_voxel_spacings[0]?.tomograms[0]?.key_photo_url const { openTomogramDownloadModal } = useDownloadModalQueryParamState() @@ -83,10 +84,14 @@ export function RunHeader() { title={run.name} >
-
- - - +
+ {keyPhotoURL ? ( + + + + ) : ( + + )}
diff --git a/frontend/packages/data-portal/app/components/icons/KeyPhotoFallbackIcon.tsx b/frontend/packages/data-portal/app/components/icons/KeyPhotoFallbackIcon.tsx new file mode 100644 index 000000000..5658d7e02 --- /dev/null +++ b/frontend/packages/data-portal/app/components/icons/KeyPhotoFallbackIcon.tsx @@ -0,0 +1,21 @@ +import { IconProps } from './icon.types' + +export function KeyPhotoFallbackIcon(props: IconProps) { + return ( + + + + ) +} diff --git a/frontend/packages/data-portal/app/components/icons/index.ts b/frontend/packages/data-portal/app/components/icons/index.ts index b843e02ef..c8ac10c64 100644 --- a/frontend/packages/data-portal/app/components/icons/index.ts +++ b/frontend/packages/data-portal/app/components/icons/index.ts @@ -3,3 +3,4 @@ export * from './CZIIcon' export * from './EnvelopeIcon' export * from './icon.types' export * from './ImageInstituteIcon' +export * from './KeyPhotoFallbackIcon' diff --git a/frontend/packages/data-portal/app/routes/browse-data.datasets.tsx b/frontend/packages/data-portal/app/routes/browse-data.datasets.tsx index e2355014d..7cbc215b1 100644 --- a/frontend/packages/data-portal/app/routes/browse-data.datasets.tsx +++ b/frontend/packages/data-portal/app/routes/browse-data.datasets.tsx @@ -40,6 +40,7 @@ const GET_DATASETS_DATA_QUERY = gql(` title organism_name dataset_publications + key_photo_thumbnail_url authors { name diff --git a/frontend/packages/data-portal/app/routes/datasets.$id.tsx b/frontend/packages/data-portal/app/routes/datasets.$id.tsx index f98401d2c..111f03a8a 100644 --- a/frontend/packages/data-portal/app/routes/datasets.$id.tsx +++ b/frontend/packages/data-portal/app/routes/datasets.$id.tsx @@ -17,6 +17,9 @@ const GET_DATASET_BY_ID = gql(` datasets(where: { id: { _eq: $id } }) { s3_prefix + # key photo + key_photo_url + # Dataset dates last_modified_date release_date @@ -88,6 +91,12 @@ const GET_DATASET_BY_ID = gql(` } } } + + tomogram_voxel_spacings(limit: 1) { + tomograms(limit: 1) { + key_photo_thumbnail_url + } + } } runs_aggregate { diff --git a/frontend/packages/data-portal/app/routes/runs.$id.tsx b/frontend/packages/data-portal/app/routes/runs.$id.tsx index 30043e219..81f7ef541 100644 --- a/frontend/packages/data-portal/app/routes/runs.$id.tsx +++ b/frontend/packages/data-portal/app/routes/runs.$id.tsx @@ -94,6 +94,7 @@ const GET_RUN_BY_ID_QUERY = gql(` tomograms(limit: 1) { ctf_corrected fiducial_alignment_status + key_photo_url name processing processing_software