replace safari persiting popup with dedicated component
This commit is contained in:
parent
2068c26011
commit
11bda1d8a4
34
index.js
34
index.js
@ -10,40 +10,6 @@ try {
|
|||||||
console.error("failed to register service worker: ", error);
|
console.error("failed to register service worker: ", error);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
|
||||||
navigator.storage.persisted().then((persistent) => {
|
|
||||||
if (!persistent && navigator.vendor === "Apple Computer, Inc.") {
|
|
||||||
const question =
|
|
||||||
"S'schaut so aus als würdest du an Safari-Browser benutzn. S'isch " +
|
|
||||||
"leida aba so, dass dea manchmoi selbstständig oanfach Datn löscht, " +
|
|
||||||
"wenn ma a Seitn z'lang nit heanimmt. Des is füa an Watterblock " +
|
|
||||||
"natürlich eha schlecht.\n" +
|
|
||||||
"\n" +
|
|
||||||
"Wennst magst kannt ma aba probian ob ma des Löschn fian Block " +
|
|
||||||
"ausschaltn kenna. Wennst magst klick oanfach auf \"Ok\"!\n" +
|
|
||||||
"\n" +
|
|
||||||
"Wenns gangen is kimsch danach glei zum Block, und falls nit " +
|
|
||||||
"bekommst dazu no a extra Nachricht.";
|
|
||||||
|
|
||||||
const failure =
|
|
||||||
"S'isch leida nit gangen, Safari hat na gsagt. Du kansch entweda an " +
|
|
||||||
"andern Browser heanemmen, oder halt damit Leben wenn Safari deine " +
|
|
||||||
"Datn löscht.\n" +
|
|
||||||
"\n" +
|
|
||||||
"#JustSafariThings";
|
|
||||||
|
|
||||||
if (window.confirm(question)) {
|
|
||||||
navigator.storage.persist().then((persistent) => {
|
|
||||||
if (!persistent)
|
|
||||||
window.alert(failure);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (error) {
|
|
||||||
console.error("failed to try to persist in safary: ", error);
|
|
||||||
}
|
|
||||||
|
|
||||||
m.route.prefix = "";
|
m.route.prefix = "";
|
||||||
m.route(document.body, "/", {
|
m.route(document.body, "/", {
|
||||||
"/": {
|
"/": {
|
||||||
|
|||||||
65
ui/safari-persist.js
Normal file
65
ui/safari-persist.js
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
"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,5 +1,6 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
import SafariPersist from "./safari-persist.js";
|
||||||
import Session from "/models/session.js";
|
import Session from "/models/session.js";
|
||||||
|
|
||||||
export default class SessionList {
|
export default class SessionList {
|
||||||
@ -7,6 +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),
|
||||||
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