2022-12-28 18:46:51 +00:00
|
|
|
import { defineComponent } from 'vue';
|
2022-12-28 19:59:58 +00:00
|
|
|
import { SbButton, SbMode } from '@schlechtenburg/core';
|
2022-12-29 02:47:45 +00:00
|
|
|
import PageBreadcrumb from '~~/components/PageBreadcrumb';
|
|
|
|
|
|
|
|
import './PageToolbar.scss';
|
2022-12-28 18:46:51 +00:00
|
|
|
|
|
|
|
export default defineComponent({
|
|
|
|
async setup() {
|
2022-12-29 02:47:45 +00:00
|
|
|
const {
|
|
|
|
currentPage,
|
|
|
|
currentPageId,
|
|
|
|
setCurrentPageId,
|
|
|
|
} = useCurrentPage();
|
|
|
|
|
|
|
|
const { pages, insertPage } = usePages();
|
2022-12-28 18:46:51 +00:00
|
|
|
|
|
|
|
const {
|
|
|
|
mode,
|
|
|
|
edit,
|
|
|
|
cancel,
|
|
|
|
save,
|
|
|
|
} = useEditor();
|
|
|
|
|
2022-12-29 02:47:45 +00:00
|
|
|
const addChildPage = () => {
|
|
|
|
insertPage({
|
|
|
|
id: 'draft',
|
|
|
|
attributes: {
|
|
|
|
title: 'New page',
|
|
|
|
block: getNewPageBlock(),
|
|
|
|
slug: 'new-page',
|
|
|
|
parent: {
|
|
|
|
data: {
|
|
|
|
id: currentPage.value?.id,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
setCurrentPageId('draft');
|
|
|
|
edit(currentPage.value?.attributes?.block!);
|
|
|
|
};
|
|
|
|
|
2022-12-28 18:46:51 +00:00
|
|
|
return () => (
|
|
|
|
<div class="ex-page-toolbar">
|
2022-12-29 02:47:45 +00:00
|
|
|
<PageBreadcrumb />
|
|
|
|
{currentPageId.value !== 'draft'
|
|
|
|
? <SbButton
|
|
|
|
type="button"
|
|
|
|
onClick={() => addChildPage()}
|
|
|
|
>Add child page</SbButton>
|
|
|
|
: null}
|
2022-12-28 18:46:51 +00:00
|
|
|
{ mode.value === SbMode.View
|
2022-12-28 19:59:58 +00:00
|
|
|
? <SbButton
|
2022-12-28 18:46:51 +00:00
|
|
|
type="button"
|
2022-12-29 02:47:45 +00:00
|
|
|
onClick={() => edit(currentPage.value?.attributes?.block!)}
|
2022-12-28 19:59:58 +00:00
|
|
|
>Edit</SbButton>
|
2022-12-28 18:46:51 +00:00
|
|
|
: <>
|
2022-12-28 19:59:58 +00:00
|
|
|
<SbButton
|
2022-12-28 18:46:51 +00:00
|
|
|
type="button"
|
|
|
|
onClick={() => cancel()}
|
2022-12-28 19:59:58 +00:00
|
|
|
>Cancel</SbButton>
|
|
|
|
<SbButton
|
2022-12-28 18:46:51 +00:00
|
|
|
type="button"
|
|
|
|
onClick={() => save()}
|
2022-12-28 19:59:58 +00:00
|
|
|
>Save</SbButton>
|
2022-12-28 18:46:51 +00:00
|
|
|
</>}
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
},
|
|
|
|
});
|