Folders and files Name Name Last commit message
Last commit date
parent directory
View all files
title
homepage
JavaScript Bangkok 1.0.0
true
Sponsors
<script>
import Intro from './.vuepress/local-components/Intro.vue'
import OldSpeakerList from './.vuepress/local-components/OldSpeakerList.vue'
import SpeakerList from './.vuepress/local-components/SpeakerList.vue'
import SpeakerModal from './.vuepress/local-components/SpeakerModal.vue'
import SponsorList from './.vuepress/local-components/SponsorList.vue'
import SpeakerGroup from './.vuepress/local-components/SpeakerGroup.vue'
import Schedule from './.vuepress/local-components/Schedule.vue'
import Footer from './.vuepress/local-components/Footer.vue'
import speakers from 'json-loader!yaml-loader!./.vuepress/data/speakers.yml'
import schedule from 'json-loader!yaml-loader!./.vuepress/data/schedule.yml'
export default {
components: {
Intro,
OldSpeakerList,
SpeakerList,
SpeakerModal,
SponsorList,
SpeakerGroup,
Schedule,
Footer,
},
data () {
return {
speakers: speakers.reduce(
(acc, speaker) => ({ ...acc, [speaker.name]: speaker }),
{},
),
schedule,
isSpeakerModalActive: false,
speakerModalData: {
name: '',
title: '',
image: '',
url: '',
email: '',
description: '',
about: '',
}
}
},
methods: {
setIsSpeakerModalActive (value) {
this.isSpeakerModalActive = value
},
openSpeakerModal (speaker) {
this.speakerModalData = speaker
this.setIsSpeakerModalActive(true)
},
getSpeakersByGroup (groupName) {
return speakers.filter(speaker => speaker.group === groupName)
}
}
}
</script>
<style scoped>
h2 {
text-align: center;
font-size: 36px;
}
@media (min-width: 640px) {
h2 {
font-size: 64px;
}
}
.header-anchor {
display: none;
}
main {
display: block;
padding: 16px;
max-width: 1100px;
margin: 0 auto;
}
</style>
You can’t perform that action at this time.