Bump version to v0.1.8 — Windows playtest fixes

- Fix switchAccount: check signer was set after loginWithNsec before
  returning; fall back to loginWithPubkey on silent failure; always
  navigate to feed after switch to clear stale UI
- Fix profile edit button: hidden in read-only (npub) mode; read-only
  badge shown in profile header to make state visible
- Sidebar: show version number (v0.1.8) below WRYSTR brand, auto-tracked
  from package.json — no more hardcoding
- Support page: increase QR code gap (gap-8 → gap-16) to prevent
  accidentally scanning the wrong address
- ROADMAP: add language/alphabet feed filter to Phase 3 backlog

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jure
2026-03-11 13:39:30 +01:00
parent dba930ae29
commit cdf1a0b4a2
8 changed files with 40 additions and 10 deletions

View File

@@ -4,7 +4,7 @@ import { useUIStore } from "../../stores/ui";
import { useUserStore } from "../../stores/user";
import { useMuteStore } from "../../stores/mute";
import { useProfile, invalidateProfileCache } from "../../hooks/useProfile";
import { fetchUserNotes, publishProfile } from "../../lib/nostr";
import { fetchUserNotes, publishProfile, getNDK } from "../../lib/nostr";
import { shortenPubkey } from "../../lib/utils";
import { uploadImage } from "../../lib/upload";
import { NoteCard } from "../feed/NoteCard";
@@ -272,8 +272,13 @@ export function ProfileView() {
{editing ? "cancel" : "back"}
</button>
<h1 className="text-text text-sm font-medium">{isOwn ? "Your Profile" : "Profile"}</h1>
{isOwn && !getNDK().signer && (
<span className="text-text-dim text-[10px] border border-border px-2 py-0.5">
read-only
</span>
)}
</div>
{isOwn && !editing && (
{isOwn && !editing && !!getNDK().signer && (
<button
onClick={() => setEditing(true)}
className="text-[11px] px-3 py-1 border border-border text-text-muted hover:text-accent hover:border-accent/40 transition-colors"

View File

@@ -1,6 +1,7 @@
import { useState } from "react";
import QRCode from "react-qr-code";
import { ZapModal } from "../zap/ZapModal";
import pkg from "../../../package.json";
const DEV_NPUB = "npub1ezt7xcq87ljj65jkjsuagwll4yp75tacgkuyjdhkw6mza8j3azfq2vrvl6";
const DEV_PUBKEY = "c897e36007f7e52d52569439d43bffa903ea2fb845b84936f676b62e9e51e892";
@@ -74,7 +75,7 @@ export function AboutView() {
{/* QR codes */}
<section className="mb-8">
<h2 className="text-text-dim text-[10px] uppercase tracking-widest mb-4">Scan to send</h2>
<div className="flex flex-wrap gap-8">
<div className="flex flex-wrap gap-16">
<div>
<div className="text-text-muted text-[11px] mb-2">Lightning</div>
<QRBlock value={`lightning:${LIGHTNING_ADDRESS}`} label={LIGHTNING_ADDRESS} />
@@ -129,7 +130,7 @@ export function AboutView() {
{/* Version / About */}
<section className="border-t border-border pt-6">
<div className="text-text-dim text-[11px] space-y-1">
<div>Wrystr v0.1.1 MIT license</div>
<div>Wrystr v{pkg.version} MIT license</div>
<div>
Built with{" "}
<a href="https://tauri.app" target="_blank" rel="noopener noreferrer" className="text-accent hover:text-accent-hover transition-colors">Tauri</a>

View File

@@ -3,6 +3,7 @@ import { useFeedStore } from "../../stores/feed";
import { useUserStore } from "../../stores/user";
import { getNDK } from "../../lib/nostr";
import { AccountSwitcher } from "./AccountSwitcher";
import pkg from "../../../package.json";
const NAV_ITEMS = [
{ id: "feed" as const, label: "feed", icon: "◈" },
@@ -41,7 +42,10 @@ export function Sidebar() {
) : (
/* Expanded: brand on left, collapse chevron on right */
<>
<span className="text-sm font-bold tracking-widest text-text select-none">WRYSTR</span>
<div className="flex flex-col">
<span className="text-sm font-bold tracking-widest text-text select-none">WRYSTR</span>
<span className="text-text-dim text-[9px] font-mono opacity-50">v{pkg.version}</span>
</div>
<button
onClick={toggleSidebar}
title="Collapse sidebar"