diff --git a/main.js b/main.js index 59ee82f7..c94fc3df 100644 --- a/main.js +++ b/main.js @@ -589,6 +589,7 @@ const SETTINGS_DEFAULTS = { { id: "whatsapp", url: "https://web.whatsapp.com/", title: "WhatsApp" }, { id: "x", url: "https://x.com/", title: "X" }, { id: "youtube", url: "https://www.youtube.com/", title: "YouTube" }, + { id: "proton", url: "https://mail.proton.me/", title: "Proton Mail" }, ], // Settings › Sidebar. Per-app panel widths and pins (keys "q:" / // "p:"), extension panels the user took off the strip, and when @@ -665,6 +666,23 @@ function loadSettings() { settings.quickLinks = SETTINGS_DEFAULTS.quickLinks.map((L) => ({ ...L })); } } catch (e) { console.warn("quickLinks migrate:", e?.message); } + // A web app added to the default sidebar after a profile was made is put on + // that profile's strip once (the saved list never picks up new defaults by + // itself). quickLinksOffered remembers it, so one the user removes stays + // removed. Kept out of SETTINGS_DEFAULTS so an old profile reads as "never offered". + try { + const LATER_DEFAULTS = ["proton"]; // added in 0.3.88 + const offered = Array.isArray(settings.quickLinksOffered) ? settings.quickLinksOffered.slice() : []; + const have = Array.isArray(settings.quickLinks) ? settings.quickLinks : null; + let changed = false; + for (const id of LATER_DEFAULTS) { + if (offered.includes(id)) continue; + offered.push(id); changed = true; + const def = SETTINGS_DEFAULTS.quickLinks.find((L) => L.id === id); + if (have && def && !have.some((L) => L && L.id === id)) have.push({ ...def }); + } + if (changed) { settings.quickLinksOffered = offered; saveSettings(); } + } catch (e) { console.warn("quickLinks offer:", e?.message); } // Translator moved from a single `translateEndpoint` to a peer list in // the same release that shipped the chip. A custom endpoint comes along // as the primary peer; the historical LibreTranslate.com default is diff --git a/quicklinks.html b/quicklinks.html index c16a2c0a..5f4eadcd 100644 --- a/quicklinks.html +++ b/quicklinks.html @@ -72,6 +72,8 @@ whatsapp: '', messenger: '', youtube: '', + // Proton Mail: an envelope in Proton's purple. + proton: '', spotify: '', discord: '', };