editor: preserve all whitespaces while setting content (#1978)

Co-authored-by: Abdullah Atta <abdullahatta@streetwriters.co>
This commit is contained in:
Muhammad Ali
2023-02-23 16:34:46 +05:00
committed by GitHub
parent 648eac5555
commit 87c7eccee4
3 changed files with 6 additions and 3 deletions

View File

@@ -142,7 +142,6 @@ function TipTap(props: TipTapProps) {
const hasText = event.clipboardData?.types?.some((type) =>
type.startsWith("text/")
);
// we always give preference to text over files & skip any attached
// files if there is text.
// TODO: give user an actionable hint to allow them to select what they
@@ -163,6 +162,7 @@ function TipTap(props: TipTapProps) {
isMobile: isMobile || false,
element: editorContainer,
editable: !readonly,
parseOptions: { preserveWhitespace: "full" },
content,
autofocus: "start",
onFocus,
@@ -381,7 +381,7 @@ function toIEditor(editor: Editor): IEditor {
tr.setMeta("preventSave", true);
return true;
})
.setContent(content, true)
.setContent(content, true, { preserveWhitespace: "full" })
.setTextSelection({
from,
to

View File

@@ -85,6 +85,7 @@ const Tiptap = ({
editorProps: {
editable: () => !settings.readonly
},
parseOptions: { preserveWhitespace: "full" },
content: global.editorController?.content?.current,
isMobile: true,
isKeyboardOpen: settings.keyboardShown,

View File

@@ -115,7 +115,9 @@ export function useEditorController(update: () => void): EditorController {
htmlContentRef.current = value;
if (!editor) break;
const { from, to } = editor.state.selection;
editor?.commands.setContent(htmlContentRef.current, false);
editor?.commands.setContent(htmlContentRef.current, false, {
preserveWhitespace: "full"
});
editor.commands.setTextSelection({
from,
to