tiptap/packages/react/src/useEditor.ts

32 lines
569 B
TypeScript
Raw Normal View History

2021-03-09 05:00:07 +08:00
// @ts-nocheck
import { useState, useEffect } from 'react'
import { Editor } from './Editor'
function useForceUpdate() {
const [_, setValue] = useState(0)
return () => setValue(value => value + 1)
}
export const useEditor = (options = {}) => {
const [editor, setEditor] = useState(null)
const forceUpdate = useForceUpdate()
useEffect(() => {
const instance = new Editor(options)
setEditor(instance)
instance.on('transaction', () => {
forceUpdate()
})
return () => {
instance.destroy()
}
}, [])
return editor
}