2020-07-11 10:13:11 +09:00
|
|
|
<template>
|
|
|
|
<!-- TODO: リファクタの余地がありそう -->
|
2022-03-21 03:11:14 +09:00
|
|
|
<div v-if="!column">たぶん見えちゃいけないやつ</div>
|
|
|
|
<XMainColumn v-else-if="column.type === 'main'" :column="column" :is-stacked="isStacked" @parent-focus="emit('parent-focus', $event)"/>
|
|
|
|
<XWidgetsColumn v-else-if="column.type === 'widgets'" :column="column" :is-stacked="isStacked" @parent-focus="emit('parent-focus', $event)"/>
|
|
|
|
<XNotificationsColumn v-else-if="column.type === 'notifications'" :column="column" :is-stacked="isStacked" @parent-focus="emit('parent-focus', $event)"/>
|
|
|
|
<XTlColumn v-else-if="column.type === 'tl'" :column="column" :is-stacked="isStacked" @parent-focus="emit('parent-focus', $event)"/>
|
|
|
|
<XListColumn v-else-if="column.type === 'list'" :column="column" :is-stacked="isStacked" @parent-focus="emit('parent-focus', $event)"/>
|
2023-02-09 10:35:28 +09:00
|
|
|
<XChannelColumn v-else-if="column.type === 'channel'" :column="column" :is-stacked="isStacked" @parent-focus="emit('parent-focus', $event)"/>
|
2022-03-21 03:11:14 +09:00
|
|
|
<XAntennaColumn v-else-if="column.type === 'antenna'" :column="column" :is-stacked="isStacked" @parent-focus="emit('parent-focus', $event)"/>
|
|
|
|
<XMentionsColumn v-else-if="column.type === 'mentions'" :column="column" :is-stacked="isStacked" @parent-focus="emit('parent-focus', $event)"/>
|
|
|
|
<XDirectColumn v-else-if="column.type === 'direct'" :column="column" :is-stacked="isStacked" @parent-focus="emit('parent-focus', $event)"/>
|
2023-04-12 11:40:08 +09:00
|
|
|
<XRoleTimelineColumn v-else-if="column.type === 'roleTimeline'" :column="column" :is-stacked="isStacked" @parent-focus="emit('parent-focus', $event)"/>
|
2020-07-11 10:13:11 +09:00
|
|
|
</template>
|
|
|
|
|
2022-03-21 03:11:14 +09:00
|
|
|
<script lang="ts" setup>
|
|
|
|
import { } from 'vue';
|
2020-12-26 18:33:54 +09:00
|
|
|
import XMainColumn from './main-column.vue';
|
2020-07-11 10:13:11 +09:00
|
|
|
import XTlColumn from './tl-column.vue';
|
|
|
|
import XAntennaColumn from './antenna-column.vue';
|
|
|
|
import XListColumn from './list-column.vue';
|
2023-02-09 10:35:28 +09:00
|
|
|
import XChannelColumn from './channel-column.vue';
|
2020-07-11 10:13:11 +09:00
|
|
|
import XNotificationsColumn from './notifications-column.vue';
|
|
|
|
import XWidgetsColumn from './widgets-column.vue';
|
|
|
|
import XMentionsColumn from './mentions-column.vue';
|
|
|
|
import XDirectColumn from './direct-column.vue';
|
2023-04-12 11:40:08 +09:00
|
|
|
import XRoleTimelineColumn from './role-timeline-column.vue';
|
2022-03-21 03:11:14 +09:00
|
|
|
import { Column } from './deck-store';
|
2020-07-11 10:13:11 +09:00
|
|
|
|
2022-03-21 03:11:14 +09:00
|
|
|
defineProps<{
|
|
|
|
column?: Column;
|
|
|
|
isStacked: boolean;
|
|
|
|
}>();
|
|
|
|
|
|
|
|
const emit = defineEmits<{
|
2022-05-19 17:35:43 +09:00
|
|
|
(ev: 'parent-focus', direction: 'up' | 'down' | 'left' | 'right'): void;
|
2022-03-21 03:11:14 +09:00
|
|
|
}>();
|
2020-07-11 10:13:11 +09:00
|
|
|
</script>
|