Skip to content

Commit 6b3929b

Browse files
author
Zaydek Michels-Gualtieri
committed
Added new declarative debugger API
1 parent 6fdb1b0 commit 6b3929b

3 files changed

Lines changed: 43 additions & 12 deletions

File tree

src/RichTextEditor/RichTextEditor.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as Range from "./methods/Range"
22
import Debugger from "./components/Debugger"
3-
import DocumentRenderer from "./components/DocumentRenderer"
43
import React from "react"
4+
import Renderer from "./components/Renderer"
55
import useDOMContentLoadedCallback from "lib/x/useDOMContentLoadedCallback"
66
import useRichTextEditor from "./useRichTextEditor"
77
import { parseRenderedChildren } from "./parsers"
@@ -174,16 +174,25 @@ const RichTextEditor = ({ markup, children }) => {
174174

175175
data-root
176176
>
177-
<DocumentRenderer
177+
<Renderer
178178
forwardedRef={ref}
179179
state={state}
180180
dispatch={dispatch}
181181
/>
182182
</article>
183183

184+
{/* DEBUG */}
184185
<Debugger
185186
state={state}
186187
dispatch={dispatch}
188+
// lastActionTimestamp
189+
// lastAction
190+
// readOnlyModeEnabled
191+
// displayMarkdownModeEnabled
192+
// focused
193+
// elements
194+
// range
195+
// shouldRerender
187196
/>
188197

189198
</div>

src/RichTextEditor/components/Debugger.js

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,33 @@
11
import React from "react"
22

3-
const Debugger = ({ state, dispatch }) => (
4-
<div className="mt-6 whitespace-pre-wrap text-xs font-mono select-none" style={{ MozTabSize: 2, tabSize: 2 }}>
5-
{JSON.stringify({
6-
...state,
7-
// elements: undefined,
8-
}, null, "\t")}
3+
const Debugger = ({
4+
state,
5+
dispatch,
6+
lastActionTimestamp,
7+
lastAction,
8+
readOnlyModeEnabled,
9+
displayMarkdownModeEnabled,
10+
focused,
11+
elements,
12+
range,
13+
shouldRerender,
14+
}) => (
15+
<div className="mt-6 whitespace-pre-wrap font-mono text-xs" style={{ MozTabSize: 2, tabSize: 2 }}>
16+
{JSON.stringify(
17+
{
18+
...state,
19+
lastActionTimestamp: lastActionTimestamp && state.lastActionTimestamp,
20+
lastAction: lastAction && state.lastAction,
21+
readOnlyModeEnabled: readOnlyModeEnabled && state.readOnlyModeEnabled,
22+
displayMarkdownModeEnabled: displayMarkdownModeEnabled && state.displayMarkdownModeEnabled,
23+
focused: focused && state.focused,
24+
elements: elements && state.elements,
25+
range: range && state.range,
26+
shouldRerender: shouldRerender && state.shouldRerender,
27+
},
28+
null,
29+
"\t",
30+
)}
931
</div>
1032
)
1133

src/RichTextEditor/components/DocumentRenderer.js renamed to src/RichTextEditor/components/Renderer.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import componentMap from "./componentMap"
33
import React from "react"
44
import ReactDOM from "react-dom"
55

6-
const Document = ({ state, dispatch }) => (
6+
const Elements = ({ state, dispatch }) => (
77
state.elements.map(({ type, key, props }) => (
88
React.createElement(componentMap[type], {
99
key,
@@ -14,7 +14,7 @@ const Document = ({ state, dispatch }) => (
1414
)
1515

1616
// Rerenders the current state on state.shouldRerender.
17-
const DocumentRenderer = ({ forwardedRef, state, dispatch }) => {
17+
const Renderer = ({ forwardedRef, state, dispatch }) => {
1818
React.useLayoutEffect(
1919
React.useCallback(() => {
2020
if (!forwardedRef.current) {
@@ -26,7 +26,7 @@ const DocumentRenderer = ({ forwardedRef, state, dispatch }) => {
2626
if (selection.rangeCount) {
2727
selection.removeAllRanges()
2828
}
29-
ReactDOM.render(<Document state={state} dispatch={dispatch} />, forwardedRef.current, () => {
29+
ReactDOM.render(<Elements state={state} dispatch={dispatch} />, forwardedRef.current, () => {
3030
if (state.readOnlyModeEnabled /* FIXME? */ || !state.focused) {
3131
// No-op
3232
return
@@ -44,4 +44,4 @@ const DocumentRenderer = ({ forwardedRef, state, dispatch }) => {
4444
return null
4545
}
4646

47-
export default DocumentRenderer
47+
export default Renderer

0 commit comments

Comments
 (0)