login stuff and user profile
This commit is contained in:
@@ -1,11 +1,12 @@
|
|||||||
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';
|
||||||
|
import { browser } from '$app/environment';
|
||||||
|
|
||||||
let relays;
|
let relays;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
relays = localStorage.getItem('relays');
|
if (browser) relays = localStorage.getItem('relays');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { get, writable } from 'svelte/store';
|
import { writable } from 'svelte/store';
|
||||||
// import { ndk } from "$lib/stores/nostr";
|
// import { ndk } from "$lib/stores/nostr";
|
||||||
// import type { NDKUser } from "@nostr-dev-kit/ndk";
|
// import type { NDKUser } from "@nostr-dev-kit/ndk";
|
||||||
|
|
||||||
|
|||||||
@@ -11,14 +11,18 @@ import { bunkerNDK, ndk } from '$lib/stores/nostr';
|
|||||||
import { currentUser } from '$lib/store';
|
import { currentUser } from '$lib/store';
|
||||||
import { loginState } from '$lib/stores/sesson';
|
import { loginState } from '$lib/stores/sesson';
|
||||||
import { get } from 'svelte/store';
|
import { get } from 'svelte/store';
|
||||||
|
import { browser } from '$app/environment';
|
||||||
|
|
||||||
export type LoginMethod = 'none' | 'pk' | 'nip07' | 'nip46';
|
export type LoginMethod = 'none' | 'pk' | 'nip07' | 'nip46';
|
||||||
let $ndk = get(ndk);
|
|
||||||
const $bunkerNDK = get(bunkerNDK);
|
let $ndk: NDK;
|
||||||
|
const $bunkerNDK: NDK = 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;
|
||||||
|
$ndk = get(ndk);
|
||||||
|
|
||||||
switch (method) {
|
switch (method) {
|
||||||
case 'none':
|
case 'none':
|
||||||
@@ -67,7 +71,7 @@ async function pkSignin(key: string): Promise<NDKUser | null> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function nip07Login(ndk: NDK): Promise<NDKUser | null> {
|
async function nip07Login(ndk: NDK): Promise<NDKUser | null> {
|
||||||
const storedNpub = localStorage.getItem('pubkey');
|
const storedNpub = browser ? localStorage.getItem('pubkey') : '';
|
||||||
let user: NDKUser | null = null;
|
let user: NDKUser | null = null;
|
||||||
|
|
||||||
if (storedNpub) {
|
if (storedNpub) {
|
||||||
@@ -80,8 +84,9 @@ async function nip07Login(ndk: NDK): Promise<NDKUser | null> {
|
|||||||
try {
|
try {
|
||||||
ndk.signer = new NDKNip07Signer();
|
ndk.signer = new NDKNip07Signer();
|
||||||
user = await ndk.signer?.blockUntilReady();
|
user = await ndk.signer?.blockUntilReady();
|
||||||
|
user.ndk = ndk;
|
||||||
|
user.fetchProfile();
|
||||||
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);
|
||||||
|
|||||||
22
src/routes/[id]/(profile)/+layout.svelte
Normal file
22
src/routes/[id]/(profile)/+layout.svelte
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { page } from "$app/stores";
|
||||||
|
import { ndk } from "$lib/stores/nostr";
|
||||||
|
import type NDK from "@nostr-dev-kit/ndk";
|
||||||
|
import { onMount } from "svelte";
|
||||||
|
import { get } from "svelte/store";
|
||||||
|
|
||||||
|
let id: string;
|
||||||
|
let { user } = $page.data;
|
||||||
|
let _ndk: NDK;
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
_ndk = get(ndk);
|
||||||
|
})
|
||||||
|
|
||||||
|
$: if (id !== $page.params.id){
|
||||||
|
id = $page.params.id;
|
||||||
|
user.ndk = _ndk;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
22
src/routes/[id]/(profile)/+page.svelte
Normal file
22
src/routes/[id]/(profile)/+page.svelte
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { page } from "$app/stores";
|
||||||
|
import { ndk } from "$lib/stores/nostr";
|
||||||
|
import type NDK from "@nostr-dev-kit/ndk";
|
||||||
|
import { onMount } from "svelte";
|
||||||
|
import { get } from "svelte/store";
|
||||||
|
|
||||||
|
let id: string;
|
||||||
|
let { user } = $page.data;
|
||||||
|
let _ndk: NDK;
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
_ndk = get(ndk);
|
||||||
|
})
|
||||||
|
|
||||||
|
$: if (id !== $page.params.id){
|
||||||
|
id = $page.params.id;
|
||||||
|
user.ndk = _ndk;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
4
src/routes/[id]/+layout.svelte
Normal file
4
src/routes/[id]/+layout.svelte
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { page } from "$app/stores";
|
||||||
|
import type { NDKUser } from "@nostr-dev-kit/ndk";
|
||||||
|
</script>
|
||||||
@@ -4,12 +4,12 @@ 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';
|
||||||
|
import { browser } from '$app/environment';
|
||||||
|
|
||||||
const _ndk = get(ndk);
|
const _ndk = get(ndk);
|
||||||
|
|
||||||
export async function browserSetup() {
|
export async function browserSetup() {
|
||||||
const pubkey = localStorage.getItem('pubkey');
|
const pubkey = browser ? localStorage.getItem('pubkey') : '';
|
||||||
console.debug(pubkey);
|
|
||||||
|
|
||||||
if (pubkey) {
|
if (pubkey) {
|
||||||
const u = _ndk.getUser({ pubkey });
|
const u = _ndk.getUser({ pubkey });
|
||||||
|
|||||||
Reference in New Issue
Block a user