Skip to content
This repository was archived by the owner on Oct 11, 2022. It is now read-only.

Commit dc08cba

Browse files
committed
fix outsideclick in codeblock
1 parent 1ac6db0 commit dc08cba

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

src/components/Code/index.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ class CodeBlock extends PureComponent {
4747
focusKey: blockKey,
4848
});
4949

50+
this.setState({ isOpen: false });
51+
5052
let content = editorState.getCurrentContent();
5153
content = Modifier.mergeBlockData(
5254
content,
@@ -67,12 +69,14 @@ class CodeBlock extends PureComponent {
6769
cancelClicks = event => event.preventDefault();
6870

6971
onSelectClick = event => {
72+
this.setState({ isOpen: true });
7073
const { setReadOnly } = this.props.blockProps;
7174
event.stopPropagation();
7275
setReadOnly(true);
7376
};
7477

7578
onClickOutside = () => {
79+
if (this.state.isOpen === false) return;
7680
const {
7781
getEditorState,
7882
setReadOnly,
@@ -81,6 +85,8 @@ class CodeBlock extends PureComponent {
8185

8286
setReadOnly(false);
8387

88+
this.setState({ isOpen: false });
89+
8490
const editorState = getEditorState();
8591
const selection = editorState.getSelection();
8692

@@ -91,6 +97,7 @@ class CodeBlock extends PureComponent {
9197
const {
9298
languages,
9399
renderLanguageSelect,
100+
getReadOnly,
94101
language: _language,
95102
} = this.props.blockProps;
96103

@@ -116,12 +123,13 @@ class CodeBlock extends PureComponent {
116123
onClickOutside={this.onClickOutside}
117124
onClick={this.onSelectClick}
118125
>
119-
{renderLanguageSelect({
120-
selectedLabel,
121-
selectedValue,
122-
onChange: this.onChange,
123-
options,
124-
})}
126+
{!getReadOnly() &&
127+
renderLanguageSelect({
128+
selectedLabel,
129+
selectedValue,
130+
onChange: this.onChange,
131+
options,
132+
})}
125133
</CodeSwitchContainer>
126134
</div>
127135
);

src/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ const createMarkdownPlugin = (_config = {}) => {
231231

232232
blockRendererFn(
233233
block,
234-
{ setReadOnly, setEditorState, getEditorState, getEditorRef }
234+
{ setReadOnly, getReadOnly, setEditorState, getEditorState, getEditorRef }
235235
) {
236236
switch (block.getType()) {
237237
case CHECKABLE_LIST_ITEM: {
@@ -253,6 +253,7 @@ const createMarkdownPlugin = (_config = {}) => {
253253
setEditorState,
254254
renderLanguageSelect: config.renderLanguageSelect,
255255
languages: config.languages,
256+
getReadOnly,
256257
setReadOnly,
257258
language: block.getData().get("language"),
258259
getEditorState,

0 commit comments

Comments
 (0)