hotfix: auto-load to be ignore if no data

This commit is contained in:
Azgaar 2023-07-08 22:46:43 +04:00
parent 4a6ac9a7e7
commit 4a5d2c0378
3 changed files with 42 additions and 74 deletions

View file

@ -7841,7 +7841,7 @@
<script src="libs/d3.min.js"></script>
<script src="libs/priority-queue.min.js"></script>
<script src="libs/delaunator.min.js"></script>
<script src="libs/indexedDB.js"></script>
<script src="libs/indexedDB.js?v=1.89.31"></script>
<script src="utils/shorthands.js"></script>
<script src="utils/commonUtils.js?v=1.89.29"></script>

View file

@ -1,82 +1,50 @@
function waitForIndexedDB() {
return new Promise(resolve => {
const timer = setInterval(() => {
if (window.indexedDB) {
clearInterval(timer);
resolve();
}
}, 100);
});
}
function getValue(key) {
return new Promise((resolve, reject) => {
if (!window.indexedDB) {
reject(new Error("indexedDB not supported"));
return;
return new Promise(function (resolve) {
if (db) {
var transaction = db.transaction("store", "readonly");
var objectStore = transaction.objectStore("store");
var getRequest = objectStore.get(key);
getRequest.onsuccess = function (event) {
var result = event.target.result ? event.target.result.value : null;
resolve(result);
};
} else {
setTimeout(function () {
getValue(key).then(resolve);
}, 100);
}
waitForIndexedDB().then(() => {
const request = window.indexedDB.open("d2", 1);
request.onsuccess = event => {
const db = event.target.result;
const transaction = db.transaction("s", "readonly");
const objectStore = transaction.objectStore("s");
const getRequest = objectStore.get(key);
getRequest.onsuccess = event => {
const value = (event.target.result && event.target.result.v) || null;
resolve(value);
};
getRequest.onerror = event => {
reject(new Error("indexedDB request error"));
console.error(event);
};
};
request.onerror = event => {
reject(new Error("indexedDB request error"));
console.error(event);
};
});
});
}
function setValue(key, value) {
return new Promise((resolve, reject) => {
if (!window.indexedDB) {
reject(new Error("indexedDB not supported"));
return;
}
var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
if (!indexedDB) console.error("indexedDB not supported");
waitForIndexedDB().then(() => {
const request = window.indexedDB.open("d2", 1);
var db;
var request = indexedDB.open("myDatabase", 1);
request.onsuccess = event => {
const db = event.target.result;
const transaction = db.transaction("s", "readwrite");
const objectStore = transaction.objectStore("s");
request.onsuccess = function (event) {
db = event.target.result;
};
objectStore.put({k: key, v: value});
request.onerror = function (event) {
console.error("indexedDB request error");
console.log(event);
};
transaction.oncomplete = () => {
resolve();
};
request.onupgradeneeded = function (event) {
db = null;
var dbRequest = event.target.result;
var objectStore = dbRequest.createObjectStore("store", {keyPath: "key"});
objectStore.transaction.oncomplete = function () {
db = dbRequest;
};
};
transaction.onerror = event => {
reject(new Error("indexedDB request error"));
console.error(event);
};
};
request.onerror = event => {
reject(new Error("indexedDB request error"));
console.error(event);
};
});
});
}
window.ldb = {get: getValue, set: setValue};
window.ldb = {
get: getValue,
set: function (key, value) {
var transaction = db.transaction("store", "readwrite");
var objectStore = transaction.objectStore("store");
objectStore.put({key: key, value: value});
}
};

View file

@ -1,7 +1,7 @@
"use strict";
// version and caching control
const version = "1.89.30"; // generator version, update each time
const version = "1.89.31"; // generator version, update each time
{
document.title += " v" + version;