Skip to content

Commit

Permalink
fixing minor type errors, adding word 'Grades' to rangeifyGrades method
Browse files Browse the repository at this point in the history
  • Loading branch information
stephiescastle committed Aug 13, 2024
1 parent bbe7cf0 commit ba10b40
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ export default defineComponent({
// to allow for various data shapes and sources
// use-case: content pages provide this.data.page with non-page siblings (i.e. external link cards)
// use-case: search and listing pages pass individual props
theItem(): Card | EventCardObject | undefined {
theItem(): Card | EventCardObject | EduResourceCardObject | undefined {
if ((this.data as Card)?.page) {
return (this.data as Card).page
} else if (this.data) {
Expand Down
4 changes: 2 additions & 2 deletions packages/vue/src/components/CalendarChip/CalendarChip.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import { mixinFormatSplitEventDates } from './../../utils/mixins'
const themeStore = useThemeStore()
interface CalendarChipProps {
startDate: string
startDate?: string
endDate?: string
ongoing: boolean
ongoing?: boolean
}
// define props
Expand Down
2 changes: 1 addition & 1 deletion packages/vue/src/interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export interface ElasticSearchPage {
topic: string
image: string | any
date: string
startDate: string
startDate: string | null | undefined
endDate: string
startTime: string
endTime: string
Expand Down
43 changes: 15 additions & 28 deletions packages/vue/src/templates/PageEventDetail/PageEventDetail.vue
Original file line number Diff line number Diff line change
Expand Up @@ -213,32 +213,25 @@

<!-- Related Events -->
<div
v-if="data.moreEvents && data.moreEvents.length > 0"
v-if="moreEvents?.length > 0"
class="my-12 lg:my-16 print:!px-4"
>
<BlockLinkCarousel
item-type="cards"
class="print:!px-4"
heading="MORE EVENTS"
:items="data.moreEvents"
:items="moreEvents"
/>
</div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
import {
mixinFormatEventDates,
mixinFormatEventTimeInHoursAndMinutes,
mixinFormatSplitEventDates
} from '../../utils/mixins'
import type { EventCardObject } from './../../interfaces'
import LayoutHelper from './../../components/LayoutHelper/LayoutHelper.vue'
import BaseHeading from './../../components/BaseHeading/BaseHeading.vue'
import ShareButtons from './../../components/ShareButtons/ShareButtons.vue'
import EventDetailHero from './../../components/EventDetailHero/EventDetailHero.vue'
import IconCalendar from './../../components/Icons/IconCalendar.vue'
import IconLocation from './../../components/Icons/IconLocation.vue'
import IconTime from './../../components/Icons/IconTime.vue'
import BaseLink from './../../components/BaseLink/BaseLink.vue'
import BaseButton from './../../components/BaseButton/BaseButton.vue'
import CalendarButton from './../../components/CalendarButton/CalendarButton.vue'
Expand All @@ -258,9 +251,6 @@ export default defineComponent({
BaseHeading,
ShareButtons,
EventDetailHero,
IconCalendar,
IconLocation,
IconTime,
BaseLink,
BaseButton,
CalendarButton,
Expand All @@ -283,22 +273,19 @@ export default defineComponent({
}
},
computed: {
displayTime(): string {
return this.data
? mixinFormatEventTimeInHoursAndMinutes(
this.data.startDatetime,
this.data.endDatetime,
this.data.endTime
)
: ''
},
formattedEventDates(): string {
return this.data ? mixinFormatEventDates(this.data.startDatetime, this.data.endDatetime) : ''
},
formattedSplitEventDates() {
return this.data
? mixinFormatSplitEventDates(this.data.startDatetime, this.data.endDatetime)
moreEvents(): EventCardObject[] {
// mimic the data shape of a PageChooserBlock array
const mapped = this.data?.moreEvents
? this.data.moreEvents.map((event: EventCardObject) => {
return {
page: {
__typename: 'EventPage',
...event
}
}
})
: undefined
return mapped
}
}
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
>
<MetadataEvent :event="data" />

<div class="PageEduEventDetail__Buttons">
<div class="PageEduEventDetail__Buttons max-w-[17rem]">
<BaseButton
v-if="
data.registerLink &&
Expand Down Expand Up @@ -249,14 +249,14 @@

<!-- Related Events -->
<div
v-if="data.relatedEvents?.length"
v-if="relatedEvents?.length"
class="my-12 lg:my-16 px-0"
>
<BlockLinkCarousel
item-type="cards"
size="h3"
heading="Related Events"
:items="data.relatedEvents"
:items="relatedEvents"
/>
</div>
<!-- Related Content -->
Expand All @@ -275,6 +275,7 @@
</template>
<script lang="ts">
import { defineComponent } from 'vue'
import type { EventCardObject } from './../../../interfaces'
import LayoutHelper from './../../../components/LayoutHelper/LayoutHelper.vue'
import BaseHeading from './../../../components/BaseHeading/BaseHeading.vue'
import BasePill from './../../../components/BasePill/BasePill.vue'
Expand Down Expand Up @@ -335,6 +336,18 @@ export default defineComponent({
},
heroIsInline(): boolean {
return this.data?.heroPosition === 'inline'
},
relatedEvents(): EventCardObject[] {
// mimic the data shape of a PageChooserBlock array
const mapped = this.data?.relatedEvents
? this.data.relatedEvents.map((event: EventCardObject) => {
return {
__typename: 'EDUEventPage',
page: event
}
})
: undefined
return mapped
}
}
})
Expand Down Expand Up @@ -364,7 +377,6 @@ export default defineComponent({
@apply mt-10;
@apply lg:mt-0;
@apply text-center;
@apply max-w-[17rem];
}
.bg-stars .MixinCarousel__Heading {
@apply text-white;
Expand Down
17 changes: 13 additions & 4 deletions packages/vue/src/utils/rangeifyGrades.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ const numbersAsGrades = computed(
}
)

const rangeify = (a: number[]) => {
const res = []
const rangeify = (a: number[]): string[] => {
const res: string[] = []
let run = []
for (let i = 0; i < a.length; i++) {
run.push(a[i])
Expand All @@ -43,7 +43,7 @@ const rangeify = (a: number[]) => {
run = []
}
}
return res.join(', ')
return res
}

export const rangeifyGrades = (gradeLevels: GradeLevelsObject[]) => {
Expand All @@ -58,6 +58,15 @@ export const rangeifyGrades = (gradeLevels: GradeLevelsObject[]) => {
return level
})

const audienceArray = [allAges, rangeify(gradesArray.filter(Number.isFinite))]
const filteredGrades = rangeify(gradesArray.filter(Number.isFinite))
let preparedGrades: string = ''
if (filteredGrades?.length) {
const gradeString = filteredGrades.length > 1 ? 'Grades: ' : 'Grade: '
preparedGrades = filteredGrades
.map((grade, index) => (index === 0 ? gradeString + grade : grade))
.join(', ')
}

const audienceArray = [allAges, preparedGrades]
return audienceArray.filter(Boolean).join(', ')
}

0 comments on commit ba10b40

Please sign in to comment.