Skip to content

Commit c8284ec

Browse files
authored
Merge pull request #339 from vuejs-jp/enhance/sharemap-panelers
[シェアURL集用のページ] feat: page for share urls (panelers)
2 parents ab4358a + e9128cd commit c8284ec

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

apps/web/app/pages/sharemap.vue

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
<script setup lang="ts">
22
import { useFetch, useHead } from '#imports'
3-
import type { SpeakerCategory, SpeakerInfo, SponsorCategory, SponsorInfo, StaffCategory, StaffInfo } from '@vuejs-jp/model'
3+
import type { PanelerInfo, SpeakerCategory, SpeakerInfo, SponsorCategory, SponsorInfo, StaffCategory, StaffInfo } from '@vuejs-jp/model'
44
import { useLocaleCurrent } from '~/composables/useLocaleCurrent'
55
import { conferenceTitle, linkUrl, ogSharemapDescription } from '~/utils/constants'
66
import { generalOg, twitterOg } from '~/utils/og.constants'
77
88
type _SpeakerCategory = Extract<SpeakerCategory, 'sessionSpeakers' | 'lightningTalkSpeakers' | 'sponsorSessionSpeakers'>
9+
type _PanelerCategory = Extract<SpeakerCategory, 'panelEventPanelers'>
910
type Speakers = Record<_SpeakerCategory, SpeakerInfo>
11+
type Panelers = Record<_PanelerCategory, PanelerInfo>
1012
1113
type Sponsors = Record<SponsorCategory, SponsorInfo>
1214
1315
type Staffs = Record<StaffCategory, StaffInfo>
1416
1517
const { data: speakers, error: error1 } = await useFetch('/api/speakers')
1618
const { sessionSpeakers, lightningTalkSpeakers, sponsorSessionSpeakers } = speakers.value as Speakers
19+
const { panelEventPanelers } = speakers.value as Panelers
1720
if (error1.value) {
1821
console.error(error1.value)
1922
}
@@ -71,7 +74,19 @@ useHead({
7174
<div>
7275
<VFTitle id="speaker">{{ $t('speaker.title') }}</VFTitle>
7376
<VFTextLink
74-
v-for="speaker in [...sessionSpeakers.list, ...lightningTalkSpeakers.list, ...sponsorSessionSpeakers.list]"
77+
v-for="speaker in Array.from(
78+
new Map(
79+
[
80+
...sessionSpeakers.list,
81+
...lightningTalkSpeakers.list,
82+
...sponsorSessionSpeakers.list,
83+
...panelEventPanelers.list['nextgen-frontend-crosstalk'],
84+
...panelEventPanelers.list['welcome-vuejs-community'],
85+
]
86+
.map((item) => [JSON.stringify(item), item])
87+
)
88+
.values()
89+
)"
7590
:key="speaker.id"
7691
:href="`/sessions/${speaker.detail_page_id}/share`"
7792
color="vue-blue"

0 commit comments

Comments
 (0)