Skip to content

Commit 1f6b162

Browse files
committed
Events page
1 parent 8961f44 commit 1f6b162

File tree

8 files changed

+146
-1
lines changed

8 files changed

+146
-1
lines changed

.eslintrc.cjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module.exports = {
3030
'vue/multi-word-component-names': [
3131
'error',
3232
{
33-
ignores: ['index', 'default', 'error', 'privacy', 'register', 'users', 'Provider', '[id]'],
33+
ignores: ['index', 'default', 'error', 'privacy', 'register', 'users', 'events', 'Provider', '[id]'],
3434
},
3535
],
3636
'vue/multiline-html-element-content-newline': 'off',

app/assets/locale/all.ts

+8
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ export default {
2929
save_image: '画像を保存',
3030
add_to_calendar: 'カレンダーに追加',
3131
re_edit: '再編集',
32+
attendee_register: '参加者登録',
33+
events: '関連イベント',
3234
namecard: 'ネームカード',
3335
start_registration: '開場・受付',
3436
opening: 'オープニング',
@@ -126,6 +128,8 @@ export default {
126128
events_panel_discussion: 'パネルディスカッション',
127129
panelist: 'パネラー',
128130
various_other_events: 'その他の各種イベント',
131+
medpeer_hacomono_mntsq_event_detail:
132+
'Vue.js 日本ユーザーグループ代表の kazupon さんを特別ゲストとして迎え、セッションやパネルディスカッションを行います。',
129133
/**
130134
* ticket section
131135
*/
@@ -431,6 +435,8 @@ export default {
431435
save_image: 'Save Image',
432436
add_to_calendar: 'Add to Calendar',
433437
re_edit: 'Re-Edit',
438+
attendee_register: 'Attendee Register',
439+
events: 'Related Events',
434440
namecard: 'Name Card',
435441
start_registration: 'Doors Open, Registration Begins',
436442
opening: 'Opening',
@@ -529,6 +535,8 @@ export default {
529535
events_panel_discussion: 'Panel Discussion',
530536
panelist: 'Panelist',
531537
various_other_events: 'Various Other Events',
538+
medpeer_hacomono_mntsq_event_detail:
539+
'We will have a session and panel discussion with kazupon, the representative of Vue.js Japan User Group, as a special guest.',
532540
/**
533541
* ticket section
534542
*/

app/composables/useLocale.ts

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export function useLocale(path: Path) {
2929
.with('volunteer', () => `/${locale.value}/top/volunteer`)
3030
.with('childcare', () => `/${locale.value}/top/childcare`)
3131
.with('handson', () => `/${locale.value}/top/handson`)
32+
.with('related-events', () => `/${locale.value}/top/related-events`)
3233
.with('privacy', () => `/${locale.value}/privacy`)
3334
.with('code-of-conduct', () => `/${locale.value}/code-of-conduct`)
3435
.with('personal-sponsors-text1', () => `/${locale.value}/top/personal-sponsors-text1`)

app/content/en/top/related-events.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Only sponsors are possible to hold events related to Vue Fes Japan 2023.

app/content/ja/top/related-events.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
協賛いただいた企業の皆様に限定して、Vue Fes Japan 2023の関連イベントを開催いただけます。

app/pages/events.vue

+133
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
<script setup lang="ts">
2+
import RoundButton from '~/components/button/RoundButton.vue'
3+
import NavPageSection from '~/components/NavPageSection.vue'
4+
import FooterPageSection from '~/components/FooterPageSection.vue'
5+
import PageTitle from '~/components/PageTitle.vue'
6+
import { conferenceTitle, linkUrl, ogDescription } from '~/utils/constants'
7+
import { generalOg, twitterOg } from '~/utils/og.constants'
8+
9+
useHead({
10+
titleTemplate: (titleChunk) => `関連イベント一覧 | ${conferenceTitle}`,
11+
meta: [
12+
...generalOg({
13+
title: `関連イベント一覧 | ${conferenceTitle}`,
14+
description: ogDescription,
15+
url: `${linkUrl}events`,
16+
}),
17+
...twitterOg({
18+
title: `関連イベント一覧 | ${conferenceTitle}`,
19+
description: ogDescription,
20+
url: `${linkUrl}events`,
21+
}),
22+
],
23+
})
24+
</script>
25+
26+
<template>
27+
<main>
28+
<NavPageSection />
29+
<div class="events-root">
30+
<PageTitle id="events" color="vue.blue" title="Events" :yamato-title="$t('words.events')" />
31+
32+
<div class="subtitle">
33+
<MarkDownText path="related-events" />
34+
</div>
35+
36+
<div class="event-menu">
37+
<EventCard
38+
src="/event/after-event/medpeer-hacomono-mntsq.png"
39+
:alt="`Vue Fes Japan 2023 After Meetup`"
40+
register-url="https://medpeer.connpass.com/event/297734/"
41+
:register-text="$t('words.attendee_register')"
42+
>
43+
<template #title> Vue Fes Japan 2023 After Meetup </template>
44+
<template #description>
45+
{{ $t('top.medpeer_hacomono_mntsq_event_detail') }}
46+
</template>
47+
</EventCard>
48+
</div>
49+
50+
<div class="back">
51+
<RoundButton to="../" outline>{{ $t('words.back_top') }}</RoundButton>
52+
</div>
53+
</div>
54+
<FooterPageSection />
55+
</main>
56+
</template>
57+
58+
<style lang="ts" scoped>
59+
css({
60+
'.subtitle': {
61+
display: 'grid',
62+
placeItems: 'center',
63+
gap: '40px',
64+
'::v-deep(p)': {
65+
color: '{color.vue.blue}',
66+
fontWeight: 500,
67+
fontSize: '18px',
68+
lineHeight: '1.8',
69+
},
70+
},
71+
'.event-menu': {
72+
display: 'flex',
73+
flexWrap: 'wrap',
74+
gap: '2em',
75+
justifyContent: 'center',
76+
},
77+
'.events-root': {
78+
padding: 'calc({space.8} * 10) 11.53%',
79+
color: '{color.vue.blue}',
80+
background: '{color.white}',
81+
'::v-deep(.title)': {
82+
marginBottom: 'calc({space.8} * 10)',
83+
},
84+
'::v-deep(p)': {
85+
fontWeight: 500,
86+
fontSize: '18px',
87+
lineHeight: '1.8',
88+
marginBottom: '1.5em',
89+
},
90+
'::v-deep(a)': {
91+
color: '{color.vue.green}',
92+
textDecoration: 'underline',
93+
'&:hover': {
94+
opacity: 0.4,
95+
transition: '.2s',
96+
},
97+
},
98+
'::v-deep(h2)': {
99+
fontWeight: 700,
100+
fontSize: '32px',
101+
marginTop: '2em',
102+
marginBottom: '.7em',
103+
},
104+
},
105+
'.back': {
106+
display: 'flex',
107+
justifyContent: 'center',
108+
marginTop: 'calc({space.8} * 10)',
109+
'a': {
110+
textDecoration: 'none',
111+
},
112+
},
113+
'@mobile': {
114+
'.subtitle': {
115+
'::v-deep(p)': {
116+
fontSize: '16px',
117+
},
118+
},
119+
'.events-root': {
120+
padding: 'calc({space.8} * 10) calc({space.8} * 3)',
121+
'::v-deep(.title)': {
122+
marginBottom: 'calc({space.8} * 6)',
123+
},
124+
'::v-deep(h2)': {
125+
fontSize: '20px',
126+
},
127+
'::v-deep(p), ::v-deep(ol), ::v-deep(ul)': {
128+
fontSize: '16px',
129+
},
130+
},
131+
},
132+
})
133+
</style>
Loading

app/types/app.ts

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export type Path =
2828
| 'event'
2929
| 'event-vuejs-clinic'
3030
| 'event-panel-discussion'
31+
| 'related-events'
3132
| 'privacy'
3233
| 'code-of-conduct'
3334
| string

0 commit comments

Comments
 (0)