Login stuff
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
<script lang="ts">
|
||||
import NavBar from '$lib/components/NavBar.svelte';
|
||||
import LoginModal from '$lib/components/LoginModal/Modal.svelte';
|
||||
import { ndk } from '$lib/stores/nostr';
|
||||
import { NDKNip07Signer } from '@nostr-dev-kit/ndk';
|
||||
import { login } from "$lib/utils/login";
|
||||
import { browserSetup } from "./browser-setup";
|
||||
import { onMount } from 'svelte';
|
||||
|
||||
let modalActive = false;
|
||||
@@ -11,32 +11,14 @@
|
||||
await signIn();
|
||||
});
|
||||
|
||||
function toggleModal() {
|
||||
modalActive=!modalActive;
|
||||
}
|
||||
async function signIn() {
|
||||
modalActive = !modalActive;
|
||||
console.debug('signIn called');
|
||||
let signer;
|
||||
try {
|
||||
signer = await new NDKNip07Signer();
|
||||
} catch (e) {}
|
||||
console.log(signer);
|
||||
|
||||
//if (!signer) return;
|
||||
|
||||
$ndk.signer = signer;
|
||||
|
||||
const pubkey = await signer?.user();
|
||||
console.log(pubkey);
|
||||
|
||||
if (pubkey) {
|
||||
$ndk.activeUser = pubkey;
|
||||
await $ndk.activeUser.fetchProfile();
|
||||
console.log($ndk.activeUser);
|
||||
}
|
||||
|
||||
await $ndk.connect();
|
||||
browserSetup();
|
||||
}
|
||||
</script>
|
||||
|
||||
<NavBar on:signin={signIn} />
|
||||
<NavBar on:signin={toggleModal} />
|
||||
<slot></slot>
|
||||
<LoginModal active={modalActive} />
|
||||
<LoginModal active={modalActive} on:toggleModal={toggleModal} />
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { ndk } from '$lib/stores/nostr.js';
|
||||
import { NDKHighlight } from '@nostr-dev-kit/ndk';
|
||||
import { RelayList } from '@nostr-dev-kit/ndk-svelte-components';
|
||||
const img = 'https://picsum.photos/800/500';
|
||||
|
||||
// export let data;
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
|
||||
47
src/routes/browser-setup.ts
Normal file
47
src/routes/browser-setup.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import { loginState } from "$lib/stores/sesson";
|
||||
import { loggedIn, login, type LoginMethod } from "$lib/utils/login";
|
||||
import { ndk } from "$lib/stores/nostr";
|
||||
import { get } from "svelte/store";
|
||||
import { currentUser } from "$lib/store";
|
||||
import { NDKNip07Signer, NDKUser } from "@nostr-dev-kit/ndk";
|
||||
|
||||
const _ndk = get(ndk);
|
||||
|
||||
export async function browserSetup() {
|
||||
const pubkey = localStorage.getItem('pubkey');
|
||||
console.debug(pubkey);
|
||||
|
||||
if (pubkey){
|
||||
const u = _ndk.getUser({pubkey});
|
||||
u.fetchProfile();
|
||||
loginState.set('logging-in')
|
||||
currentUser.set(u);
|
||||
}
|
||||
|
||||
const method = localStorage.getItem('nostr-key-method') as LoginMethod;
|
||||
|
||||
if (!pubkey && method !== 'none') return newSessionTryNip07();
|
||||
|
||||
if (method && pubkey) {
|
||||
return await login(method, pubkey);
|
||||
}
|
||||
}
|
||||
|
||||
export async function newSessionTryNip07() {
|
||||
let signer: NDKNip07Signer | undefined;
|
||||
let u: NDKUser | null | undefined;
|
||||
|
||||
try {
|
||||
console.debug('trying nip07 signer');
|
||||
signer = new NDKNip07Signer();
|
||||
u = await signer.blockUntilReady();
|
||||
u.fetchProfile();
|
||||
} catch (e) {
|
||||
console.debug('nip07Signer failed', e);
|
||||
}
|
||||
|
||||
if (u && signer) {
|
||||
console.debug('nip07Signer succeeded');
|
||||
await loggedIn(signer, u, 'nip07');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user