Fix read-only mode: hide write actions when no signer

- ComposeBox, action row (reply/like/zap), and write article button
  all gated on getNDK().signer in addition to loggedIn
- Prevents read-only (npub-only) users from seeing actions they can't use
- Found during browser testing of the login path

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jure
2026-03-09 19:32:06 +01:00
parent f3d0929253
commit c4b14f1dd4
3 changed files with 6 additions and 5 deletions

View File

@@ -1,7 +1,7 @@
import { useEffect, useState } from "react";
import { useFeedStore } from "../../stores/feed";
import { useUserStore } from "../../stores/user";
import { fetchFollowFeed } from "../../lib/nostr";
import { fetchFollowFeed, getNDK } from "../../lib/nostr";
import { NoteCard } from "./NoteCard";
import { ComposeBox } from "./ComposeBox";
import { NDKEvent } from "@nostr-dev-kit/ndk";
@@ -95,7 +95,7 @@ export function Feed() {
</header>
{/* Compose */}
{loggedIn && <ComposeBox onPublished={loadFeed} />}
{loggedIn && !!getNDK().signer && <ComposeBox onPublished={loadFeed} />}
{/* Feed */}
<div className="flex-1 overflow-y-auto">

View File

@@ -5,7 +5,7 @@ import { useReactionCount } from "../../hooks/useReactionCount";
import { useUserStore } from "../../stores/user";
import { useUIStore } from "../../stores/ui";
import { timeAgo, shortenPubkey } from "../../lib/utils";
import { publishReaction, publishReply } from "../../lib/nostr";
import { publishReaction, publishReply, getNDK } from "../../lib/nostr";
import { NoteContent } from "./NoteContent";
import { ZapModal } from "../zap/ZapModal";
@@ -122,7 +122,7 @@ export function NoteCard({ event }: NoteCardProps) {
</div>
{/* Actions */}
{loggedIn && (
{loggedIn && !!getNDK().signer && (
<div className="flex items-center gap-4 mt-2">
<button
onClick={handleReply}