From c90b5ce0b1f675ab5ebc42e23807d56ba5db62c4 Mon Sep 17 00:00:00 2001 From: "@s.roertgen" Date: Wed, 30 Apr 2025 10:54:24 +0200 Subject: [PATCH] enable vote when directly visitng page --- src/app.css | 4 --- src/lib/components/Comment.svelte | 9 ++---- src/lib/index.js | 8 ++++-- src/lib/stores.js | 2 +- src/routes/+layout.svelte | 20 ++++++------- src/routes/q/[id]/+page.svelte | 47 ++++++++++++++----------------- 6 files changed, 40 insertions(+), 50 deletions(-) diff --git a/src/app.css b/src/app.css index b82cc6c..39855e7 100644 --- a/src/app.css +++ b/src/app.css @@ -1,6 +1,2 @@ @import 'tailwindcss'; @plugin "daisyui"; - -html, body { - height: 100%; -} \ No newline at end of file diff --git a/src/lib/components/Comment.svelte b/src/lib/components/Comment.svelte index 341175e..5457c8b 100644 --- a/src/lib/components/Comment.svelte +++ b/src/lib/components/Comment.svelte @@ -9,6 +9,7 @@ let reactions = writable([]); let reacted = writable(window.localStorage.getItem(event.id)); + let reaction = writable({}) async function sendReaction() { const reactionEvent = new NDKEvent($ndk, { @@ -17,6 +18,7 @@ tags: [['e', event.id]] }); await reactionEvent.publish(); + $reaction = reactionEvent; const r = await $ndk.fetchEvents({ kinds: [7], '#e': [event.id] }); console.log('r', r); $reactions = Array.from(r); @@ -39,12 +41,7 @@ } onMount(async () => { - if (!$user) { - console.log('no user, logging in'); - login(); - } const r = await $ndk.fetchEvents({ kinds: [7], '#e': [event.id] }); - console.log('r', r); $reactions = Array.from(r); }); @@ -55,7 +52,7 @@ {#if $reacted} 👍 {$reactions.length} Danke für deinen Vote! - + {:else} {$reactions.length} diff --git a/src/lib/index.js b/src/lib/index.js index e0abc99..93db456 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -11,21 +11,23 @@ export async function login() { const signedUser = await signer.user(); userStore.set(signedUser) } else { + console.log("no extension") const storedPrivateKey = window.localStorage.getItem('nostrPrivateKey'); if (storedPrivateKey) { const privateKey = JSON.parse(storedPrivateKey); console.log("stored private key", privateKey) const signer = new NDKPrivateKeySigner(privateKey); - ndk.signer = signer; const signedUser = await signer.user(); userStore.set(signedUser) - + ndk.signer = signer; + console.log("ndk signer", ndk) + ndkStore.set(ndk) } else { console.log('No private key found, generating a new one...'); const privateKey = NDKPrivateKeySigner.generate(); const signer = new NDKPrivateKeySigner(privateKey.privateKey); console.log('Generated Private Key:', privateKey); - ndk.signer = signer; + const signedUser = await signer.user(); userStore.set(signedUser) diff --git a/src/lib/stores.js b/src/lib/stores.js index e9bda45..c575025 100644 --- a/src/lib/stores.js +++ b/src/lib/stores.js @@ -4,7 +4,7 @@ import { NDKNip07Signer } from "@nostr-dev-kit/ndk"; export let connected = writable(false); -export const ndk = writable(new NDKSvelte); +export const ndk = writable(new NDKSvelte()); export const ndkReady = derived(ndk, $ndk => $ndk !== null); diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 56d0cca..3d775f7 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -5,22 +5,22 @@ import NDKSvelte from '@nostr-dev-kit/ndk-svelte/svelte5'; import { ndk, connected, initializeNDK } from '$lib/stores'; import { browser } from '$app/environment'; + import { login } from '$lib'; let { children } = $props(); onMount(async () => { const nip07signer = new NDKNip07Signer(); if (browser) { - try { - await initializeNDK(); - console.log('NDK initialized successfully'); - connected.set(true); - - } catch (error) { - console.error('Failed to initialize NDK:', error); - } - } - + try { + await initializeNDK(); + console.log('NDK initialized successfully'); + connected.set(true); + await login() + } catch (error) { + console.error('Failed to initialize NDK:', error); + } + } }); diff --git a/src/routes/q/[id]/+page.svelte b/src/routes/q/[id]/+page.svelte index f8d04a2..e1e2c35 100644 --- a/src/routes/q/[id]/+page.svelte +++ b/src/routes/q/[id]/+page.svelte @@ -22,14 +22,6 @@ let comment = ''; let comments = writable([]); - onMount(async () => { - if (!$user) { - console.log('no user, logging in'); - login(); - } - - }); - $effect(() => { if ($ndkReady) { console.log('ndk ready'); @@ -42,24 +34,27 @@ }); -
- {#await $ndk.fetchEvent(data.id) then question} - {#if question} -
-

Question:
{question.content}

-
+
+ {#key $ndkReady} + {#await $ndk.fetchEvent(data.id) then question} + {#if question} +
+

Question:
{question.content}

+
-
-

Ideensammlung

- - -
- {:else} -

Loading...

- {/if} - {:catch error} -

Error fetching question: {error.message}

- {/await} +
+

Ideensammlung

+ + +
+ {:else} +

Loading...

+ {/if} + {:catch error} +

Error fetching question: {error.message}

+ {/await} + {/key}
{#each $comments as event} @@ -83,4 +78,4 @@ border-radius: 20px; border-color: #ccc; } - \ No newline at end of file +