schlechtenburg/packages/core/lib/App.tsx

50 lines
1.3 KiB
TypeScript
Raw Normal View History

2020-12-27 21:32:43 +00:00
import { defineComponent, reactive, ref } from 'vue';
import Schlechtenburg from '/@components/Schlechtenburg';
import { Block, SbMode } from '/@components/TreeElement';
2020-05-20 14:21:08 +00:00
2020-05-27 15:32:35 +00:00
import initialData from './initial-data.json';
2020-05-20 14:21:08 +00:00
import './App.scss';
export default defineComponent({
name: 'App',
setup() {
2020-05-27 13:57:57 +00:00
const activeTab = ref('edit');
2020-05-27 15:32:35 +00:00
const block = reactive(initialData) as Block;
2020-05-20 14:21:08 +00:00
2020-05-25 21:10:21 +00:00
return () => (
2020-05-20 14:21:08 +00:00
<div id="app">
2020-05-27 13:57:57 +00:00
<select
value={activeTab.value}
2020-12-27 21:32:43 +00:00
onchange={($event: Event) => { activeTab.value = ($event.target as HTMLSelectElement).value; }}
2020-05-27 13:57:57 +00:00
>
<option>edit</option>
<option>display</option>
<option>json</option>
</select>
2020-12-27 21:32:43 +00:00
2020-05-27 13:57:57 +00:00
<Schlechtenburg
2020-12-27 21:32:43 +00:00
v-show={activeTab.value === 'edit'}
2020-05-27 13:57:57 +00:00
block={block}
2020-05-27 15:06:14 +00:00
eventUpdate={(newBlock: Block) => {
2020-05-27 13:57:57 +00:00
block.name = newBlock.name;
block.blockId = newBlock.blockId;
block.data = newBlock.data;
}}
/>
<Schlechtenburg
2020-12-27 21:32:43 +00:00
v-show={activeTab.value === 'display'}
2020-05-27 13:57:57 +00:00
block={block}
2020-12-27 21:32:43 +00:00
mode={SbMode.Display}
2020-05-25 21:10:21 +00:00
/>
2020-05-20 14:21:08 +00:00
2020-12-27 21:32:43 +00:00
<pre v-show={activeTab.value === 'json'}>
2020-05-27 13:57:57 +00:00
<code>{JSON.stringify(block, null, 2)}</code>
</pre>
2020-05-20 14:21:08 +00:00
</div>
);
},
});