Skip to content

Commit 0c98791

Browse files
authored
Merge pull request #81 from Etlas/patch-1
Fix Errors during Enzyme test
2 parents b5fe7ae + 2515171 commit 0c98791

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/index.tsx

+14-11
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ export default class SimpleMDEEditor extends React.PureComponent<
4747
SimpleMDEEditorProps,
4848
SimpleMDEEditorState
4949
> {
50+
private elementWrapperRef: any;
51+
5052
static defaultProps = {
5153
events: {},
5254
onChange: noop,
@@ -91,7 +93,9 @@ export default class SimpleMDEEditor extends React.PureComponent<
9193
}
9294

9395
componentWillUnmount() {
94-
this.removeEvents();
96+
if (this.editorEl !== null && this.editorEl !== undefined) {
97+
this.removeEvents();
98+
}
9599
}
96100

97101
createEditor = () => {
@@ -121,16 +125,11 @@ export default class SimpleMDEEditor extends React.PureComponent<
121125
};
122126

123127
addEvents = () => {
124-
const wrapperId = `${this.id}-wrapper`;
125-
const wrapperEl = document.getElementById(`${wrapperId}`);
126-
127-
this.editorEl = wrapperEl!.getElementsByClassName("CodeMirror")[0];
128-
this.editorToolbarEl = wrapperEl!.getElementsByClassName(
129-
"editor-toolbar"
130-
)[0];
128+
this.editorEl = this.elementWrapperRef;
129+
this.editorToolbarEl = this.elementWrapperRef.getElementsByClassName("editor-toolbar")[0];
131130

132-
this.editorEl.addEventListener("keyup", this.eventWrapper);
133-
this.editorEl.addEventListener("paste", this.eventWrapper);
131+
this.editorEl!.addEventListener("keyup", this.eventWrapper);
132+
this.editorEl!.addEventListener("paste", this.eventWrapper);
134133
this.editorToolbarEl &&
135134
this.editorToolbarEl.addEventListener("click", this.eventWrapper);
136135

@@ -166,6 +165,10 @@ export default class SimpleMDEEditor extends React.PureComponent<
166165
this.simpleMde!.codemirror.setOption("extraKeys", this.props.extraKeys);
167166
}
168167
};
168+
169+
private buildWrapperRef = (e: any) => {
170+
this.elementWrapperRef = e;
171+
};
169172

170173
render() {
171174
const {
@@ -182,7 +185,7 @@ export default class SimpleMDEEditor extends React.PureComponent<
182185
...rest
183186
} = this.props;
184187
return (
185-
<div id={`${this.id}-wrapper`} {...rest}>
188+
<div id={`${this.id}-wrapper`} {...rest} ref={this.buildWrapperRef}>
186189
{label && <label htmlFor={this.id}> {label} </label>}
187190
<textarea id={this.id} />
188191
</div>

0 commit comments

Comments
 (0)