From eaa96578affa5dac9ff5ed4b7a67cf528e70c4c1 Mon Sep 17 00:00:00 2001 From: Stephanie Smith Date: Mon, 29 Jul 2024 16:46:02 -0700 Subject: [PATCH] fix: news detail page (#520) * fixing BlockImageCarousel bug, adding fallback image source for fancybox * fixing inline hero image on edu news detail pages * fixing alignment of BlockInlineImage * fixing publication date on edu news template * modifying DetailHeadline component to handle single and multiple authors * fixing some bugs when there is no author data * fixing accessibility issue -- temp workaround * bumping explorer-1/vue version --- packages/vue/package.json | 2 +- .../BlockImage/BlockImageFullBleed.vue | 2 +- .../BlockImage/BlockImageStandard.vue | 2 +- .../BlockImageCarousel.stories.js | 2 +- .../BlockImageCarousel/BlockImageCarousel.vue | 2 +- .../BlockImageCarouselItem.vue | 2 +- .../BlockImageGallery/BlockImageGallery.vue | 2 +- .../BlockInlineImage/BlockInlineImage.vue | 80 ++++++++++--------- .../BlockStreamfield/BlockStreamfield.vue | 1 - .../DetailHeadline/DetailHeadline.stories.js | 20 +++++ .../DetailHeadline/DetailHeadline.vue | 57 ++++++++++--- .../PageImageDetail.stories.js | 6 +- .../PageImageDetail/PageImageDetail.vue | 2 +- .../PageEduNewsDetail.stories.js | 10 ++- .../PageEduNewsDetail/PageEduNewsDetail.vue | 29 ++++--- .../PageInfographicDetail.vue | 2 +- 16 files changed, 145 insertions(+), 76 deletions(-) diff --git a/packages/vue/package.json b/packages/vue/package.json index 8e56a964..468f0a64 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@explorer-1/vue", - "version": "0.1.8", + "version": "0.1.9", "private": false, "publishConfig": { "access": "public" diff --git a/packages/vue/src/components/BlockImage/BlockImageFullBleed.vue b/packages/vue/src/components/BlockImage/BlockImageFullBleed.vue index d2a66e20..2f2bd92e 100644 --- a/packages/vue/src/components/BlockImage/BlockImageFullBleed.vue +++ b/packages/vue/src/components/BlockImage/BlockImageFullBleed.vue @@ -84,7 +84,7 @@ export default defineComponent({
[] | undefined { - const navArray = this.items + const navArray = this.items ? this.items.map((item) => item) : undefined if (navArray && this.hasCover) { navArray.push({ cover: 'hasCover' }) return navArray diff --git a/packages/vue/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue b/packages/vue/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue index 004309b1..de149115 100644 --- a/packages/vue/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue +++ b/packages/vue/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue @@ -1,7 +1,7 @@ diff --git a/packages/vue/src/components/BlockStreamfield/BlockStreamfield.vue b/packages/vue/src/components/BlockStreamfield/BlockStreamfield.vue index 53d390b5..f9b8fe10 100644 --- a/packages/vue/src/components/BlockStreamfield/BlockStreamfield.vue +++ b/packages/vue/src/components/BlockStreamfield/BlockStreamfield.vue @@ -28,7 +28,6 @@ diff --git a/packages/vue/src/components/DetailHeadline/DetailHeadline.stories.js b/packages/vue/src/components/DetailHeadline/DetailHeadline.stories.js index 45a27ac1..8e15a8e9 100644 --- a/packages/vue/src/components/DetailHeadline/DetailHeadline.stories.js +++ b/packages/vue/src/components/DetailHeadline/DetailHeadline.stories.js @@ -30,6 +30,26 @@ export const BaseStory = { args: DetailHeadlineData } +export const MultipleAuthors = { + args: { + ...DetailHeadlineData, + author: [ + { + author: { + name: 'Author Name', + organization: 'Organization' + } + }, + { + author: { + name: 'Another Author', + organization: 'Organization' + } + } + ] + } +} + export const NoAuthor = { args: { title: "NASA's Ingenuity Mars Helicopter Recharges Its Batteries in Flight", diff --git a/packages/vue/src/components/DetailHeadline/DetailHeadline.vue b/packages/vue/src/components/DetailHeadline/DetailHeadline.vue index f1e2f122..767c8ce6 100644 --- a/packages/vue/src/components/DetailHeadline/DetailHeadline.vue +++ b/packages/vue/src/components/DetailHeadline/DetailHeadline.vue @@ -46,18 +46,30 @@ >{{ title }}
Written by - {{ author.name }} + , + required: false, + default: undefined }, publicationDate: { type: String, - required: false + required: false, + default: undefined }, publicationTime: { type: String, - required: false + required: false, + default: undefined }, topics: { type: Array as PropType, - required: false + required: false, + default: undefined }, // if topics array isn't available label: { type: String, - required: false + required: false, + default: undefined }, labelLink: { type: String, - required: false + required: false, + default: undefined }, schema: { type: Boolean, @@ -138,6 +157,20 @@ export default defineComponent({ const currentTime = this.publicationTime || '00:00:00' const returnDate = new Date(this.publicationDate + ' ' + currentTime) return returnDate.toISOString() + }, + authors(): { name: string; organization: string }[] | undefined { + let authors: AuthorObject[] | undefined = undefined + if (this.author && this.author.constructor === Array) { + authors = [] + // @ts-expect-error we know it's an array at this point + this.author.forEach((author: { author: AuthorObject }) => { + // @ts-expect-error authors array is defined above + authors.push(author.author) + }) + } else if (this.author) { + authors = [this.author] as AuthorObject[] + } + return authors } } }) diff --git a/packages/vue/src/templates/PageImageDetail/PageImageDetail.stories.js b/packages/vue/src/templates/PageImageDetail/PageImageDetail.stories.js index e870de4f..a841990d 100644 --- a/packages/vue/src/templates/PageImageDetail/PageImageDetail.stories.js +++ b/packages/vue/src/templates/PageImageDetail/PageImageDetail.stories.js @@ -58,7 +58,11 @@ export const ImageDetailPageData = { } ], keepExploringInstrument: BlockLinkTileCarouselData, - keepExploringMission: BlockLinkTileCarouselData, + keepExploringMission: [ + BlockLinkTileCarouselData[0], + BlockLinkTileCarouselData[1], + BlockLinkTileCarouselData[2] + ], keepExploringTarget: BlockLinkTileCarouselData, label: 'Image', piaNumber: 'PIA23356', diff --git a/packages/vue/src/templates/PageImageDetail/PageImageDetail.vue b/packages/vue/src/templates/PageImageDetail/PageImageDetail.vue index 092089bc..2fe121b3 100755 --- a/packages/vue/src/templates/PageImageDetail/PageImageDetail.vue +++ b/packages/vue/src/templates/PageImageDetail/PageImageDetail.vue @@ -40,7 +40,7 @@ /> { }) const dateTimeArray = computed(() => { - return props.data.firstPublishedAt.split('T') + return props.data.publicationDate.split(' ') })