From 36a8fb62e709e2cdf40e1f4ce421e74b5d3dae69 Mon Sep 17 00:00:00 2001 From: John Factotum <50942278+johnfactotum@users.noreply.github.com> Date: Sat, 27 May 2023 00:04:26 +0800 Subject: [PATCH] Fix history state not updated when swiping --- paginator.js | 2 +- view.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/paginator.js b/paginator.js index 4cceb20..3239270 100644 --- a/paginator.js +++ b/paginator.js @@ -608,7 +608,7 @@ export class Paginator extends HTMLElement { index: this.#adjacentIndex(dir), anchor: dir < 0 ? () => 1 : () => 0, }) - }) + }).then(() => this.dispatchEvent(new Event('snapend'))) } #onTouchStart(e) { const touch = e.changedTouches[0] diff --git a/view.js b/view.js index 3746ee1..8b01d29 100644 --- a/view.js +++ b/view.js @@ -120,6 +120,8 @@ export class View extends HTMLElement { this.renderer.setAttribute('exportparts', 'head,foot,filter') this.renderer.addEventListener('load', e => this.#onLoad(e.detail)) this.renderer.addEventListener('relocate', e => this.#onRelocate(e.detail)) + this.renderer.addEventListener('snapend', () => + this.history.replaceState(this.lastLocation)) this.renderer.addEventListener('create-overlayer', e => e.detail.attach(this.#createOverlayer(e.detail))) this.renderer.open(book)