import Vue from 'vue' // FIXME: This doesn't like v-if directly inside the tab's contents, breaks vue really bad import './tab_switcher.scss' export default Vue.component('tab-switcher', { name: 'TabSwitcher', data () { return { active: 0 } }, methods: { activateTab(index) { return () => this.active = index; } }, render(h) { const tabs = this.$slots.default .filter(slot => slot.data) .map((slot, index) => { const classes = ['tab'] if (index === this.active) { classes.push('active') } return () }); const contents = (
{this.$slots.default.filter(slot => slot.data)[this.active]}
); return (
{tabs}
{contents}
) } })