From b1ddf417be0478da88e11708c714684196d08da9 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Mon, 25 Sep 2023 20:45:34 -0400 Subject: [PATCH] fix: Capture errors recreating transform and log, these are non-critical --- shared/editor/lib/uploadPlaceholder.tsx | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/shared/editor/lib/uploadPlaceholder.tsx b/shared/editor/lib/uploadPlaceholder.tsx index ee77bf8a5..7b80c4cf7 100644 --- a/shared/editor/lib/uploadPlaceholder.tsx +++ b/shared/editor/lib/uploadPlaceholder.tsx @@ -2,6 +2,7 @@ import { EditorState, Plugin } from "prosemirror-state"; import { Decoration, DecorationSet } from "prosemirror-view"; import * as React from "react"; import ReactDOM from "react-dom"; +import Logger from "~/utils/Logger"; import FileExtension from "../components/FileExtension"; import { recreateTransform } from "./prosemirror-recreate-transform"; @@ -13,17 +14,22 @@ const uploadPlaceholder = new Plugin({ }, apply(tr, set: DecorationSet) { const ySyncEdit = !!tr.getMeta("y-sync$"); + let mapping = tr.mapping; + if (ySyncEdit) { - const mapping = recreateTransform(tr.before, tr.doc, { - complexSteps: true, - wordDiffs: false, - simplifyDiff: true, - }).mapping; - set = set.map(mapping, tr.doc); - } else { - set = set.map(tr.mapping, tr.doc); + try { + mapping = recreateTransform(tr.before, tr.doc, { + complexSteps: true, + wordDiffs: false, + simplifyDiff: true, + }).mapping; + } catch (err) { + Logger.warn("Failed to recreate transform", err); + } } + set = set.map(mapping, tr.doc); + // See if the transaction adds or removes any placeholders const action = tr.getMeta(this);