blob: 49d75dc6ad8e366100ca849426f5594a1b1262d0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<script>
import { fail, post, wait } from "$lib/utils";
import { onMount } from "svelte";
import { goto, invalidate } from "$app/navigation";
import Pin from "$comp/Pin.svelte";
import Spinner from "$comp/Spinner.svelte";
import { loginRedirect, pin, password } from "$lib/store";
import { generate } from "$lib/nostr";
import { browser } from "$app/environment";
export let data;
let { user } = data;
let loaded;
let gen = async () => {
if (!browser) return;
if (user.pubkey) {
goto($loginRedirect || `/${user.username}`, { invalidateAll: true });
return;
}
try {
await generate(user);
} catch (e) {
console.log("error generating", e);
}
try {
user.pin = $pin;
await post(`/generate`, user);
goto($loginRedirect || `/${user.username}`, { invalidateAll: true });
} catch (e) {
$pin = "";
if (e.message?.startsWith("Pin")) {
fail("Wrong pin, try again");
} else {
fail("Failed to generate keys");
goto("/");
}
}
};
onMount(() => browser && setTimeout(() => (loaded = true) && gen(), 50));
$: $pin?.length === 6 && gen(user);
</script>
{#if loaded && user?.haspin && $pin?.length !== 6}
<Pin />
{/if}
<div class="container px-4 text-center mx-auto">
<h1 class="text-3xl md:text-4xl font-bold mb-6">
Generating new account keys
</h1>
<div class="flex w-full py-5 max-w-[200px] mx-auto bg-black rounded-2xl">
<Spinner />
</div>
</div>
|