66 lines
1.8 KiB
JavaScript
66 lines
1.8 KiB
JavaScript
"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);
|
|
}
|
|
}
|
|
}
|