diff --git a/packages/datagateway-dataview/public/res/default.json b/packages/datagateway-dataview/public/res/default.json index a6745eb4e..58159296e 100644 --- a/packages/datagateway-dataview/public/res/default.json +++ b/packages/datagateway-dataview/public/res/default.json @@ -99,6 +99,7 @@ "techniques": "Techniques", "samples": "Samples", "subjects": "Subjects", + "funders": "Funders", "publisher": "Publisher", "type": "Type", "license": "License", diff --git a/packages/datagateway-dataview/src/views/landing/dls/dlsDataPublicationLanding.component.test.tsx b/packages/datagateway-dataview/src/views/landing/dls/dlsDataPublicationLanding.component.test.tsx index 2e426a9de..58248f76e 100644 --- a/packages/datagateway-dataview/src/views/landing/dls/dlsDataPublicationLanding.component.test.tsx +++ b/packages/datagateway-dataview/src/views/landing/dls/dlsDataPublicationLanding.component.test.tsx @@ -201,7 +201,26 @@ describe('DLS Data Publication Landing page', () => { }, rightsList: [], geoLocations: [], - fundingReferences: [], + fundingReferences: [ + { + funderName: 'funder 1', + funderIdentifier: null, + funderIdentifierType: null, + schemeUri: null, + awardUri: null, + awardTitle: null, + awardNumber: '', + }, + { + funderName: 'funder 2', + funderIdentifier: null, + funderIdentifierType: null, + schemeUri: null, + awardUri: null, + awardTitle: null, + awardNumber: '', + }, + ], url: '', identifiers: [], creators: [], @@ -416,6 +435,8 @@ describe('DLS Data Publication Landing page', () => { expect(screen.getByText('sample 1, sample 2')).toBeInTheDocument(); + expect(screen.getByText('funder 1, funder 2')); + // two citation formatters expect( screen.getByText( @@ -436,6 +457,7 @@ describe('DLS Data Publication Landing page', () => { initialData.publicationDate = undefined; initialData.type = undefined; initialDataCiteData.attributes.subjects = []; + initialDataCiteData.attributes.fundingReferences = []; renderComponent(); // displays doi + link correctly @@ -453,6 +475,7 @@ describe('DLS Data Publication Landing page', () => { ).toBeNull(); expect(screen.queryByText('datapublications.details.subjects')).toBeNull(); expect(screen.queryByText('datapublications.details.samples')).toBeNull(); + expect(screen.queryByText('datapublications.details.funders')).toBeNull(); }); it('renders correctly whilst loading', async () => { diff --git a/packages/datagateway-dataview/src/views/landing/dls/dlsDataPublicationLanding.component.tsx b/packages/datagateway-dataview/src/views/landing/dls/dlsDataPublicationLanding.component.tsx index cffb8e1f5..154a671bb 100644 --- a/packages/datagateway-dataview/src/views/landing/dls/dlsDataPublicationLanding.component.tsx +++ b/packages/datagateway-dataview/src/views/landing/dls/dlsDataPublicationLanding.component.tsx @@ -178,6 +178,8 @@ const LandingPage = (props: LandingPageProps): React.ReactElement => { ) ?? [[], [], []], [dataciteData?.attributes.subjects] ); + const funders = + dataciteData?.attributes.fundingReferences.map((fr) => fr.funderName) ?? []; const isVersionDOI = data?.relatedItems?.some( (relatedItem) => relatedItem.relationType === DOIRelationType.IsVersionOf @@ -684,6 +686,17 @@ const LandingPage = (props: LandingPageProps): React.ReactElement => { {subjects.join(', ')} )} + {funders.length > 0 && ( +