aboutsummaryrefslogtreecommitdiff
path: root/ext/bg
diff options
context:
space:
mode:
authorsiikamiika <siikamiika@users.noreply.github.com>2019-10-26 16:39:43 +0300
committersiikamiika <siikamiika@users.noreply.github.com>2019-10-26 16:39:43 +0300
commitbebd70b4e2d8da54b556b488d68a5111f3ff20c1 (patch)
tree0d8a8f288d47ada9523f33eb8b853359ae1ee100 /ext/bg
parent50769feea71943051eaf12f1d96bc6305746959f (diff)
remember search history
Diffstat (limited to 'ext/bg')
-rw-r--r--ext/bg/js/search.js17
1 files changed, 16 insertions, 1 deletions
diff --git a/ext/bg/js/search.js b/ext/bg/js/search.js
index 6481e16a..d66e68b8 100644
--- a/ext/bg/js/search.js
+++ b/ext/bg/js/search.js
@@ -58,6 +58,8 @@ class DisplaySearch extends Display {
window.wanakana.bind(this.query);
}
+ window.addEventListener('popstate', (e) => this.onPopState(e));
+
this.updateSearchButton();
} catch (e) {
this.onError(e);
@@ -95,10 +97,23 @@ class DisplaySearch extends Display {
const query = this.query.value;
const queryString = query.length > 0 ? `?query=${encodeURIComponent(query)}` : '';
- window.history.replaceState(null, '', `${window.location.pathname}${queryString}`);
+ window.history.pushState({query}, '', `${window.location.pathname}${queryString}`);
this.onSearchQueryUpdated(query, true);
}
+ onPopState(e) {
+ let query = '';
+ if (e.state && e.state.query) {
+ query = e.state.query
+ }
+
+ if (this.query !== null) {
+ this.query.value = query;
+ }
+
+ this.onSearchQueryUpdated(query, false);
+ }
+
onKeyDown(e) {
const key = Display.getKeyFromEvent(e);