2022-12-28 18:46:51 +00:00
|
|
|
import { defineComponent } from 'vue';
|
|
|
|
import { SbMain, SbMode } from '@schlechtenburg/core';
|
|
|
|
import PageToolbar from '~~/components/PageToolbar';
|
|
|
|
import SbLayout from '@schlechtenburg/layout';
|
|
|
|
import SbHeading from '@schlechtenburg/heading';
|
|
|
|
import SbParagraph from '@schlechtenburg/paragraph';
|
|
|
|
import SbImage from '@schlechtenburg/image';
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
|
|
async setup() {
|
|
|
|
const { me } = useMe();
|
|
|
|
|
|
|
|
const loggedIn = computed(() => !!me.value?.id);
|
|
|
|
|
2022-12-29 02:47:45 +00:00
|
|
|
const { currentPage } = useCurrentPage();
|
|
|
|
const block = computed(() => currentPage.value?.attributes?.block);
|
2022-12-28 18:46:51 +00:00
|
|
|
|
|
|
|
const {
|
|
|
|
mode,
|
|
|
|
draft,
|
|
|
|
updateDraft,
|
|
|
|
} = useEditor();
|
|
|
|
|
2022-12-29 02:47:45 +00:00
|
|
|
watchEffect(() => {
|
|
|
|
updateDraft(block.value!);
|
2022-12-28 18:46:51 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
if (!block) {
|
|
|
|
console.error('No block!');
|
2022-12-29 02:47:45 +00:00
|
|
|
console.error('page', currentPage.value);
|
2022-12-28 18:46:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return () => (
|
|
|
|
<div class="ex-page">
|
|
|
|
{loggedIn.value ? <PageToolbar></PageToolbar> : null}
|
|
|
|
{draft.value
|
|
|
|
? <SbMain
|
|
|
|
class="ex-page"
|
|
|
|
mode={mode.value}
|
|
|
|
eventUpdate={(updatedBlock) => updateDraft(updatedBlock)}
|
|
|
|
block={draft.value}
|
|
|
|
availableBlocks={[
|
|
|
|
SbLayout,
|
|
|
|
SbHeading,
|
|
|
|
SbParagraph,
|
|
|
|
SbImage,
|
|
|
|
]}
|
|
|
|
/>
|
2022-12-29 02:47:45 +00:00
|
|
|
: <div class="ex-page ex-page_corrupt">Corrupt page: {currentPage.value?.attributes?.slug} ({currentPage.value?.id})</div>}
|
2022-12-28 18:46:51 +00:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
},
|
|
|
|
});
|