add resize event

This commit is contained in:
Philipp Kühn
2021-04-01 16:21:47 +02:00
parent b9ee5555e5
commit c68fa74ad1
3 changed files with 24 additions and 0 deletions

View File

@@ -45,6 +45,8 @@ export class Editor extends EventEmitter {
public isFocused = false
private resizeObserver!: ResizeObserver
public options: EditorOptions = {
element: document.createElement('div'),
content: '',
@@ -63,6 +65,7 @@ export class Editor extends EventEmitter {
onTransaction: () => null,
onFocus: () => null,
onBlur: () => null,
onResize: () => null,
onDestroy: () => null,
}
@@ -86,7 +89,15 @@ export class Editor extends EventEmitter {
window.setTimeout(() => {
this.commands.focus(this.options.autofocus)
this.emit('create', { editor: this })
if (window.ResizeObserver) {
this.resizeObserver = new ResizeObserver(() => {
this.emit('resize', { editor: this })
})
this.resizeObserver.observe(this.view.dom)
}
}, 0)
}
/**
@@ -442,6 +453,8 @@ export class Editor extends EventEmitter {
* Destroy the editor.
*/
public destroy(): void {
this.resizeObserver?.unobserve(this.view.dom)
this.emit('destroy')
if (this.view) {