diff --git a/src/public/app/widgets/find.js b/src/public/app/widgets/find.js index a68711a17..a3c9124c2 100644 --- a/src/public/app/widgets/find.js +++ b/src/public/app/widgets/find.js @@ -158,9 +158,11 @@ export default class FindWidget extends NoteContextAwareWidget { } this.handler = await this.getHandler(); + + const isReadOnly = await this.noteContext.isReadOnly(); let selectedText = ''; - if (this.note.type === 'code'){ + if (this.note.type === 'code' && !isReadOnly){ const codeEditor = await this.noteContext.getCodeEditor(); selectedText = codeEditor.getSelection(); }else{ @@ -168,7 +170,6 @@ export default class FindWidget extends NoteContextAwareWidget { } this.$widget.show(); this.$input.focus(); - const isReadOnly = await this.noteContext.isReadOnly(); if (['text', 'code'].includes(this.note.type) && !isReadOnly) { this.$replaceWidgetBox.show(); }else{ diff --git a/src/public/app/widgets/find_in_code.js b/src/public/app/widgets/find_in_code.js index 66052ee02..672e0c9b8 100644 --- a/src/public/app/widgets/find_in_code.js +++ b/src/public/app/widgets/find_in_code.js @@ -171,6 +171,10 @@ export default class FindInCode { codeEditor.focus(); } async replace(replaceText) { + // this.findResult may be undefined and null + if (!this.findResult || this.findResult.length===0){ + return; + } let currentFound = -1; this.findResult.forEach((marker, index) => { const pos = marker.find(); @@ -202,6 +206,9 @@ export default class FindInCode { } } async replaceAll(replaceText) { + if (!this.findResult || this.findResult.length===0){ + return; + } const codeEditor = await this.getCodeEditor(); const doc = codeEditor.doc; codeEditor.operation(() => { diff --git a/src/public/app/widgets/type_widgets/read_only_code.js b/src/public/app/widgets/type_widgets/read_only_code.js index 72e2e05e5..6a45259dd 100644 --- a/src/public/app/widgets/type_widgets/read_only_code.js +++ b/src/public/app/widgets/type_widgets/read_only_code.js @@ -51,7 +51,7 @@ export default class ReadOnlyCodeTypeWidget extends AbstractCodeTypeWidget { await this.initialized; - resolve(this.$content); + resolve(this.$editor); } format(html) {