mirror of
https://github.com/hoornet/vega.git
synced 2026-06-08 06:01:57 -07:00
Polish pass 8 — console → debug, sentence case, attachment button
- 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
This commit is contained in:
@@ -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
|
||||
</button>
|
||||
</header>
|
||||
|
||||
|
||||
@@ -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
|
||||
×
|
||||
</button>
|
||||
</div>
|
||||
))}
|
||||
|
||||
@@ -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<T>(promise: Promise<T>, ms: number, fallback: T): Pr
|
||||
return Promise.race([
|
||||
promise,
|
||||
new Promise<T>((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<void> {
|
||||
}
|
||||
|
||||
// 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<void> {
|
||||
|
||||
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<void>
|
||||
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<boolean> {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -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<FeedState>((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<FeedState>((set, get) => ({
|
||||
});
|
||||
|
||||
liveSub = sub;
|
||||
console.log("[Vega] Live feed subscription started");
|
||||
debug.log("[Vega] Live feed subscription started");
|
||||
},
|
||||
|
||||
loadTrendingFeed: async (force?: boolean) => {
|
||||
|
||||
+7
-6
@@ -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<UserState>((set, get) => ({
|
||||
|
||||
// Store nsec in OS keychain
|
||||
invoke<void>("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<UserState>((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<UserState>((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<UserState>((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<UserState>((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<UserState>((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);
|
||||
|
||||
Reference in New Issue
Block a user