diff --git a/css/styles.css b/css/styles.css index 212d497..56d0aa0 100644 --- a/css/styles.css +++ b/css/styles.css @@ -391,7 +391,7 @@ details.cw summary { -webkit-backdrop-filter: blur(20px); } .modal.scrollable { - overflow: scroll; + overflow-y: auto; } .modal.closed { opacity: 0; diff --git a/js/main.js b/js/main.js index f5b731e..492d364 100644 --- a/js/main.js +++ b/js/main.js @@ -30,19 +30,18 @@ addEventListener('DOMContentLoaded', (ev) => { async function damus_web_init() { let tries = 0; - function init() { - // only wait for 500ms max - const max_wait = 500; - const interval = 20; + const max_wait = 500; + const interval = 20; + async function init() { if (window.nostr || tries >= (max_wait/interval)) { log_info("init after", tries); - damus_web_init_ready(); + await damus_web_init_ready(); return; } tries++; - setTimeout(init, interval); + await init(); } - init(); + setTimeout(init, interval); } async function damus_web_init_ready() { @@ -60,13 +59,19 @@ async function damus_web_init_ready() { async function signin() { const model = DAMUS; - model.pubkey = await get_pubkey(); + try { + model.pubkey = await get_pubkey(); + } catch (err) { + window.alert("An error occured trying to get your public key."); + return; + } if (!model.pubkey) { + window.alert("No public key was aquired."); return; } find_node("#container-welcome").classList.add("hide"); find_node("#container-app").classList.remove("hide"); - webapp_init(); + await webapp_init(); } async function webapp_init() { diff --git a/js/ui/util.js b/js/ui/util.js index 175c8e2..e6875db 100644 --- a/js/ui/util.js +++ b/js/ui/util.js @@ -245,9 +245,13 @@ async function get_pubkey(use_prompt=true) { return pubkey if (window.nostr && window.nostr.getPublicKey) { log_debug("calling window.nostr.getPublicKey()...") - const pubkey = await window.nostr.getPublicKey() + try { + pubkey = await window.nostr.getPublicKey() + return await handle_pubkey(pubkey) + } catch (err) { + return; + } log_debug("got %s pubkey from nos2x", pubkey) - return await handle_pubkey(pubkey) } if (!use_prompt) return;