diff --git a/src/Message.svelte b/src/Message.svelte new file mode 100644 index 000000000..dce4af7ea --- /dev/null +++ b/src/Message.svelte @@ -0,0 +1,18 @@ + + + + +
diff --git a/src/base/registrations/New.svelte b/src/base/registrations/New.svelte index 1fc00bb4e..5d531074b 100644 --- a/src/base/registrations/New.svelte +++ b/src/base/registrations/New.svelte @@ -8,11 +8,13 @@ import Connect from '@app/Connect.svelte'; import Modal from '@app/Modal.svelte'; import Loading from '@app/Loading.svelte'; + import Message from '@app/Message.svelte'; import { registrar, registrationFee } from './registrar'; enum State { CheckingAvailability, + CheckingFailed, NameAvailable, NameUnavailable, } @@ -23,6 +25,7 @@ let fee: string; let state = State.CheckingAvailability; + let error: string | null = null; $: registrationOwner = owner || ($session && $session.address); function begin() { @@ -32,17 +35,22 @@ } onMount(async () => { - const [_fee, isAvailable] = await Promise.all([ - registrationFee(config), - registrar(config).available(subdomain), - ]); + try { + const [_fee, isAvailable] = await Promise.all([ + registrationFee(config), + registrar(config).available(subdomain), + ]); - fee = formatBalance(_fee); + fee = formatBalance(_fee); - if (isAvailable) { - state = State.NameAvailable; - } else { - state = State.NameUnavailable; + if (isAvailable) { + state = State.NameAvailable; + } else { + state = State.NameUnavailable; + } + } catch (err) { + state = State.CheckingFailed; + error = err.message; } }); @@ -71,6 +79,10 @@ The name {subdomain} is not available for registration. {:else if state === State.CheckingAvailability}