diff --git a/examples/with-slate/package.json b/examples/with-slate/package.json index cef2d58f3442..4c966383e9d0 100644 --- a/examples/with-slate/package.json +++ b/examples/with-slate/package.json @@ -7,10 +7,15 @@ }, "dependencies": { "next": "latest", - "react": "^18.0.0", - "react-dom": "^18.0.0", - "slate": "^0.76.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "slate": "^0.82.0", "slate-history": "0.66.0", - "slate-react": "^0.76.1" + "slate-react": "^0.82.0" + }, + "devDependencies": { + "@types/node": "18.7.5", + "@types/react": "18.0.17", + "typescript": "4.7.4" } } diff --git a/examples/with-slate/pages/api/editor-state.ts b/examples/with-slate/pages/api/editor-state.ts new file mode 100644 index 000000000000..0539e503e5c2 --- /dev/null +++ b/examples/with-slate/pages/api/editor-state.ts @@ -0,0 +1,20 @@ +import { NextApiRequest, NextApiResponse } from 'next' + +export default async function handleEditorStateChange( + req: NextApiRequest, + res: NextApiResponse +) { + if (req.method !== 'POST') { + return res + .setHeader('Allow', ['POST']) + .status(405) + .end(`Method ${req.method} Not Allowed`) + } + + const editorState = JSON.parse(req.body) + console.log('TODO: Save editorState on the server', editorState) + + res.json({ + status: 'ok', + }) +} diff --git a/examples/with-slate/pages/index.js b/examples/with-slate/pages/index.js deleted file mode 100644 index 444c47acf7ef..000000000000 --- a/examples/with-slate/pages/index.js +++ /dev/null @@ -1,21 +0,0 @@ -import { useState } from 'react' -import { createEditor } from 'slate' -import { Slate, Editable, withReact } from 'slate-react' -import { withHistory } from 'slate-history' - -export default function IndexPage() { - const [editor] = useState(() => withReact(withHistory(createEditor())), []) - const [value, setValue] = useState([ - { - children: [ - { text: 'This is editable plain text, just like a