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
+6 -1
View File
@@ -329,6 +329,7 @@ class View {
export class Paginator {
#gap = 0
#shouldUpdateGap = true
#observer = new ResizeObserver(() => this.render())
#element = document.createElement('div')
#background = document.createElement('div')
#maxSizeContainer = document.createElement('div')
@@ -394,7 +395,7 @@ export class Paginator {
this.#maxSizeContainer.append(this.#header)
this.#maxSizeContainer.append(this.#footer)
new ResizeObserver(() => this.render()).observe(this.#element)
this.#observer.observe(this.#element)
this.#container.addEventListener('scroll', debounce(() => {
if (this.scrolled) this.#afterScroll('scroll')
}, 250))
@@ -774,4 +775,8 @@ export class Paginator {
this.#anchor = anchor
await this.#scrollToAnchor(select)
}
destroy() {
this.#observer.unobserve(this.#element)
this.#element.remove()
}
}