geogrid undo
Diffstat (limited to 'undo.js')
-rw-r--r--undo.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/undo.js b/undo.js
new file mode 100644
index 0000000..2861d46
--- /dev/null
+++ b/undo.js
@@ -0,0 +1,42 @@
+let today = +document.querySelector(".page-title").innerHTML.replace(/[^0-9]+/, "");
+function get() {
+ let c = JSON.parse(localStorage.getItem("userData"));
+ return { data: c[today], raw: c }
+}
+let last = undefined;
+let c = get();
+
+setInterval(() => {
+ let n = get();
+ if (!n.data) return;
+ if (c.data === undefined) {
+ console.log("started")
+ c = n;
+ return;
+ }
+ if (c.data.board.toString() !== n.data.board.toString()) {
+ console.log("change detected")
+ last = c.raw;
+ c = n;
+ console.log("last board stored", c.data.board)
+ }
+}, 500)
+const reset = () => {
+ delete c.raw[today];
+ localStorage.setItem("userData", JSON.stringify(c.raw));
+ window.location.reload();
+};
+
+document.addEventListener('keydown', function (event) {
+ if (event.ctrlKey && event.key === 'z' && c.data !== undefined) {
+ if (last === undefined) {
+ reset()
+ } else {
+ localStorage.setItem("userData", JSON.stringify(last));
+ window.location.reload();
+ }
+ }
+ if (event.altKey && event.key === 'r' && c.data !== undefined) {
+ reset()
+ }
+}); \ No newline at end of file