From 26cc073f41df1d1e7cfd5cdf6ebeb92daf31a108 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Fri, 18 Feb 2022 18:22:00 +0100 Subject: [PATCH] store: save buffer state when user navigates away Avoids loosing some state on page unload. --- store.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/store.js b/store.js index 6bf31aa..6530428 100644 --- a/store.js +++ b/store.js @@ -46,7 +46,14 @@ export class Buffer { let obj = this.raw.load(); this.m = new Map(Object.entries(obj || {})); - this.save = debounce(this.save.bind(this), 500); + let saveImmediately = this.save.bind(this); + this.save = debounce(saveImmediately, 500); + + document.addEventListener("visibilitychange", () => { + if (document.visibilityState === "hidden") { + saveImmediately(); + } + }); } key(buf) {