File tree Expand file tree Collapse file tree 11 files changed +592
-64
lines changed Expand file tree Collapse file tree 11 files changed +592
-64
lines changed Original file line number Diff line number Diff line change 1
1
<script setup lang="ts">
2
+ import IconButton from ' ~/components/social/IconButton.vue'
2
3
import { useSession } from ' ~/composables/useSession'
3
4
import { useLocaleCurrent } from ' ~/composables/useLocaleCurrent'
4
5
import { Track } from ' ~/types/timetable'
6
+ import SlideSvg from ' ~/assets/logo/slide_logo.svg'
7
+ import YouTubeSvg from ' ~/assets/logo/youtube_logo.svg'
5
8
6
9
const props = defineProps <{
7
10
tracks: Track []
@@ -67,6 +70,22 @@ const _nuxtLink = computed(() => resolveComponent('NuxtLink'))
67
70
<div v-if =" session.speaker" class =" speaker" >
68
71
{{ session.speakerKey ? $t(session.speakerKey) : session.speaker }}
69
72
</div >
73
+ <div class =" archives" >
74
+ <IconButton v-if =" session.archives?.slide" :url =" session.archives?.slide" title =" Slide URL" >
75
+ <div class =" slide" >
76
+ <SlideSvg />
77
+ </div >
78
+ </IconButton >
79
+ <IconButton
80
+ v-if =" session.archives?.youtube"
81
+ :url =" session.archives?.youtube"
82
+ title =" YouTube URL"
83
+ >
84
+ <div class =" youtube" >
85
+ <YouTubeSvg />
86
+ </div >
87
+ </IconButton >
88
+ </div >
70
89
</div >
71
90
</td >
72
91
</template >
@@ -154,5 +173,34 @@ css({
154
173
borderTop: ' 2px solid {color.timetable.trackD}' ,
155
174
},
156
175
},
176
+ ' .archives' : {
177
+ display: ' flex' ,
178
+ justifyContent: ' flex-end' ,
179
+ gap: ' calc({space.8} * 1)' ,
180
+ fontSize: ' calc(11*{fontSize.base})' ,
181
+ fontWeight: ' 500' ,
182
+ },
183
+ ' .slide' : {
184
+ width: ' 40px' ,
185
+ height: ' 40px' ,
186
+ ' ::v-deep(svg)' : {
187
+ fill: ' {color.vue.blue}' ,
188
+ ' &:hover' : {
189
+ opacity: 0.6 ,
190
+ transition: ' .2s' ,
191
+ },
192
+ },
193
+ },
194
+ ' .youtube' : {
195
+ width: ' 40px' ,
196
+ height: ' 35.46px' ,
197
+ ' ::v-deep(svg)' : {
198
+ fill: ' {color.vue.blue}' ,
199
+ ' &:hover' : {
200
+ opacity: 0.6 ,
201
+ transition: ' .2s' ,
202
+ },
203
+ },
204
+ },
157
205
})
158
206
</style >
Original file line number Diff line number Diff line change 1
1
<script setup lang="ts">
2
+ import IconButton from ' ~/components/social/IconButton.vue'
2
3
import { useSession } from ' ~/composables/useSession'
3
- import { Session } from ' ~/types/timetable'
4
4
import { useLocaleCurrent } from ' ~/composables/useLocaleCurrent'
5
+ import { Session } from ' ~/types/timetable'
6
+ import SlideSvg from ' ~/assets/logo/slide_logo.svg'
7
+ import YouTubeSvg from ' ~/assets/logo/youtube_logo.svg'
5
8
6
9
const { locale } = useLocaleCurrent ()
7
10
@@ -93,6 +96,22 @@ const _nuxtLink = computed(() => resolveComponent('NuxtLink'))
93
96
<div v-if =" session.speaker" class =" speaker" >
94
97
{{ session.speakerKey ? $t(session.speakerKey) : session.speaker }}
95
98
</div >
99
+ <div class =" archives" >
100
+ <IconButton v-if =" session.archives?.slide" :url =" session.archives?.slide" title =" Slide URL" >
101
+ <div class =" slide" >
102
+ <SlideSvg />
103
+ </div >
104
+ </IconButton >
105
+ <IconButton
106
+ v-if =" session.archives?.youtube"
107
+ :url =" session.archives?.youtube"
108
+ title =" YouTube URL"
109
+ >
110
+ <div class =" youtube" >
111
+ <YouTubeSvg />
112
+ </div >
113
+ </IconButton >
114
+ </div >
96
115
</div >
97
116
</td >
98
117
</template >
@@ -191,5 +210,34 @@ css({
191
210
},
192
211
},
193
212
},
213
+ ' .archives' : {
214
+ display: ' flex' ,
215
+ justifyContent: ' flex-end' ,
216
+ gap: ' calc({space.8} * 1)' ,
217
+ fontSize: ' calc(11*{fontSize.base})' ,
218
+ fontWeight: ' 500' ,
219
+ },
220
+ ' .slide' : {
221
+ width: ' 40px' ,
222
+ height: ' 40px' ,
223
+ ' ::v-deep(svg)' : {
224
+ fill: ' {color.vue.blue}' ,
225
+ ' &:hover' : {
226
+ opacity: 0.6 ,
227
+ transition: ' .2s' ,
228
+ },
229
+ },
230
+ },
231
+ ' .youtube' : {
232
+ width: ' 40px' ,
233
+ height: ' 35.46px' ,
234
+ ' ::v-deep(svg)' : {
235
+ fill: ' {color.vue.blue}' ,
236
+ ' &:hover' : {
237
+ opacity: 0.6 ,
238
+ transition: ' .2s' ,
239
+ },
240
+ },
241
+ },
194
242
})
195
243
</style >
You can’t perform that action at this time.
0 commit comments