forked from mirrors/firefish
82 lines
2.2 KiB
Vue
82 lines
2.2 KiB
Vue
<template>
|
|
<!-- TODO: リファクタの余地がありそう -->
|
|
<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)"
|
|
/>
|
|
<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)"
|
|
/>
|
|
<XChannelColumn
|
|
v-else-if="column.type === 'channel'"
|
|
:column="column"
|
|
:is-stacked="isStacked"
|
|
@parent-focus="emit('parent-focus', $event)"
|
|
/>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import {} from "vue";
|
|
import XMainColumn from "./main-column.vue";
|
|
import XTlColumn from "./tl-column.vue";
|
|
import XAntennaColumn from "./antenna-column.vue";
|
|
import XListColumn from "./list-column.vue";
|
|
import XNotificationsColumn from "./notifications-column.vue";
|
|
import XWidgetsColumn from "./widgets-column.vue";
|
|
import XMentionsColumn from "./mentions-column.vue";
|
|
import XDirectColumn from "./direct-column.vue";
|
|
import XChannelColumn from "./channel-column.vue";
|
|
import type { Column } from "./deck-store";
|
|
|
|
defineProps<{
|
|
column?: Column;
|
|
isStacked: boolean;
|
|
}>();
|
|
|
|
const emit = defineEmits<{
|
|
(ev: "parent-focus", direction: "up" | "down" | "left" | "right"): void;
|
|
}>();
|
|
</script>
|