Add destroy method

Which revokes all blob URLs and removes the element from document.
This commit is contained in:
John Factotum
2023-05-09 14:02:07 +08:00
parent a817932b08
commit 5da3be5200
7 changed files with 45 additions and 5 deletions
+9 -1
View File
@@ -30,6 +30,7 @@ const getViewport = (doc, viewport) => {
}
class Container {
#observer = new ResizeObserver(() => this.render())
#element = document.createElement('div')
defaultViewport
spread
@@ -46,7 +47,7 @@ class Container {
justifyContent: 'center',
alignItems: 'center',
})
new ResizeObserver(() => this.render()).observe(this.#element)
this.#observer.observe(this.#element)
}
get element() {
return this.#element
@@ -170,6 +171,10 @@ class Container {
return true
}
}
destroy() {
this.#observer.unobserve(this.#element)
this.#element.remove()
}
}
export class FixedLayout {
@@ -289,4 +294,7 @@ export class FixedLayout {
for (const frame of this.#container.element.querySelectorAll('iframe'))
frame.contentWindow.getSelection().removeAllRanges()
}
destroy() {
this.#container.destroy()
}
}