Преглед на файлове

Fix error with contentEditable (#803)

Jed Fox преди 5 години
родител
ревизия
43236bed68
променени са 2 файла, в които са добавени 13 реда и са изтрити 2 реда
  1. 8 1
      src/components/ProjectName.tsx
  2. 5 1
      src/element/textWysiwyg.tsx

+ 8 - 1
src/components/ProjectName.tsx

@@ -31,12 +31,19 @@ export class ProjectName extends Component<Props> {
       e.currentTarget.blur();
     }
   };
+  private makeEditable = (editable: HTMLSpanElement) => {
+    try {
+      editable.contentEditable = "plaintext-only";
+    } catch {
+      editable.contentEditable = "true";
+    }
+  };
 
   public render() {
     return (
       <span
         suppressContentEditableWarning
-        contentEditable={"plaintext-only" as any}
+        ref={this.makeEditable}
         data-type="wysiwyg"
         className="ProjectName"
         role="textbox"

+ 5 - 1
src/element/textWysiwyg.tsx

@@ -34,7 +34,11 @@ export function textWysiwyg({
   // But this solution has an issue — it allows to paste
   // multiline text, which is not currently supported
   const editable = document.createElement("div");
-  editable.contentEditable = "plaintext-only";
+  try {
+    editable.contentEditable = "plaintext-only";
+  } catch {
+    editable.contentEditable = "true";
+  }
   editable.tabIndex = 0;
   editable.innerText = initText;
   editable.dataset.type = "wysiwyg";