@@ -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