import { CursorEditor } from '@getguru/slate-yjs-core'; import { ReactEditor, useSlateStatic } from 'slate-react'; export function useRemoteCursorEditor< TCursorData extends Record = Record >(): CursorEditor & ReactEditor { const editor = useSlateStatic(); if (!CursorEditor.isCursorEditor(editor)) { throw new Error( 'Cannot use useSyncExternalStore outside the context of a RemoteCursorEditor' ); } return editor as CursorEditor & ReactEditor; }