Bump version to 0.1.7 — Windows playtest fixes

Critical:
- NWC wallet now stored per-account (wrystr_nwc_<pubkey>); switching
  accounts loads the correct wallet automatically
- Clear NDK signer before account switch to prevent race where old
  account could sign outgoing events
- LoginModal: add "New account" tab to create a fresh keypair inline
  (same flow as onboarding, with nsec copy + confirmation checkbox)
- ThreadView: add like + zap action row to the root note (was missing)

UX:
- Zap button now conditional on lud16/lud06 (NoteCard, ProfileView,
  RootNote) — no zap button shown for profiles without Lightning
- Remove "200 notes" counter from sidebar footer
- AccountSwitcher: larger active account avatar (w-8), name more
  prominent; sign-out/remove moved into dropdown only

Quick wins:
- AboutView: add GitHub Sponsors link
- ComposeBox: paste image from clipboard → uploads via nostr.build,
  inserts URL at cursor with "uploading image…" status

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jure
2026-03-11 12:19:48 +01:00
parent 7d68b1fa6f
commit e8ad01117b
15 changed files with 322 additions and 107 deletions

View File

@@ -1,5 +1,6 @@
import { useState } from "react";
import { useLightningStore } from "../../stores/lightning";
import { useUserStore } from "../../stores/user";
import { isValidNwcUri, parseNwcUri } from "../../lib/lightning/nwc";
// ── Wallet catalogue ─────────────────────────────────────────────────────────
@@ -166,6 +167,7 @@ function PasteStep({
onConnected: () => void;
}) {
const { setNwcUri } = useLightningStore();
const { pubkey } = useUserStore();
const [input, setInput] = useState("");
const [error, setError] = useState<string | null>(null);
@@ -191,7 +193,7 @@ function PasteStep({
return;
}
try {
setNwcUri(uri);
setNwcUri(uri, pubkey ?? undefined);
onConnected();
} catch (err) {
setError(String(err));
@@ -254,11 +256,12 @@ function PasteStep({
export function NWCWizard() {
const { nwcUri, clearNwcUri } = useLightningStore();
const { pubkey } = useUserStore();
const [step, setStep] = useState<"choose" | "paste">("choose");
const [selectedWallet, setSelectedWallet] = useState<WalletDef>(GENERIC);
if (nwcUri) {
return <ConnectedState nwcUri={nwcUri} onDisconnect={clearNwcUri} />;
return <ConnectedState nwcUri={nwcUri} onDisconnect={() => clearNwcUri(pubkey ?? undefined)} />;
}
if (step === "paste") {