mirror of
https://github.com/john-okeefe/foliate-js.git
synced 2026-09-09 11:29:14 -04:00
Add destroy method
Which revokes all blob URLs and removes the element from document.
This commit is contained in:
+9
-1
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user