Skip to content

Commit f573b57

Browse files
authored
Merge pull request #383 from vuejs-jp/enhance/archive-slide
[登壇スライドあれば、その動線を追加] update archive
2 parents 4ae3b1d + ca03ea7 commit f573b57

File tree

8 files changed

+93
-2
lines changed

8 files changed

+93
-2
lines changed

apps/web/app/components/time-table/TimeTableCard.vue

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,16 @@ const { range } = useRange()
8989
>
9090
{{ currentLocale === 'en' ? session.name_en : session.name_ja }}
9191
</p>
92+
<div class="session-archives">
93+
<VFIconButton
94+
v-if="session.session_doc_url"
95+
:href="session.session_doc_url"
96+
target-blank
97+
color="vue-blue"
98+
name="slide"
99+
class="session-archive-slide"
100+
/>
101+
</div>
92102
</div>
93103
</div>
94104
</div>
@@ -196,4 +206,15 @@ const { range } = useRange()
196206
font-weight: 700;
197207
line-height: 1.5;
198208
}
209+
.session-archives {
210+
display: flex;
211+
gap: var(calc(var(--unit) * 1.5));
212+
}
213+
.session-archive-slide {
214+
margin-top: 5px;
215+
}
216+
.session-archive-slide:hover {
217+
opacity: 0.6;
218+
transition: opacity 0.2s;
219+
}
199220
</style>

apps/web/app/components/time-table/TimeTableRow.vue

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,16 @@ const { range } = useRange()
8484
>
8585
{{ currentLocale === 'en' ? session.name_en : session.name_ja }}
8686
</p>
87+
<div class="session-archives">
88+
<VFIconButton
89+
v-if="session.session_doc_url"
90+
:href="session.session_doc_url"
91+
target-blank
92+
color="vue-blue"
93+
name="slide"
94+
class="session-archive-slide"
95+
/>
96+
</div>
8797
</div>
8898
</div>
8999
</VFSessionContent>
@@ -182,4 +192,15 @@ const { range } = useRange()
182192
font-size: 18px;
183193
font-weight: 700;
184194
}
195+
.session-archives {
196+
display: flex;
197+
gap: var(calc(var(--unit) * 1.5));
198+
}
199+
.session-archive-slide {
200+
margin-top: 5px;
201+
}
202+
.session-archive-slide:hover {
203+
opacity: 0.6;
204+
transition: opacity 0.2s;
205+
}
185206
</style>

apps/web/app/lang/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
"end_hour": "12",
2626
"end_minute": "00",
2727
"end_ampm": "pm",
28-
"lt_description": "A 5-minute lightning talk! As a special feature of this event, we will be distributing glow sticks to all participants. When you feel a \"thumbs up!\" moment, resonate with the content, or gain new insights during the LT, please wave your glow stick in response! Let's all create an exciting atmosphere for the LT together!"
28+
"lt_description": "A 5-minute lightning talk! As a special feature of this event, we will be distributing glow sticks to all participants. When you feel a \"thumbs up!\" moment, resonate with the content, or gain new insights during the LT, please wave your glow stick in response! Let's all create an exciting atmosphere for the LT together!",
29+
"archive_slide": "Archive Slide:"
2930
},
3031
"event": {
3132
"title": "Event",

apps/web/app/lang/ja.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
"end_date": "7.21",
3333
"end_hour": "24",
3434
"end_minute": "00",
35-
"lt_description": "制限時間5分のライトニングトーク! 今回の特別企画として、参加者全員にサイリウムをお配りします。LTの内容に「いいね!」と思ったときや、共感したり、新たな気づきを得たりしたときに、サイリウムを振ってリアクションをお願いします! みなさんでLTを盛り上げていきましょう!"
35+
"lt_description": "制限時間5分のライトニングトーク! 今回の特別企画として、参加者全員にサイリウムをお配りします。LTの内容に「いいね!」と思ったときや、共感したり、新たな気づきを得たりしたときに、サイリウムを振ってリアクションをお願いします! みなさんでLTを盛り上げていきましょう!",
36+
"archive_slide": "登壇スライド:"
3637
},
3738
"volunteer": {
3839
"title": "当日ボランティア募集",

apps/web/app/pages/sessions/[id]/index.vue

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,18 @@ useHead({
6565
{{ currentLocale === 'ja' ? (speakerData[0].session_description_ja ?? 'TBD') : (speakerData[0].session_description_en ?? 'TBD') }}
6666
</div>
6767

68+
<div v-if="speakerData[0].session_doc_url" class="detailbody-archives">
69+
<span>{{ $t('speaker.archive_slide') }}</span>
70+
<VFTextLink
71+
:href="speakerData[0].session_doc_url"
72+
target="_blank"
73+
color="vue-blue"
74+
class="detailbody-archive-slide"
75+
>
76+
{{ currentLocale === 'ja' ? speakerData[0].session_doc_title_ja : speakerData[0].session_doc_title_en }}
77+
</VFTextLink>
78+
</div>
79+
6880
<div class="detailbody-persons">
6981
<VFSpeaker
7082
:image="speakerData[0].image_url"
@@ -199,6 +211,31 @@ useHead({
199211
transition: 0.2s;
200212
}
201213
214+
.detailbody-archives {
215+
margin-top: calc(var(--unit) * 5);
216+
display: flex;
217+
align-items: center;
218+
justify-content: flex-start;
219+
gap: calc(var(--unit) * 1.5);
220+
@media (--tablet) {
221+
flex-direction: column;
222+
align-items: flex-start;
223+
gap: 0;
224+
}
225+
}
226+
227+
.detailbody-archives span {
228+
color: var(--color-vue-blue);
229+
}
230+
231+
.detailbody-archive-slide {
232+
--body-font-size: 1.125rem;
233+
234+
font-size: var(--body-font-size);
235+
line-height: 1.8;
236+
white-space: pre-wrap;
237+
}
238+
202239
.detailbody-persons {
203240
font-size: 18px;
204241
display: grid;

packages/model/lib/icon.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ export type IconName =
1515
| 'external'
1616
| 'alert'
1717
| 'translation'
18+
| 'slide'
Lines changed: 6 additions & 0 deletions
Loading

packages/ui/components/icon/Icon.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ const svgComponent = match<IconName>(props.name)
6161
.with('translation', () =>
6262
defineAsyncComponent(() => import('../../assets/icon/translation.svg?component')),
6363
)
64+
.with('slide', () =>
65+
defineAsyncComponent(() => import('../../assets/icon/slide_icon.svg?component')),
66+
)
6467
.exhaustive()
6568
6669
const { color: fillColor } = useColor()

0 commit comments

Comments
 (0)