diff --git a/packages/core/src/common/index.ts b/packages/core/src/common/index.ts index 90d9ac5d9..3757c8ddb 100644 --- a/packages/core/src/common/index.ts +++ b/packages/core/src/common/index.ts @@ -24,7 +24,7 @@ export type UndoOptions = { fromUndo?: boolean }; export type WithHTMLParserOptions = { parserOptions?: HTMLParserOptions }; -export type RemoveOptions = Backbone.Silenceable & UndoOptions & { dangerously?: boolean }; +export type RemoveOptions = Backbone.Silenceable & UndoOptions & { dangerously?: boolean; temporary?: boolean }; export type EventHandler = Backbone.EventHandler; diff --git a/packages/core/src/pages/index.ts b/packages/core/src/pages/index.ts index 6945ba073..910c44ec1 100644 --- a/packages/core/src/pages/index.ts +++ b/packages/core/src/pages/index.ts @@ -159,6 +159,37 @@ export default class PageManager extends ItemManagerModule= this.pages.length) { + this.em.logError('Index out of bounds'); + } + + this.remove(page, { temporary: true }); + this.pages.add(page, { at: index }); + + return page; + } + /** * Get page by id * @param {String} id Page id diff --git a/packages/core/src/pages/model/Pages.ts b/packages/core/src/pages/model/Pages.ts index e58da7b1f..35733fa67 100644 --- a/packages/core/src/pages/model/Pages.ts +++ b/packages/core/src/pages/model/Pages.ts @@ -20,7 +20,7 @@ export default class Pages extends Collection { onRemove(removed?: Page, _p?: this, opts: RemoveOptions = {}) { // Avoid removing frames if triggered from undo #6142 - if (opts.fromUndo) return; + if (opts.fromUndo || opts.temporary) return; removed?.onRemove(); } }