0
Fork 0
mirror of https://github.com/fastmail/Squire.git synced 2024-12-22 15:23:29 -05:00

Don't use live NodeList

This commit is contained in:
djmaze 2023-02-18 10:46:08 +01:00 committed by Neil Jenkins
parent 27f19c4782
commit cdb57ebda0

View file

@ -59,18 +59,14 @@ const fixContainer = (
container: Node, container: Node,
root: Element | DocumentFragment, root: Element | DocumentFragment,
): Node => { ): Node => {
const children = container.childNodes;
let wrapper: HTMLElement | null = null; let wrapper: HTMLElement | null = null;
for (let i = 0, l = children.length; i < l; i += 1) { [...container.childNodes].forEach(child => {
const child = children[i];
const isBR = child.nodeName === 'BR'; const isBR = child.nodeName === 'BR';
if (!isBR && isInline(child)) { if (!isBR && isInline(child)) {
if (!wrapper) { if (!wrapper) {
wrapper = createElement('DIV'); wrapper = createElement('DIV');
} }
wrapper.appendChild(child); wrapper.appendChild(child);
i -= 1;
l -= 1;
} else if (isBR || wrapper) { } else if (isBR || wrapper) {
if (!wrapper) { if (!wrapper) {
wrapper = createElement('DIV'); wrapper = createElement('DIV');
@ -80,15 +76,13 @@ const fixContainer = (
container.replaceChild(wrapper, child); container.replaceChild(wrapper, child);
} else { } else {
container.insertBefore(wrapper, child); container.insertBefore(wrapper, child);
i += 1;
l += 1;
} }
wrapper = null; wrapper = null;
} }
if (isContainer(child)) { if (isContainer(child)) {
fixContainer(child, root); fixContainer(child, root);
} }
} });
if (wrapper) { if (wrapper) {
container.appendChild(fixCursor(wrapper)); container.appendChild(fixCursor(wrapper));
} }