Browse Source

Inject editor model in Pages

pull/4369/head
Artur Arseniev 4 years ago
parent
commit
f886823675
  1. 2
      src/pages/index.ts
  2. 1
      src/pages/model/Page.ts
  3. 8
      src/pages/model/Pages.ts

2
src/pages/index.ts

@ -101,7 +101,7 @@ export default class PageManager extends ItemManagerModule<Config, Pages> {
* @private
*/
constructor(em: EditorModel) {
super(em, 'PageManager', new Pages([]), events);
super(em, 'PageManager', new Pages([], em), events);
bindAll(this, '_onPageChange');
const model = new Model({ _undo: true } as any);
this.model = model;

1
src/pages/model/Page.ts

@ -15,7 +15,6 @@ export default class Page extends Model {
constructor(props: any, opts: any = {}) {
super(props, opts);
const { config = {} } = opts;
const { em } = opts;
const defFrame: any = {};
this.em = em;

8
src/pages/model/Pages.ts

@ -1,11 +1,17 @@
import { Collection } from '../../common';
import EditorModel from '../../editor/model/Editor';
import Page from './Page';
export default class Pages extends Collection<Page> {
constructor(models: any) {
constructor(models: any, em: EditorModel) {
super(models);
this.on('reset', this.onReset);
this.on('remove', this.onRemove);
// @ts-ignore We need to inject `em` for pages created on reset from the Storage load
this.model = (props: {}, opts = {}) => {
return new Page(props, {...opts, em });
}
}
onReset(m: Page, opts?: { previousModels?: Pages }) {

Loading…
Cancel
Save