-
Register
+
Register
Vesting
{#if config.network.name === 'ropsten'}
Orgs
diff --git a/src/base/home/Home.svelte b/src/base/home/Index.svelte
similarity index 92%
rename from src/base/home/Home.svelte
rename to src/base/home/Index.svelte
index 4000fedcb..ed0474e97 100644
--- a/src/base/home/Home.svelte
+++ b/src/base/home/Index.svelte
@@ -3,7 +3,7 @@
let input: string = "";
const search = () => {
- navigate(`/resolve?${
+ navigate(`/resolver/query?${
new URLSearchParams({ q: input })
}`);
};
diff --git a/src/base/orgs/Orgs.svelte b/src/base/orgs/Index.svelte
similarity index 100%
rename from src/base/orgs/Orgs.svelte
rename to src/base/orgs/Index.svelte
diff --git a/src/base/orgs/Routes.svelte b/src/base/orgs/Routes.svelte
index 9eb2c7cfe..02f596d20 100644
--- a/src/base/orgs/Routes.svelte
+++ b/src/base/orgs/Routes.svelte
@@ -1,16 +1,16 @@
-
+
-
+
diff --git a/src/base/orgs/Profile.svelte b/src/base/orgs/View.svelte
similarity index 91%
rename from src/base/orgs/Profile.svelte
rename to src/base/orgs/View.svelte
index 18f71966b..c6cab1fbb 100644
--- a/src/base/orgs/Profile.svelte
+++ b/src/base/orgs/View.svelte
@@ -4,8 +4,8 @@
import type { SvelteComponent } from 'svelte';
import { navigate } from 'svelte-routing';
import type { Config } from '@app/config';
- import type { Registration } from '@app/base/register/registrar';
- import { getRegistration } from '@app/base/register/registrar';
+ import type { Registration } from '@app/base/registrations/registrar';
+ import { getRegistration } from '@app/base/registrations/registrar';
import { parseEnsLabel, explorerLink } from '@app/utils';
import { Org } from './Org';
import { session } from '@app/session';
@@ -14,6 +14,7 @@
import Error from '@app/Error.svelte';
import Icon from '@app/Icon.svelte';
import SetName from '@app/ens/SetName.svelte';
+ import * as utils from '@app/utils';
export let address: string;
export let config: Config;
@@ -144,10 +145,12 @@
{address}
Sorry, there is no Org at this address.
-
- View in explorer
- ↗
-
+ {#if utils.isAddress(address)}
+
+ View in explorer
+ ↗
+
+ {/if}
{:else if state === State.NameUnavailable}
-
- Register →
+ Register →
{/if}
diff --git a/src/base/register/registrar.ts b/src/base/registrations/registrar.ts
similarity index 100%
rename from src/base/register/registrar.ts
rename to src/base/registrations/registrar.ts
diff --git a/src/base/register/resolver.ts b/src/base/registrations/resolver.ts
similarity index 100%
rename from src/base/register/resolver.ts
rename to src/base/registrations/resolver.ts
diff --git a/src/base/register/state.ts b/src/base/registrations/state.ts
similarity index 100%
rename from src/base/register/state.ts
rename to src/base/registrations/state.ts
diff --git a/src/base/resolve/Resolve.svelte b/src/base/resolver/Query.svelte
similarity index 67%
rename from src/base/resolve/Resolve.svelte
rename to src/base/resolver/Query.svelte
index 3da4790e9..95f353772 100644
--- a/src/base/resolve/Resolve.svelte
+++ b/src/base/resolver/Query.svelte
@@ -4,10 +4,13 @@
import { navigate } from 'svelte-routing';
import type { Config } from '@app/config';
import * as utils from '@app/utils';
+ import Error from '@app/Error.svelte';
export let config: Config;
export let query: string | null;
+ let error = false;
+
onMount(() => {
if (query) {
if (ethers.utils.isAddress(query)) {
@@ -18,10 +21,22 @@
alert("Radicle IDs are not yet supported");
} else {
let label = utils.parseEnsLabel(query, config);
- navigate(`/registrations/${label}`, { replace: true });
+ if (label.includes(".")) {
+ error = true;
+ } else {
+ navigate(`/registrations/${label}`, { replace: true });
+ }
}
} else {
navigate('/');
}
});
+
+
+ {#if error}
+ navigate('/')}>
+ Invalid query string “{query}”
+
+ {/if}
+
diff --git a/src/base/resolve/Routes.svelte b/src/base/resolver/Routes.svelte
similarity index 72%
rename from src/base/resolve/Routes.svelte
rename to src/base/resolver/Routes.svelte
index 3885a489f..38c6651fa 100644
--- a/src/base/resolve/Routes.svelte
+++ b/src/base/resolver/Routes.svelte
@@ -1,12 +1,12 @@
-
+
diff --git a/src/base/vesting/Vesting.svelte b/src/base/vesting/Index.svelte
similarity index 100%
rename from src/base/vesting/Vesting.svelte
rename to src/base/vesting/Index.svelte
diff --git a/src/utils.ts b/src/utils.ts
index 6fe1851bb..2fc345606 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -19,7 +19,7 @@ export function capitalize(s: string) {
// Takes a domain name, eg. 'cloudhead.radicle.eth' and
// returns the label, eg. 'cloudhead', otherwise `null`.
-export function parseEnsLabel(name: string, config: Config): string | null {
+export function parseEnsLabel(name: string, config: Config): string {
let domain = config.registrar.domain.replace(".", "\\.");
let label = name.replace(new RegExp(`\\.${domain}$`), "");