From d6287fc240b5b0ba45a2c88e14563ce675c2605c Mon Sep 17 00:00:00 2001 From: Jure <44338+hoornet@users.noreply.github.com> Date: Thu, 9 Apr 2026 19:20:47 +0200 Subject: [PATCH] =?UTF-8?q?Polish=20pass=208=20=E2=80=94=20console=20?= =?UTF-8?q?=E2=86=92=20debug,=20sentence=20case,=20attachment=20button?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - core.ts, feed.ts, user.ts: replace all console.log/warn/error with debug.log/warn/error (silent in production builds) - ArticleFeed: "write article" → "Write article" - ComposeBox: attachment remove x → ×, add aria-label --- src/components/article/ArticleFeed.tsx | 2 +- src/components/feed/ComposeBox.tsx | 3 ++- src/lib/nostr/core.ts | 15 ++++++++------- src/stores/feed.ts | 7 ++++--- src/stores/user.ts | 13 +++++++------ 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/components/article/ArticleFeed.tsx b/src/components/article/ArticleFeed.tsx index c5f35ac..5049257 100644 --- a/src/components/article/ArticleFeed.tsx +++ b/src/components/article/ArticleFeed.tsx @@ -70,7 +70,7 @@ export function ArticleFeed() { onClick={() => setView("article-editor")} className="text-[11px] px-3 py-1 border border-accent/60 text-accent hover:bg-accent hover:text-accent-text transition-colors" > - write article + Write article diff --git a/src/components/feed/ComposeBox.tsx b/src/components/feed/ComposeBox.tsx index 0597116..b597bff 100644 --- a/src/components/feed/ComposeBox.tsx +++ b/src/components/feed/ComposeBox.tsx @@ -272,8 +272,9 @@ export function ComposeBox({ onPublished, onNoteInjected }: { onPublished?: () = onClick={() => removeAttachment(i)} className="absolute -top-1.5 -right-1.5 w-4 h-4 bg-danger text-white text-[10px] rounded-full flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity" title="Remove" + aria-label="Remove attachment" > - x + × ))} diff --git a/src/lib/nostr/core.ts b/src/lib/nostr/core.ts index e0791c1..c8b6b2f 100644 --- a/src/lib/nostr/core.ts +++ b/src/lib/nostr/core.ts @@ -1,4 +1,5 @@ import NDK, { NDKEvent, NDKFilter, NDKRelay, NDKRelaySet, NDKSubscriptionCacheUsage } from "@nostr-dev-kit/ndk"; +import { debug } from "../debug"; // ─── Fetch timeout helper ─────────────────────────────────────────── @@ -7,7 +8,7 @@ export function withTimeout(promise: Promise, ms: number, fallback: T): Pr return Promise.race([ promise, new Promise((resolve) => setTimeout(() => { - console.warn(`[Vega] Fetch timed out after ${ms}ms`); + debug.warn(`[Vega] Fetch timed out after ${ms}ms`); resolve(fallback); }, ms)), ]); @@ -147,7 +148,7 @@ export async function resetNDK(): Promise { } // Connect fresh - console.log("[Vega] NDK instance reset — connecting fresh relays"); + debug.log("[Vega] NDK instance reset — connecting fresh relays"); await ndk.connect(); await waitForConnectedRelay(ndk, 5000); @@ -160,7 +161,7 @@ export async function resetNDK(): Promise { const relays = Array.from(ndk.pool?.relays?.values() ?? []); const connected = relays.filter((r) => r.connected).length; - console.log(`[Vega] Fresh connection: ${connected}/${relays.length} relays connected`); + debug.log(`[Vega] Fresh connection: ${connected}/${relays.length} relays connected`); } export function addRelay(url: string): void { @@ -195,7 +196,7 @@ function waitForConnectedRelay(instance: NDK, timeoutMs = 10000): Promise return new Promise((resolve, _reject) => { const timer = setTimeout(() => { // Even on timeout, continue — some relays may connect later - console.warn("Relay connection timeout, continuing anyway"); + debug.warn("Relay connection timeout, continuing anyway"); resolve(); }, timeoutMs); @@ -233,17 +234,17 @@ export async function ensureConnected(): Promise { return true; // Trust relay.connected — don't probe or disconnect } - console.warn(`[Vega] No relays connected (${relays.length} in pool) — attempting reconnect`); + debug.warn(`[Vega] No relays connected (${relays.length} in pool) — attempting reconnect`); try { await withTimeout(instance.connect(), 4000, undefined); await waitForConnectedRelay(instance, 3000); const after = Array.from(instance.pool?.relays?.values() ?? []); const nowConnected = after.some((r) => r.connected); - console.log(`[Vega] Reconnect ${nowConnected ? "succeeded" : "failed"}`); + debug.log(`[Vega] Reconnect ${nowConnected ? "succeeded" : "failed"}`); return nowConnected; } catch { - console.error("[Vega] Reconnect failed"); + debug.error("[Vega] Reconnect failed"); return false; } } diff --git a/src/stores/feed.ts b/src/stores/feed.ts index 0353b7a..24c28ad 100644 --- a/src/stores/feed.ts +++ b/src/stores/feed.ts @@ -5,6 +5,7 @@ import { seedReactionsCache } from "../hooks/useReactions"; import { useToastStore } from "./toast"; import { dbLoadFeed, dbSaveNotes } from "../lib/db"; import { diagWrapFetch, logDiag, startRelaySnapshots, getRelayStates } from "../lib/feedDiagnostics"; +import { debug } from "../lib/debug"; // Local relay imports deferred to avoid circular dependency // import { isLocalRelayEnabled, connectLocalRelay } from "../lib/localRelay"; @@ -68,12 +69,12 @@ export const useFeedStore = create((set, get) => ({ const { pubkey, follows } = useUserStore.getState(); if (pubkey) { syncToLocalRelay(pubkey, follows).catch((err) => - console.warn("[Vega] Local relay sync failed:", err), + debug.warn("[Vega] Local relay sync failed:", err), ); } } } catch (err) { - console.warn("[Vega] Local relay setup failed:", err); + debug.warn("[Vega] Local relay setup failed:", err); } const connectMs = Math.round(performance.now() - connectStart); @@ -226,7 +227,7 @@ export const useFeedStore = create((set, get) => ({ }); liveSub = sub; - console.log("[Vega] Live feed subscription started"); + debug.log("[Vega] Live feed subscription started"); }, loadTrendingFeed: async (force?: boolean) => { diff --git a/src/stores/user.ts b/src/stores/user.ts index 4c196ac..a1cc523 100644 --- a/src/stores/user.ts +++ b/src/stores/user.ts @@ -10,6 +10,7 @@ import { useNotificationsStore } from "./notifications"; import { useFeedStore } from "./feed"; import { startNotificationPoller, stopNotificationPoller } from "../lib/notificationPoller"; import { dbLoadProfile } from "../lib/db"; +import { debug } from "../lib/debug"; export interface SavedAccount { pubkey: string; @@ -116,7 +117,7 @@ export const useUserStore = create((set, get) => ({ // Store nsec in OS keychain invoke("store_nsec", { pubkey, nsec: nsecInput }).catch((err) => { - console.warn("Failed to store nsec in OS keychain:", err); + debug.warn("Failed to store nsec in OS keychain:", err); }); // Load per-account NWC wallet @@ -253,7 +254,7 @@ export const useUserStore = create((set, get) => ({ _signerCache.set(acct.pubkey, new NDKPrivateKeySigner(privkey)); } } catch (err) { - console.warn(`Failed to load nsec for ${acct.npub} from keychain:`, err); + debug.warn(`Failed to load nsec for ${acct.npub} from keychain:`, err); } } @@ -264,7 +265,7 @@ export const useUserStore = create((set, get) => ({ const signer = await NDKNip46Signer.fromPayload(acct.signerPayload, getNDK()); _nip46SignerCache.set(acct.pubkey, signer); } catch (err) { - console.warn(`Failed to restore NIP-46 session for ${acct.npub}:`, err); + debug.warn(`Failed to restore NIP-46 session for ${acct.npub}:`, err); } } @@ -295,7 +296,7 @@ export const useUserStore = create((set, get) => ({ useNotificationsStore.getState().fetchNotifications(savedPubkey); startNotificationPoller(savedPubkey); } catch (err) { - console.warn("Failed to restore NIP-46 session:", err); + debug.warn("Failed to restore NIP-46 session:", err); } } return; @@ -343,7 +344,7 @@ export const useUserStore = create((set, get) => ({ useUIStore.getState().setView("feed"); return; } catch (err) { - console.warn("NIP-46 signer reconnect failed during switch:", err); + debug.warn("NIP-46 signer reconnect failed during switch:", err); } } @@ -376,7 +377,7 @@ export const useUserStore = create((set, get) => ({ succeeded = !!getNDK().signer; } } catch (err) { - console.warn("Keychain load failed during account switch:", err); + debug.warn("Keychain load failed during account switch:", err); } if (!succeeded) { const account = get().accounts.find((a) => a.pubkey === pubkey);