Skip to content

Commit 9997dd9

Browse files
authored
feat: Changing the way the breadcrumb is built to accomodate variants (#1790)
1 parent 549152c commit 9997dd9

File tree

1 file changed

+66
-38
lines changed

1 file changed

+66
-38
lines changed

frontend/packages/data-portal/app/components/Breadcrumbs.tsx

Lines changed: 66 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,71 @@ export function Breadcrumbs({
105105

106106
const plausible = usePlausible()
107107

108+
const buildDepositionBreadcrumb = () => {
109+
return (
110+
<div className="flex flex-row gap-sds-s text-sds-body-s-400-wide leading-sds-body-s text-light-sds-color-primitive-gray-900 items-center whitespace-nowrap content-start">
111+
<Breadcrumb
112+
text={t('allDepositions')}
113+
link={browseAllLink}
114+
className="shrink-0"
115+
type={BreadcrumbType.AllDepositions}
116+
/>
117+
{chevronIcon}
118+
<Breadcrumb text={t('deposition')} />
119+
</div>
120+
)
121+
}
122+
123+
const buildRunBreadcrumb = () => {
124+
return (
125+
<div className="flex flex-row gap-sds-s text-sds-body-s-400-wide leading-sds-body-s text-light-sds-color-primitive-gray-900 items-center whitespace-nowrap content-start">
126+
<Breadcrumb
127+
text={t('allDatasets')}
128+
link={browseAllLink}
129+
className="shrink-0"
130+
type={BreadcrumbType.AllDatasets}
131+
/>
132+
{chevronIcon}
133+
<Breadcrumb
134+
text={`${t('dataset')}: ${data.title}`}
135+
link={singleDatasetLink}
136+
className="overflow-ellipsis overflow-hidden flex-initial"
137+
type={BreadcrumbType.SingleDataset}
138+
datasetId={data.id}
139+
/>
140+
{chevronIcon}
141+
<Breadcrumb text={t('run')} className="shrink-0" />
142+
</div>
143+
)
144+
}
145+
146+
const buildDatasetBreadcrumb = () => {
147+
return (
148+
<div className="flex flex-row gap-sds-s text-sds-body-s-400-wide leading-sds-body-s text-light-sds-color-primitive-gray-900 items-center whitespace-nowrap content-start">
149+
<Breadcrumb
150+
text={t('allDatasets')}
151+
link={browseAllLink}
152+
className="shrink-0"
153+
type={BreadcrumbType.AllDatasets}
154+
/>
155+
{chevronIcon}
156+
<Breadcrumb
157+
text={`${t('dataset')}`}
158+
link={singleDatasetLink}
159+
className="overflow-ellipsis overflow-hidden flex-initial"
160+
type={BreadcrumbType.SingleDataset}
161+
datasetId={data.id}
162+
/>
163+
</div>
164+
)
165+
}
166+
167+
const breadCrumbVariations = {
168+
dataset: buildDatasetBreadcrumb,
169+
deposition: buildDepositionBreadcrumb,
170+
run: buildRunBreadcrumb,
171+
}
172+
108173
return (
109174
<div
110175
className="flex flex-col flex-auto gap-1"
@@ -127,44 +192,7 @@ export function Breadcrumbs({
127192
{t('returnToDeposition')}
128193
</Link>
129194
)}
130-
131-
<div className="flex flex-row gap-sds-s text-sds-body-s-400-wide leading-sds-body-s text-light-sds-color-primitive-gray-900 items-center whitespace-nowrap content-start">
132-
<Breadcrumb
133-
text={t(variant === 'deposition' ? 'allDepositions' : 'allDatasets')}
134-
link={browseAllLink}
135-
className="shrink-0"
136-
type={
137-
variant === 'deposition'
138-
? BreadcrumbType.AllDepositions
139-
: BreadcrumbType.AllDatasets
140-
}
141-
/>
142-
143-
{chevronIcon}
144-
145-
{variant === 'deposition' ? (
146-
<Breadcrumb text={t('deposition')} />
147-
) : (
148-
<Breadcrumb
149-
text={
150-
variant === 'dataset'
151-
? `${t('dataset')}`
152-
: `${t('dataset')}: ${data.title}`
153-
}
154-
link={singleDatasetLink}
155-
className="overflow-ellipsis overflow-hidden flex-initial"
156-
type={BreadcrumbType.SingleDataset}
157-
datasetId={data.id}
158-
/>
159-
)}
160-
161-
{variant === 'run' && (
162-
<>
163-
{chevronIcon}
164-
<Breadcrumb text={t('run')} className="shrink-0" />
165-
</>
166-
)}
167-
</div>
195+
{breadCrumbVariations[variant]()}
168196
</div>
169197
)
170198
}

0 commit comments

Comments
 (0)