diff --git a/src/app/components/editor/input.ts b/src/app/components/editor/input.ts index 4b6df40..b56e46e 100644 --- a/src/app/components/editor/input.ts +++ b/src/app/components/editor/input.ts @@ -157,10 +157,12 @@ const getInlineElement = (node: ChildNode, processText: ProcessTextCallback): In return children; } - return node.childNodes.flatMap((child) => getInlineElement(child, processText)); + const children = node.childNodes.flatMap((child) => getInlineElement(child, processText)); + if (children.length === 0) return [{ text: '' }]; + return children; } - return []; + return [{ text: '' }]; }; const parseBlockquoteNode = ( diff --git a/src/index.css b/src/index.css index ca28536..d469636 100644 --- a/src/index.css +++ b/src/index.css @@ -129,3 +129,9 @@ textarea { audio:not([controls]) { display: none !important; } + +/* Fix Firefox rendering lists that have empty items with those items collapsed in on eachother */ +li p::before { + content: ''; + display: inline-block; +}