diff --git a/app/editor/components/CommandMenu.tsx b/app/editor/components/CommandMenu.tsx index 70fe62a4c..a4142da72 100644 --- a/app/editor/components/CommandMenu.tsx +++ b/app/editor/components/CommandMenu.tsx @@ -431,10 +431,12 @@ class CommandMenu extends React.Component, State> { } if (embedItems.length) { - items.push({ - name: "separator", - }); - items = items.concat(embedItems); + items = items.concat( + { + name: "separator", + }, + embedItems + ); } const filtered = items.filter((item) => { diff --git a/shared/editor/lib/filterExcessSeparators.ts b/shared/editor/lib/filterExcessSeparators.ts index 48f6bcf58..4288fb771 100644 --- a/shared/editor/lib/filterExcessSeparators.ts +++ b/shared/editor/lib/filterExcessSeparators.ts @@ -12,14 +12,21 @@ export default function filterExcessSeparators( return acc; } - // trim double separators looking ahead / behind + // trim double separators looking behind const prev = items[index - 1]; if (prev && prev.name === "separator" && item.name === "separator") { return acc; } + // trim double separators looking ahead only if we're in the second to last + // position and the last position is also a separator (special case) const next = items[index + 1]; - if (next && next.name === "separator" && item.name === "separator") { + if ( + next && + next.name === "separator" && + item.name === "separator" && + index === items.length - 2 + ) { return acc; }