From 371ac841d2136ab8c2c623d60e13bf64e1704d6a Mon Sep 17 00:00:00 2001
From: Jack Reed <phillipjreed@gmail.com>
Date: Wed, 1 Jul 2020 10:32:43 -0600
Subject: [PATCH] Support multivalued metadata fields fixes #2591

---
 __tests__/src/components/LabelValueMetadata.test.js | 8 ++++----
 __tests__/src/selectors/manifests.test.js           | 4 ++--
 src/components/LabelValueMetadata.js                | 2 +-
 src/state/selectors/manifests.js                    | 2 +-
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/__tests__/src/components/LabelValueMetadata.test.js b/__tests__/src/components/LabelValueMetadata.test.js
index 0e80dbde5..23c279ff1 100644
--- a/__tests__/src/components/LabelValueMetadata.test.js
+++ b/__tests__/src/components/LabelValueMetadata.test.js
@@ -13,11 +13,11 @@ describe('LabelValueMetadata', () => {
       labelValuePair = [
         {
           label: 'Label 1',
-          value: 'Value 1',
+          values: ['Value 1'],
         },
         {
           label: 'Label 2',
-          value: 'Value 2',
+          values: ['Value 2'],
         },
       ];
       wrapper = shallow(
@@ -67,11 +67,11 @@ describe('LabelValueMetadata', () => {
     beforeEach(() => {
       labelValuePair = [
         {
-          value: 'Value 1',
+          values: ['Value 1'],
         },
         {
           label: 'Label 2',
-          value: 'Value 2',
+          values: ['Value 2'],
         },
       ];
       wrapper = shallow(
diff --git a/__tests__/src/selectors/manifests.test.js b/__tests__/src/selectors/manifests.test.js
index a459e3c8a..17d9db6c0 100644
--- a/__tests__/src/selectors/manifests.test.js
+++ b/__tests__/src/selectors/manifests.test.js
@@ -247,7 +247,7 @@ describe('getDestructuredMetadata', () => {
     const received = getDestructuredMetadata(iiifResource);
     const expected = [{
       label: 'date',
-      value: 'some date',
+      values: ['some date'],
     }];
 
     expect(received).toEqual(expected);
@@ -267,7 +267,7 @@ describe('getManifestMetadata', () => {
     const received = getManifestMetadata(state, { manifestId: 'x' });
     const expected = [{
       label: 'date',
-      value: 'some date',
+      values: ['some date'],
     }];
 
     expect(received).toEqual(expected);
diff --git a/src/components/LabelValueMetadata.js b/src/components/LabelValueMetadata.js
index d89e50352..a003b9a40 100644
--- a/src/components/LabelValueMetadata.js
+++ b/src/components/LabelValueMetadata.js
@@ -29,7 +29,7 @@ export class LabelValueMetadata extends Component {
         {labelValuePairs.reduce((acc, labelValuePair, i) => acc.concat([
           <Typography component="dt" key={`label-${i}`} variant="subtitle2">{labelValuePair.label || defaultLabel}</Typography>,
           <Typography style={{ marginBottom: '.5em', marginLeft: '0px' }} component="dd" key={`value-${i}`} variant="body1">
-            <SanitizedHtml htmlString={labelValuePair.value} ruleSet="iiif" />
+            <SanitizedHtml htmlString={labelValuePair.values.join(', ')} ruleSet="iiif" />
           </Typography>,
         ]), [])}
       </dl>
diff --git a/src/state/selectors/manifests.js b/src/state/selectors/manifests.js
index 8b8d02bce..e54d14077 100644
--- a/src/state/selectors/manifests.js
+++ b/src/state/selectors/manifests.js
@@ -288,7 +288,7 @@ export function getDestructuredMetadata(iiifResource) {
   return (iiifResource
     && iiifResource.getMetadata().map(labelValuePair => ({
       label: labelValuePair.getLabel(),
-      value: labelValuePair.getValue(),
+      values: labelValuePair.getValues(),
     }))
   );
 }
-- 
GitLab