From 2d6ee2ca5db8f900dee663f295df447cd273b272 Mon Sep 17 00:00:00 2001 From: Jungwoo An Date: Sat, 2 Jul 2022 16:04:48 +0900 Subject: [PATCH] feat: Add dangerouslyLowLevelInstance (#204) --- README.md | 23 +++++++++++++++++++ .../client/src/client-editor-core.ts | 4 ++++ .../@react-editor-js/core/src/editor-core.ts | 2 ++ .../core/tests/TestEditorCore.ts | 4 ++++ .../server/src/server-editor-core.ts | 4 ++++ 5 files changed, 37 insertions(+) diff --git a/README.md b/README.md index 826ad44..eea1847 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,29 @@ const handleSave = React.useCallback(async () => { ``` +If you want to access low-level instance, you can use `dangerouslyLowLevelInstance` + +⚠️ dangerouslyLowLevelInstance depends on the execution environment. + +| Environment | Instnace Type | +| - | - | +| Browser | EditorJS instance| +| NodeJS | null | + +```tsx +const editorCore = React.useRef(null) + +const handleInitialize = React.useCallback((instance) => { + editorCore.current = instance +}, []) + +const handleSave = React.useCallback(async () => { + const savedData = await editorCore.current.dangerouslyLowLevelInstance?.save(); +}, []) + + +``` + ### Haven't received data from server (when use Link) You should set linkTool [config](https://github.com/editor-js/link#usage). 💪🏻 diff --git a/packages/@react-editor-js/client/src/client-editor-core.ts b/packages/@react-editor-js/client/src/client-editor-core.ts index 26370f1..9453ec3 100644 --- a/packages/@react-editor-js/client/src/client-editor-core.ts +++ b/packages/@react-editor-js/client/src/client-editor-core.ts @@ -21,6 +21,10 @@ export class ClientEditorCore implements EditorCore { }) } + public get dangerouslyLowLevelInstance() { + return this._editorJS + } + public async clear() { await this._editorJS.clear() } diff --git a/packages/@react-editor-js/core/src/editor-core.ts b/packages/@react-editor-js/core/src/editor-core.ts index 82d69e6..30456a7 100644 --- a/packages/@react-editor-js/core/src/editor-core.ts +++ b/packages/@react-editor-js/core/src/editor-core.ts @@ -8,4 +8,6 @@ export interface EditorCore { save(): Promise render(data: OutputData): Promise + + get dangerouslyLowLevelInstance(): any | null } diff --git a/packages/@react-editor-js/core/tests/TestEditorCore.ts b/packages/@react-editor-js/core/tests/TestEditorCore.ts index 50b0fde..5fc5ab0 100644 --- a/packages/@react-editor-js/core/tests/TestEditorCore.ts +++ b/packages/@react-editor-js/core/tests/TestEditorCore.ts @@ -11,6 +11,10 @@ export class TestEditorCore implements EditorCore { return this._data } + public get dangerouslyLowLevelInstance() { + return null + } + public async clear() {} public async save() { diff --git a/packages/@react-editor-js/server/src/server-editor-core.ts b/packages/@react-editor-js/server/src/server-editor-core.ts index c21413b..a2243e4 100644 --- a/packages/@react-editor-js/server/src/server-editor-core.ts +++ b/packages/@react-editor-js/server/src/server-editor-core.ts @@ -10,6 +10,10 @@ export class ServerEditorCore implements EditorCore { } } + public get dangerouslyLowLevelInstance() { + return null + } + public async clear() {} public async save() {