From 195c9fe604e5fbc90adc5bb974f88edc6665544a Mon Sep 17 00:00:00 2001 From: William Casarin Date: Mon, 31 Oct 2022 09:02:25 -0700 Subject: [PATCH] web: update favicon when there are new notifications handy for pinned tabs --- img/damus.svg | 151 ++++++++++++++-------------- img/damus_notif.svg | 190 ++++++++++++++++++++++++++++++++++++ webv2/damus.js | 19 +++- webv2/img/favicon-notif.ico | Bin 0 -> 16958 bytes webv2/img/favicon.ico | Bin 0 -> 16958 bytes 5 files changed, 284 insertions(+), 76 deletions(-) create mode 100644 img/damus_notif.svg create mode 100644 webv2/img/favicon-notif.ico create mode 100644 webv2/img/favicon.ico diff --git a/img/damus.svg b/img/damus.svg index 7e03640..44b3849 100644 --- a/img/damus.svg +++ b/img/damus.svg @@ -7,8 +7,8 @@ viewBox="0 0 256 256" version="1.1" id="svg5" - inkscape:version="1.2-alpha (0bd5040e, 2022-02-05)" - sodipodi:docname="damus2.svg" + inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" + sodipodi:docname="damus.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" @@ -26,14 +26,16 @@ inkscape:document-units="mm" showgrid="false" inkscape:zoom="0.5946522" - inkscape:cx="405.27892" - inkscape:cy="491.04334" - inkscape:window-width="1435" - inkscape:window-height="844" + inkscape:cx="406.11975" + inkscape:cy="491.88416" + inkscape:window-width="1920" + inkscape:window-height="1060" inkscape:window-x="0" - inkscape:window-y="25" + inkscape:window-y="20" inkscape:window-maximized="0" - inkscape:current-layer="layer2" /> + inkscape:current-layer="svg5" + inkscape:showpageshadow="2" + inkscape:deskcolor="#d1d1d1" /> - - - - - - - - - - - - - - - + id="g407" + inkscape:label="Logo"> + + + + + + + + + + + + + + + + + diff --git a/img/damus_notif.svg b/img/damus_notif.svg new file mode 100644 index 0000000..d1f29be --- /dev/null +++ b/img/damus_notif.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webv2/damus.js b/webv2/damus.js index e9b07c3..f28232d 100644 --- a/webv2/damus.js +++ b/webv2/damus.js @@ -54,13 +54,28 @@ const BOOTSTRAP_RELAYS = [ "wss://nostr-pub.wellorder.net" ] +function update_favicon(path) +{ + let link = document.querySelector("link[rel~='icon']"); + if (!link) { + link = document.createElement('link'); + link.rel = 'icon'; + document.getElementsByTagName('head')[0].appendChild(link); + } + + link.href = path; +} + function update_title(model) { if (document.visibilityState === 'visible') model.notifications = 0 - if (model.notifications === 0) + if (model.notifications === 0) { document.title = "Damus" - else + update_favicon("img/favicon.ico") + } else { document.title = `(${model.notifications}) Damus` + update_favicon("img/favicon-notif.ico") + } } async function damus_web_init() diff --git a/webv2/img/favicon-notif.ico b/webv2/img/favicon-notif.ico new file mode 100644 index 0000000000000000000000000000000000000000..574b68782826c8e26208558c298dab1a5641c804 GIT binary patch literal 16958 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 jWA)=n0~K<2lfw}0=@p~HXh*U+II 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 L{{Q>`%{%bF4cn@0 literal 0 HcmV?d00001