Login stuff
This commit is contained in:
@@ -1,29 +1,45 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import UserInterface from '$lib/interfaces/user';
|
|
||||||
import { ndk } from '$lib/stores/nostr';
|
import { ndk } from '$lib/stores/nostr';
|
||||||
import { currentUser } from '$lib/store';
|
import { currentUser } from '$lib/store';
|
||||||
import type { NDKUserProfile, NDKUser } from '@nostr-dev-kit/ndk';
|
import NDK, { NDKUser } from '@nostr-dev-kit/ndk';
|
||||||
import { get } from 'svelte/store';
|
import { get } from 'svelte/store';
|
||||||
|
import { onMount } from 'svelte';
|
||||||
|
|
||||||
let image: string | undefined;
|
let image: string | undefined;
|
||||||
const _ndk = get(ndk);
|
let _ndk = get(ndk);
|
||||||
|
let sessionProfile: NDKUser | null = null;
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
const sessionProfileObj = sessionStorage.getItem('user');
|
||||||
|
sessionProfile = sessionProfileObj ? JSON.parse(sessionProfileObj) : null;
|
||||||
|
if (sessionProfile) {
|
||||||
|
image = sessionProfile.profile?.image;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const _currentUser = get(currentUser);
|
||||||
|
|
||||||
let random = (Math.random() + 1).toString(36).substring(6);
|
let random = (Math.random() + 1).toString(36).substring(6);
|
||||||
|
|
||||||
let defaultImage = `https://robohash.org/${random}`;
|
let defaultImage = `https://robohash.org/${random}`;
|
||||||
|
|
||||||
if (!_ndk.activeUser?.profile?.image) {
|
image = defaultImage;
|
||||||
image = defaultImage;
|
|
||||||
} else {
|
$: {
|
||||||
image = _ndk.activeUser.profile.image;
|
console.debug(sessionProfile);
|
||||||
|
image = sessionProfile?.profile?.image;
|
||||||
}
|
}
|
||||||
|
|
||||||
$: {image = _ndk.activeUser?.profile?.image;}
|
$: ndkUpdated(_ndk);
|
||||||
// $: {
|
|
||||||
// //image = $currentUser?.profile?.image;
|
function ndkUpdated(_ndk: NDK) {
|
||||||
// image = _ndk.activeUser?.profile?.image;
|
console.debug('NDK updated');
|
||||||
// console.debug(image);
|
if (_ndk.activeUser && _ndk.activeUser.profile && _ndk.activeUser.profile.image) {
|
||||||
// }
|
image = _ndk.activeUser.profile.image;
|
||||||
|
} else {
|
||||||
|
image = defaultImage;
|
||||||
|
}
|
||||||
|
_ndk = _ndk;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<figure class="image">
|
<figure class="image">
|
||||||
|
|||||||
@@ -4,8 +4,10 @@
|
|||||||
import { currentUser } from '$lib/store';
|
import { currentUser } from '$lib/store';
|
||||||
import { browser } from '$app/environment';
|
import { browser } from '$app/environment';
|
||||||
import { createEventDispatcher } from 'svelte';
|
import { createEventDispatcher } from 'svelte';
|
||||||
|
import { get } from 'svelte/store';
|
||||||
|
|
||||||
let noNip07: boolean;
|
let noNip07: boolean;
|
||||||
|
let _ndk = get(ndk);
|
||||||
|
|
||||||
$: if (browser) {
|
$: if (browser) {
|
||||||
noNip07 = !window.nostr;
|
noNip07 = !window.nostr;
|
||||||
@@ -14,13 +16,14 @@
|
|||||||
const dispatch = createEventDispatcher();
|
const dispatch = createEventDispatcher();
|
||||||
|
|
||||||
async function nip07Login() {
|
async function nip07Login() {
|
||||||
const user = await login($ndk, undefined, 'nip07');
|
const user = await login('nip07', undefined);
|
||||||
if (!user) alert('Nip07 Login Failed');
|
if (!user) alert('Nip07 Login Failed');
|
||||||
else {
|
else {
|
||||||
$currentUser = user;
|
$currentUser = user;
|
||||||
$currentUser.fetchProfile();
|
await $currentUser.fetchProfile();
|
||||||
localStorage.setItem('nostr-key-method', 'nip07');
|
localStorage.setItem('nostr-key-method', 'nip07');
|
||||||
localStorage.setItem('nostr-target-npub', $currentUser.npub);
|
localStorage.setItem('nostr-target-npub', $currentUser.npub);
|
||||||
|
_ndk.activeUser = $currentUser;
|
||||||
dispatch('closeModal');
|
dispatch('closeModal');
|
||||||
console.debug($currentUser);
|
console.debug($currentUser);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {} from '@nostr-dev-kit/ndk-svelte-components';
|
|
||||||
import Avatar from '$lib/components/Avatar.svelte';
|
import Avatar from '$lib/components/Avatar.svelte';
|
||||||
import { ndk } from '$lib/stores/nostr';
|
import { ndk } from '$lib/stores/nostr';
|
||||||
import { currentUser } from '$lib/store';
|
import { currentUser } from '$lib/store';
|
||||||
@@ -9,11 +8,6 @@
|
|||||||
|
|
||||||
let active = false;
|
let active = false;
|
||||||
|
|
||||||
let avatarimage: string | undefined;
|
|
||||||
$: {
|
|
||||||
avatarimage = $currentUser?.profile?.image;
|
|
||||||
}
|
|
||||||
|
|
||||||
function signIn() {
|
function signIn() {
|
||||||
console.debug('signing in');
|
console.debug('signing in');
|
||||||
dispatch('signin');
|
dispatch('signin');
|
||||||
@@ -24,8 +18,7 @@
|
|||||||
<div class="navbar-brand">
|
<div class="navbar-brand">
|
||||||
<h1 class="title is-1">CoFabricate</h1>
|
<h1 class="title is-1">CoFabricate</h1>
|
||||||
<!-- svelte-ignore a11y-missing-attribute -->
|
<!-- svelte-ignore a11y-missing-attribute -->
|
||||||
<a
|
<button
|
||||||
role="button"
|
|
||||||
class="navbar-burger"
|
class="navbar-burger"
|
||||||
class:is-active={active}
|
class:is-active={active}
|
||||||
aria-label="menu"
|
aria-label="menu"
|
||||||
@@ -37,19 +30,32 @@
|
|||||||
<span aria-hidden="true"></span>
|
<span aria-hidden="true"></span>
|
||||||
<span aria-hidden="true"></span>
|
<span aria-hidden="true"></span>
|
||||||
<span aria-hidden="true"></span>
|
<span aria-hidden="true"></span>
|
||||||
</a>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="mainMenu" class="navbar-menu" class:is-active={active}>
|
<div id="mainMenu" class="navbar-menu" class:is-active={active}>
|
||||||
<div class="navbar-end">
|
<div class="navbar-end">
|
||||||
<div class="navbar-item">
|
<div class="navbar-item">
|
||||||
<div class="buttons">
|
<a class="button" href="/">Home</a>
|
||||||
<a class="button" href="/">Home</a>
|
</div>
|
||||||
<a class="button" href="/about">About</a>
|
<div class="navbar-item">
|
||||||
<button on:click={signIn}>
|
<a class="button" href="/about">About</a>
|
||||||
<Avatar />
|
</div>
|
||||||
</button>
|
<div class="navbar-item">
|
||||||
</div>
|
<button on:click={signIn}>
|
||||||
|
<Avatar />
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- <div id="mobileMenu" class="navbar-menu is-hidden-desktop" class:is-active={active}>
|
||||||
|
<aside class="menu">
|
||||||
|
</aside>
|
||||||
|
</div> -->
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.nav-menu {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
10
src/lib/components/User/UserProfile.svelte
Normal file
10
src/lib/components/User/UserProfile.svelte
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { currentUser } from '$lib/store';
|
||||||
|
import { ndk } from '$lib/stores/nostr';
|
||||||
|
import { NDKList } from '@nostr-dev-kit/ndk';
|
||||||
|
import { get, writable } from 'svelte/store';
|
||||||
|
|
||||||
|
const $ndk = get(ndk);
|
||||||
|
|
||||||
|
export const userBlossom = writable<NDKList | null>(null);
|
||||||
|
</script>
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
import { writable } from "svelte/store";
|
import { writable } from 'svelte/store';
|
||||||
import { NDKUser } from "@nostr-dev-kit/ndk";
|
import { NDKUser } from '@nostr-dev-kit/ndk';
|
||||||
|
|
||||||
export const currentUser = writable<NDKUser | null>(null);
|
export const currentUser = writable<NDKUser | null>(null);
|
||||||
export const currentUserFollowPubkeys = writable<string[] | undefined>(undefined);
|
export const currentUserFollowPubkeys = writable<string[] | undefined>(undefined);
|
||||||
export const backgroundBanner = writable<string | null>(null);
|
export const backgroundBanner = writable<string | null>(null);
|
||||||
|
|
||||||
export type ScopeSelection = {
|
export type ScopeSelection = {
|
||||||
label: string;
|
label: string;
|
||||||
id: string;
|
id: string;
|
||||||
pubkeys: string[] | undefined;
|
pubkeys: string[] | undefined;
|
||||||
};
|
};
|
||||||
export const currentScope = writable<ScopeSelection>({
|
export const currentScope = writable<ScopeSelection>({
|
||||||
label: 'global',
|
label: 'global',
|
||||||
id: 'global',
|
id: 'global',
|
||||||
pubkeys: undefined,
|
pubkeys: undefined
|
||||||
});
|
});
|
||||||
|
|
||||||
let zapEvent: any;
|
let zapEvent: any;
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
import { writable } from 'svelte/store';
|
import { writable } from 'svelte/store';
|
||||||
import NDKSvelte from '@nostr-dev-kit/ndk-svelte';
|
//import NDKSvelte from '@nostr-dev-kit/ndk-svelte';
|
||||||
import NDK from '@nostr-dev-kit/ndk';
|
import NDK from '@nostr-dev-kit/ndk';
|
||||||
|
|
||||||
let relays;
|
let relays;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
relays = localStorage.getItem('relays');
|
relays = localStorage.getItem('relays');
|
||||||
} catch (e) {}
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
|
||||||
let relayList: string[] = [];
|
let relayList: string[] = [];
|
||||||
|
|
||||||
@@ -31,11 +33,10 @@ const _ndk: NDK = new NDK({
|
|||||||
|
|
||||||
_ndk.connect();
|
_ndk.connect();
|
||||||
|
|
||||||
console.log(_ndk.activeUser?.profile);
|
console.debug('Nostr store current user: ', _ndk.activeUser?.profile);
|
||||||
|
|
||||||
const ndkStore = writable(_ndk);
|
const ndkStore = writable(_ndk);
|
||||||
|
|
||||||
|
|
||||||
export const ndk = ndkStore;
|
export const ndk = ndkStore;
|
||||||
|
|
||||||
const _bunkerNDK = new NDK({
|
const _bunkerNDK = new NDK({
|
||||||
|
|||||||
@@ -1,4 +1,12 @@
|
|||||||
import { writable } from "svelte/store";
|
import { get, writable } from 'svelte/store';
|
||||||
|
// import { ndk } from "$lib/stores/nostr";
|
||||||
|
// import type { NDKUser } from "@nostr-dev-kit/ndk";
|
||||||
|
|
||||||
|
// let $ndk = get(ndk);
|
||||||
|
|
||||||
|
// export let user: NDKUser | undefined = undefined;
|
||||||
|
|
||||||
export type LoginState = 'logging-in' | 'logged-in' | 'contacting-remote-signer' | 'logged-out';
|
export type LoginState = 'logging-in' | 'logged-in' | 'contacting-remote-signer' | 'logged-out';
|
||||||
export const loginState = writable<LoginState | null>(null);
|
export const loginState = writable<LoginState | null>(null);
|
||||||
|
|
||||||
|
// if ($ndk.cacheAdapter?.fetchProfile)
|
||||||
|
|||||||
@@ -1,82 +1,82 @@
|
|||||||
import { findEphemeralSigner } from "$lib/signers/ephemeral";
|
import { findEphemeralSigner } from '$lib/signers/ephemeral';
|
||||||
import { NDKPrivateKeySigner, type NDKSigner, type NDKUser } from "@nostr-dev-kit/ndk";
|
import NDK, { NDKPrivateKeySigner, type NDKSigner, type NDKUser } from '@nostr-dev-kit/ndk';
|
||||||
import { writable, get as getStore, derived } from "svelte/store";
|
import { writable, get as getStore, derived } from 'svelte/store';
|
||||||
import ndkStore from "./nostr";
|
import { ndk } from './nostr';
|
||||||
import { currentUser as currentUserStore } from "../store";
|
import { currentUser as currentUserStore } from '../store';
|
||||||
import type NDKList from "$lib/ndk-kinds/lists";
|
import type NDKList from '$lib/ndk-kinds/lists';
|
||||||
|
|
||||||
export type SignerStoreItem = {
|
export type SignerStoreItem = {
|
||||||
signer: NDKPrivateKeySigner;
|
signer: NDKPrivateKeySigner;
|
||||||
user: NDKUser;
|
user: NDKUser;
|
||||||
saved: boolean;
|
saved: boolean;
|
||||||
name?: string;
|
name?: string;
|
||||||
id: string;
|
id: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
type SignerItems = Map<string, SignerStoreItem>;
|
type SignerItems = Map<string, SignerStoreItem>;
|
||||||
|
|
||||||
export const signers = writable<SignerItems>(new Map());
|
export const signers = writable<SignerItems>(new Map());
|
||||||
export const npubSigners = derived(signers, ($signers) => {
|
export const npubSigners = derived(signers, ($signers) => {
|
||||||
const npubs = new Map<string, NDKSigner>();
|
const npubs = new Map<string, NDKSigner>();
|
||||||
|
|
||||||
for (const entry of $signers) {
|
for (const entry of $signers) {
|
||||||
const { user, signer } = entry[1];
|
const { user, signer } = entry[1];
|
||||||
|
|
||||||
npubs.set(user.npub, signer);
|
npubs.set(user.npub, signer);
|
||||||
}
|
}
|
||||||
|
|
||||||
return npubs;
|
return npubs;
|
||||||
});
|
});
|
||||||
|
|
||||||
async function getDelegatedSignerName(list: NDKList) {
|
async function getDelegatedSignerName(list: NDKList) {
|
||||||
let name = '';
|
let name = '';
|
||||||
const currentUser: NDKUser = getStore(currentUserStore);
|
const currentUser = getStore(currentUserStore);
|
||||||
|
|
||||||
if (!currentUser?.profile) {
|
if (currentUser && !currentUser.profile) {
|
||||||
currentUser.ndk = getStore(ndkStore);
|
currentUser.ndk = getStore(ndk);
|
||||||
await currentUser?.fetchProfile();
|
await currentUser?.fetchProfile();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentUser?.profile?.name) {
|
if (currentUser?.profile?.name) {
|
||||||
name = currentUser.profile.displayName + `'s `;
|
name = currentUser.profile.displayName + `'s `;
|
||||||
}
|
}
|
||||||
|
|
||||||
return name + list.name;
|
return name + list.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getSigner(list: NDKList): Promise<SignerStoreItem> {
|
export async function getSigner(list: NDKList): Promise<SignerStoreItem> {
|
||||||
const store = getStore(signers);
|
const store = getStore(signers);
|
||||||
const id = list.encode();
|
const id = list.encode();
|
||||||
let item = store.get(id);
|
let item = store.get(id);
|
||||||
|
|
||||||
if (item) return item;
|
if (item) return item;
|
||||||
|
|
||||||
const ndk = getStore(ndkStore);
|
const _ndk: NDK = getStore(ndk);
|
||||||
let signer = await findEphemeralSigner(ndk, ndk.signer!, {
|
let signer = await findEphemeralSigner(_ndk, _ndk.signer!, {
|
||||||
associatedEventNip19: list.encode(),
|
associatedEventNip19: list.encode()
|
||||||
});
|
});
|
||||||
|
|
||||||
if (signer) {
|
if (signer) {
|
||||||
console.log(`found a signer for list ${list.name}`);
|
console.log(`found a signer for list ${list.name}`);
|
||||||
item = {
|
item = {
|
||||||
signer: signer!,
|
signer: signer!,
|
||||||
user: await signer.user(),
|
user: await signer.user(),
|
||||||
saved: true,
|
saved: true,
|
||||||
id,
|
id
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
signer = NDKPrivateKeySigner.generate();
|
signer = NDKPrivateKeySigner.generate();
|
||||||
item = {
|
item = {
|
||||||
signer,
|
signer,
|
||||||
user: await signer.user(),
|
user: await signer.user(),
|
||||||
saved: false,
|
saved: false,
|
||||||
name: await getDelegatedSignerName(list),
|
name: await getDelegatedSignerName(list),
|
||||||
id,
|
id
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
item.user.ndk = ndk;
|
item.user.ndk = _ndk;
|
||||||
|
|
||||||
store.set(id, item);
|
store.set(id, item);
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
@@ -13,10 +13,10 @@ import { loginState } from '$lib/stores/sesson';
|
|||||||
import { get } from 'svelte/store';
|
import { get } from 'svelte/store';
|
||||||
|
|
||||||
export type LoginMethod = 'none' | 'pk' | 'nip07' | 'nip46';
|
export type LoginMethod = 'none' | 'pk' | 'nip07' | 'nip46';
|
||||||
const $ndk = get(ndk);
|
let $ndk = get(ndk);
|
||||||
const $bunkerNDK = get(bunkerNDK);
|
const $bunkerNDK = get(bunkerNDK);
|
||||||
|
|
||||||
export async function login(method: LoginMethod, userPubkey?: string ): Promise<NDKUser | null> {
|
export async function login(method: LoginMethod, userPubkey?: string): Promise<NDKUser | null> {
|
||||||
console.debug(`logging in with ${method}`);
|
console.debug(`logging in with ${method}`);
|
||||||
let u: NDKUser | null | undefined;
|
let u: NDKUser | null | undefined;
|
||||||
|
|
||||||
@@ -25,9 +25,7 @@ export async function login(method: LoginMethod, userPubkey?: string ): Promise<
|
|||||||
loginState.set(null);
|
loginState.set(null);
|
||||||
return null;
|
return null;
|
||||||
case 'pk':
|
case 'pk':
|
||||||
const key = localStorage.getItem('nostr-key');
|
return await pkLogin();
|
||||||
if (!key) return null;
|
|
||||||
else return await pkLogin(key);
|
|
||||||
case 'nip07':
|
case 'nip07':
|
||||||
u = await nip07Login($ndk);
|
u = await nip07Login($ndk);
|
||||||
console.debug('Logged in as: ', u);
|
console.debug('Logged in as: ', u);
|
||||||
@@ -52,11 +50,20 @@ export async function login(method: LoginMethod, userPubkey?: string ): Promise<
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function pkLogin(key: string): Promise<NDKUser | null> {
|
async function pkLogin(): Promise<NDKUser | null> {
|
||||||
|
const key = localStorage.getItem('nostr-key');
|
||||||
|
if (!key) return null;
|
||||||
|
else return await pkSignin(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function pkSignin(key: string): Promise<NDKUser | null> {
|
||||||
const signer = new NDKPrivateKeySigner(key);
|
const signer = new NDKPrivateKeySigner(key);
|
||||||
const u = await signer.user();
|
const user = await signer.user();
|
||||||
if (u) loggedIn(signer, u!, 'pk');
|
if (user) loggedIn(signer, user!, 'pk');
|
||||||
return u;
|
await user.fetchProfile();
|
||||||
|
currentUser.set(user);
|
||||||
|
sessionStorage.setItem('user', JSON.stringify(user));
|
||||||
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function nip07Login(ndk: NDK): Promise<NDKUser | null> {
|
async function nip07Login(ndk: NDK): Promise<NDKUser | null> {
|
||||||
@@ -74,12 +81,19 @@ async function nip07Login(ndk: NDK): Promise<NDKUser | null> {
|
|||||||
ndk.signer = new NDKNip07Signer();
|
ndk.signer = new NDKNip07Signer();
|
||||||
user = await ndk.signer?.blockUntilReady();
|
user = await ndk.signer?.blockUntilReady();
|
||||||
ndk.activeUser = user;
|
ndk.activeUser = user;
|
||||||
|
ndk.activeUser.fetchProfile();
|
||||||
user.ndk = ndk;
|
user.ndk = ndk;
|
||||||
console.debug('Nip07 Login user:', user);
|
console.debug('Nip07 Login user:', user);
|
||||||
console.debug('NDK: ', ndk);
|
console.debug('NDK: ', ndk);
|
||||||
if (user) localStorage.setItem('nostr-key-method', 'nip07');
|
if (user) localStorage.setItem('nostr-key-method', 'nip07');
|
||||||
localStorage.setItem('pubkey', user.pubkey);
|
localStorage.setItem('pubkey', user.pubkey);
|
||||||
} catch (e) {}
|
await user.fetchProfile();
|
||||||
|
currentUser.set(user);
|
||||||
|
sessionStorage.setItem('user', JSON.stringify(user));
|
||||||
|
$ndk = ndk;
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`NIP-07 login error: ${e}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (user) await user.fetchProfile();
|
if (user) await user.fetchProfile();
|
||||||
return user;
|
return user;
|
||||||
|
|||||||
@@ -1,30 +1,31 @@
|
|||||||
import { loginState } from "$lib/stores/sesson";
|
import { loginState } from '$lib/stores/sesson';
|
||||||
import { loggedIn, login, type LoginMethod } from "$lib/utils/login";
|
import { loggedIn, login, type LoginMethod } from '$lib/utils/login';
|
||||||
import { ndk } from "$lib/stores/nostr";
|
import { ndk } from '$lib/stores/nostr';
|
||||||
import { get } from "svelte/store";
|
import { get } from 'svelte/store';
|
||||||
import { currentUser } from "$lib/store";
|
import { currentUser } from '$lib/store';
|
||||||
import { NDKNip07Signer, NDKUser } from "@nostr-dev-kit/ndk";
|
import { NDKNip07Signer, NDKUser } from '@nostr-dev-kit/ndk';
|
||||||
|
|
||||||
const _ndk = get(ndk);
|
const _ndk = get(ndk);
|
||||||
|
|
||||||
export async function browserSetup() {
|
export async function browserSetup() {
|
||||||
const pubkey = localStorage.getItem('pubkey');
|
const pubkey = localStorage.getItem('pubkey');
|
||||||
console.debug(pubkey);
|
console.debug(pubkey);
|
||||||
|
|
||||||
if (pubkey){
|
if (pubkey) {
|
||||||
const u = _ndk.getUser({pubkey});
|
const u = _ndk.getUser({ pubkey });
|
||||||
u.fetchProfile();
|
u.fetchProfile();
|
||||||
loginState.set('logging-in')
|
loginState.set('logging-in');
|
||||||
currentUser.set(u);
|
currentUser.set(u);
|
||||||
}
|
}
|
||||||
|
|
||||||
const method = localStorage.getItem('nostr-key-method') as LoginMethod;
|
const method = localStorage.getItem('nostr-key-method') as LoginMethod;
|
||||||
|
|
||||||
if (!pubkey && method !== 'none') return newSessionTryNip07();
|
if (!pubkey && method !== 'none') return newSessionTryNip07();
|
||||||
|
|
||||||
if (method && pubkey) {
|
if (method && pubkey) {
|
||||||
return await login(method, pubkey);
|
console.debug(`logging in with ${method} as ${pubkey}`);
|
||||||
}
|
return await login(method, pubkey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function newSessionTryNip07() {
|
export async function newSessionTryNip07() {
|
||||||
|
|||||||
Reference in New Issue
Block a user