summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/page/page.block.vue
blob: c7f72dce8cf497b56e7c3cf055cd58082452145c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->

<template>
<component :is="getComponent(block.type)" :key="block.id" :page="page" :block="block" :h="h"/>
</template>

<script lang="ts" setup>
import { } from 'vue';
import * as Misskey from 'misskey-js';
import XText from './page.text.vue';
import XSection from './page.section.vue';
import XImage from './page.image.vue';
import XNote from './page.note.vue';
import XDynamic from './page.dynamic.vue';

function getComponent(type: string) {
	switch (type) {
		case 'text': return XText;
		case 'section': return XSection;
		case 'image': return XImage;
		case 'note': return XNote;

		// 動的ページの代替用ブロック
		case 'button':
		case 'if':
		case 'textarea':
		case 'post':
		case 'canvas':
		case 'numberInput':
		case 'textInput':
		case 'switch':
		case 'radioButton':
		case 'counter':
			return XDynamic;

		default: return null;
	}
}

defineProps<{
	block: Misskey.entities.PageBlock,
	h: number,
	page: Misskey.entities.Page,
}>();
</script>