allow persisting in every browser
This commit is contained in:
parent
11bda1d8a4
commit
5064e3856f
71
ui/persist.js
Normal file
71
ui/persist.js
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
const URL_STORAGE_QUOTA = "https://developer.mozilla.org/de/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria";
|
||||||
|
|
||||||
|
export default class Persist {
|
||||||
|
#safari = navigator.vendor === "Apple Computer, Inc.";
|
||||||
|
/** @type {?boolean} */
|
||||||
|
#persisted = null;
|
||||||
|
|
||||||
|
async oninit() {
|
||||||
|
this.#persisted = await navigator.storage.persisted();
|
||||||
|
}
|
||||||
|
|
||||||
|
view() {
|
||||||
|
if (this.#persisted !== false)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return m("li.item.-text._alternate._apply", [
|
||||||
|
this.#safari
|
||||||
|
? m.fragment([
|
||||||
|
m("p", m("strong", "Obacht, Safari-Nutza!")),
|
||||||
|
m("p", [
|
||||||
|
"Da Safari löscht manchmal von sich aus deine Spiel-Datn, wennst",
|
||||||
|
"füa sein Gschmack z'lang nimma de Seitn aufgmacht hast. ",
|
||||||
|
m("a", { href: URL_STORAGE_QUOTA }, "Mea Infos…"),
|
||||||
|
]),
|
||||||
|
m("p", [
|
||||||
|
"Is natürlich eha bled, aba als Webseitn-Entwickla kann ma da ",
|
||||||
|
"leida praktisch gar nix machn. Es gibt zwar a Option um des ",
|
||||||
|
"Löschn aus z'schaltn, aba bei dea kann da Safari oanfach „na“ ",
|
||||||
|
"sagn, wenn ea will.",
|
||||||
|
]),
|
||||||
|
m("p", [
|
||||||
|
"Dea Knopf direkt unta dem Text machat genau des. Kannst probian ",
|
||||||
|
"wennst willst. Falls es geht verschwindet de Meldung. Falls nit ",
|
||||||
|
"gregst an Fehla anzoagt. Dann bleibt da leida nur mehr n Browser ",
|
||||||
|
"z'wechsln oda mit eventuellem Datnverlust z'lebn.",
|
||||||
|
]),
|
||||||
|
])
|
||||||
|
: m("p", [
|
||||||
|
"Ganz seltn, wenn dei Festplattn fast voi is, dann kann's sein, ",
|
||||||
|
"dass dei Browser die Spiel-Datn löscht. Wennst des vahindand ",
|
||||||
|
"willst, druck den Knopf direkt unta dem Text. ",
|
||||||
|
m("a", { href: URL_STORAGE_QUOTA }, "Mea Infos…"),
|
||||||
|
]),
|
||||||
|
m("p", m(
|
||||||
|
"button.wb-button._positioned",
|
||||||
|
{ onclick: () => this.#onpersist() },
|
||||||
|
"Datn persistieren",
|
||||||
|
)),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#onpersist() {
|
||||||
|
try {
|
||||||
|
navigator.storage.persist().then(p => {
|
||||||
|
this.#persisted = p;
|
||||||
|
m.redraw();
|
||||||
|
|
||||||
|
if (!p)
|
||||||
|
window.alert(
|
||||||
|
this.#safari
|
||||||
|
? "Safari hat leida na gsagt."
|
||||||
|
: "Dei Browser hat leida na gsagt."
|
||||||
|
);
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error("failed to attempt to persist: ", error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,65 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
|
|
||||||
export default class SafariPersist {
|
|
||||||
#safari = navigator.vendor === "Apple Computer, Inc.";
|
|
||||||
/** @type {?boolean} */
|
|
||||||
#persisted = null;
|
|
||||||
|
|
||||||
oninit() {
|
|
||||||
if (this.#safari) {
|
|
||||||
try {
|
|
||||||
navigator.storage.persisted()
|
|
||||||
.then(p => {
|
|
||||||
this.#persisted = p;
|
|
||||||
m.redraw();
|
|
||||||
});
|
|
||||||
} catch (error) {
|
|
||||||
console.error("failed to determine persistence state: ", error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
view() {
|
|
||||||
if (!this.#safari || this.#persisted !== false)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
return m("li.item.-text._alternate._apply", [
|
|
||||||
m("p", m("strong", "Obacht, Safari-Nutza!")),
|
|
||||||
m("p", [
|
|
||||||
"S'isch leida so, dass da Safari manchmoi oanfach von sich aus ",
|
|
||||||
"entscheidet Datn z'löschn, de in iam gspeichat sen. Des berifft ",
|
|
||||||
"a die Datn vom Watterblock.",
|
|
||||||
]),
|
|
||||||
m("p", [
|
|
||||||
"Is natürlich eha bled, aba als Webseitn-Entwickla kann ma da leida ",
|
|
||||||
"praktisch gar nix machn. Es gibt zwar a Option um des Löschn aus ",
|
|
||||||
"z'schaltn, aba bei dea kann Safari oanfach „na“ sagn, wenn es will.",
|
|
||||||
]),
|
|
||||||
m("p", [
|
|
||||||
"Dea Knopf direkt unta dem Text machat genau des. Kannst probian ",
|
|
||||||
"wennst willst. Falls es geht verschwindet de Meldung. Falls nit ",
|
|
||||||
"gregst an Fehla anzoagt. Dann bleibt da leida nur mehr Browser ",
|
|
||||||
"wechsln oda mit eventuellem Datnverlust z'lebn.",
|
|
||||||
]),
|
|
||||||
m("p", m(
|
|
||||||
"button.wb-button._positioned",
|
|
||||||
{ onclick: () => this.#onpersist() },
|
|
||||||
"Datn persistieren",
|
|
||||||
)),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
#onpersist() {
|
|
||||||
try {
|
|
||||||
navigator.storage.persist().then(p => {
|
|
||||||
this.#persisted = p;
|
|
||||||
m.redraw();
|
|
||||||
|
|
||||||
if (!p)
|
|
||||||
window.alert("Safari hat leida na gsagt.");
|
|
||||||
});
|
|
||||||
} catch (error) {
|
|
||||||
console.error("failed to attempt to persist: ", error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
import SafariPersist from "./safari-persist.js";
|
import Persist from "./persist.js";
|
||||||
import Session from "/models/session.js";
|
import Session from "/models/session.js";
|
||||||
|
|
||||||
export default class SessionList {
|
export default class SessionList {
|
||||||
@ -8,7 +8,7 @@ export default class SessionList {
|
|||||||
view({attrs: { models, onSelect, onDelete } }) {
|
view({attrs: { models, onSelect, onDelete } }) {
|
||||||
return m("section.wb-session-list", [
|
return m("section.wb-session-list", [
|
||||||
m("ol", [
|
m("ol", [
|
||||||
m(SafariPersist),
|
m(Persist),
|
||||||
models.length === 0
|
models.length === 0
|
||||||
? m("li.item.-text._alternate._apply", "Du hast no koane Sätz…")
|
? m("li.item.-text._alternate._apply", "Du hast no koane Sätz…")
|
||||||
: null,
|
: null,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user