import dynamic from 'next/dynamic' import Layout from '@/layouts/Home' import { useState } from 'react' import { OutputData } from "@editorjs/editorjs"; import { getPageBySlug } from '@/utils/pb'; import { api } from '@/utils/api'; const ReactEditorJS = dynamic(() => import('@/components/ReactEditor'), { ssr: false }) export default function Editor({data: pbData, slug, title}: {data: OutputData, slug: string, title: string}) { const [data, setData] = useState(pbData); const {mutate, isLoading, data: data2, isError} = api.pages.updatePage.useMutation(); if (data2) console.log(data2) const handleSubmit = () => { if (!data) return mutate({ slug, title, content: data }) } return ( {isLoading &&

Loading...

} {data2 && !isError &&

Saved!

} {isError &&

Error!

}

React EditorJS

EditorJS with React

Output

{JSON.stringify(data, null, 2)}
) } export async function getServerSideProps({query}: {query: {[key: string]: string}}) { if (!query.page) return {notFound: true} const data = await getPageBySlug(query.page); if (!data.data) return {notFound: true}; return { props: { data: data.data.content, slug: query.page, title: data.data.title } } }