diff --git a/app/relays/page.tsx b/app/relays/page.tsx
index 5f2c23b..e5439df 100644
--- a/app/relays/page.tsx
+++ b/app/relays/page.tsx
@@ -55,7 +55,7 @@ export default function RelaysPage() {
}
return () => clearTimeout(loadingTimeout);
- }, [connectedRelays, refreshKey]);
+ }, [connectedRelays, refreshKey, loading]);
// Function to refresh NIP-65 relays for the current user
const refreshNip65Relays = async () => {
diff --git a/app/tag/page.tsx b/app/tag/page.tsx
index db7ce47..9b58d57 100644
--- a/app/tag/page.tsx
+++ b/app/tag/page.tsx
@@ -1,6 +1,4 @@
'use client';
-
-import Head from "next/head";
import { useNostrEvents } from "nostr-react";
import { useState, useEffect } from "react";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
@@ -68,12 +66,6 @@ export default function TagPage() {
return (
<>
-
- LUMINA.rocks - Tags
-
-
-
-
diff --git a/app/upload/page.tsx b/app/upload/page.tsx
index 6d91fa4..af44f26 100644
--- a/app/upload/page.tsx
+++ b/app/upload/page.tsx
@@ -1,6 +1,4 @@
'use client';
-
-import Head from "next/head";
import { useEffect } from "react";
import UploadComponent from "@/components/UploadComponent";
@@ -19,12 +17,6 @@ export default function UploadPage() {
return (
<>
-
- LUMINA.rocks
-
-
-
-
diff --git a/components/CommentCard.tsx b/components/CommentCard.tsx
index 6a35025..09fcd13 100644
--- a/components/CommentCard.tsx
+++ b/components/CommentCard.tsx
@@ -28,6 +28,7 @@ import { Avatar, AvatarImage } from '@/components/ui/avatar';
import ViewRawButton from '@/components/ViewRawButton';
import ViewNoteButton from './ViewNoteButton';
import Link from 'next/link';
+import Image from 'next/image';
interface CommentCardProps {
pubkey: string;
@@ -77,17 +78,21 @@ const NoteCard: React.FC = ({ pubkey, text, eventId, tags, eve
{
- {imageSrc && imageSrc.length > 1 ? (
+ {imageSrc && imageSrc.length > 1 ? (
{imageSrc.map((src, index) => (
-
+
+
+
))}
@@ -95,7 +100,17 @@ const NoteCard: React.FC = ({ pubkey, text, eventId, tags, eve
) : (
- imageSrc ?

: ""
+ imageSrc ? (
+
+
+
+ ) : ""
)}
}
diff --git a/components/FollowButton.tsx b/components/FollowButton.tsx
index a70001c..5e9a379 100644
--- a/components/FollowButton.tsx
+++ b/components/FollowButton.tsx
@@ -37,11 +37,11 @@ const FollowButton: React.FC
= ({ pubkey, userPubkey }) => {
followingPubkeys = followingPubkeys.filter((tag) => tag);
- useEffect(() => {
- if (followingPubkeys.includes(pubkey)) {
- setIsFollowing(true);
- }
- }, [followingPubkeys, isFollowing, setIsFollowing]);
+ useEffect(() => {
+ if (followingPubkeys.includes(pubkey)) {
+ setIsFollowing(true);
+ }
+ }, [followingPubkeys, pubkey]);
const handleFollow = async () => {
// if (isLoggedIn) {
diff --git a/components/GalleryCard.tsx b/components/GalleryCard.tsx
index a532a9c..d9343ae 100644
--- a/components/GalleryCard.tsx
+++ b/components/GalleryCard.tsx
@@ -31,13 +31,16 @@ const GalleryCard: React.FC = ({ pubkey, eventId, imageUrl, li
-

+
+
+
diff --git a/components/LoginForm.tsx b/components/LoginForm.tsx
index 2d7f5b2..7c6e721 100644
--- a/components/LoginForm.tsx
+++ b/components/LoginForm.tsx
@@ -118,7 +118,7 @@ export function LoginForm() {
qrScannerRef.current.stop().catch(console.error);
}
};
- }, []);
+ }, [completeLogin]);
// Handle QR Scanner dialog
const startQRScanner = () => {
diff --git a/components/NoteCard.tsx b/components/NoteCard.tsx
index 70360cc..02a1647 100644
--- a/components/NoteCard.tsx
+++ b/components/NoteCard.tsx
@@ -27,6 +27,7 @@ import ReactionButton from '@/components/ReactionButton';
import { Avatar, AvatarImage } from '@/components/ui/avatar';
import ViewNoteButton from './ViewNoteButton';
import Link from 'next/link';
+import Image from 'next/image';
import { Event as NostrEvent } from "nostr-tools";
import ZapButton from './ZapButton';
import CardOptionsDropdown from './CardOptionsDropdown';
@@ -91,14 +92,16 @@ const NoteCard: React.FC = ({ pubkey, text, eventId, tags, event,
{imageSrc.map((src, index) => (
-
+
+
+
))}
@@ -106,14 +109,17 @@ const NoteCard: React.FC = ({ pubkey, text, eventId, tags, event,
) : (
- imageSrc ?
-
: ""
+ imageSrc ? (
+
+
+
+ ) : ""
)}
diff --git a/components/QuickViewNoteCard.tsx b/components/QuickViewNoteCard.tsx
index 6738f64..8b6db1d 100644
--- a/components/QuickViewNoteCard.tsx
+++ b/components/QuickViewNoteCard.tsx
@@ -45,12 +45,15 @@ const QuickViewNoteCard: React.FC
= ({ pubkey, text, eventId, tag
-
+
+
+
) : imageSrc && imageSrc.length > 0 ? (
@@ -59,12 +62,15 @@ const QuickViewNoteCard: React.FC
= ({ pubkey, text, eventId, tag
}
-
+
+
+
) : videoSrc && videoSrc.length > 0 ? (
diff --git a/components/TrendingImage.tsx b/components/TrendingImage.tsx
index 3efc8e8..381a5e6 100644
--- a/components/TrendingImage.tsx
+++ b/components/TrendingImage.tsx
@@ -66,7 +66,15 @@ const TrendingImage: React.FC
= ({ eventId, pubkey }) => {
{imageSrc && imageSrc.length > 0 && (
-

+
+
+
//
diff --git a/components/TrendingImageNew.tsx b/components/TrendingImageNew.tsx
index 620d457..0794644 100644
--- a/components/TrendingImageNew.tsx
+++ b/components/TrendingImageNew.tsx
@@ -76,13 +76,15 @@ const TrendingImageNew: React.FC = ({ event }) => {
{imageUrl && (
e.preventDefault() : undefined}>
-

+
+

+
{hasNsfwTag && !showSensitiveContent && (
{
if (invoice) {
- // Store the current count of zap receipts when invoice is generated
invoiceEventsCountRef.current = events.length;
setPaymentComplete(false);
}
- }, [invoice]);
+ }, [invoice, events.length]);
// Effect to detect new zap receipts after invoice is shown
useEffect(() => {
diff --git a/components/headerComponents/TopNavigation.tsx b/components/headerComponents/TopNavigation.tsx
index f3a70bc..b039e6d 100644
--- a/components/headerComponents/TopNavigation.tsx
+++ b/components/headerComponents/TopNavigation.tsx
@@ -9,6 +9,7 @@ import ConnectedRelaysButton from "@/components/headerComponents/ConnectedRelays
import AuthButton from "./AuthButton"
import { Button } from "@/components/ui/button"
import { UserIcon } from "lucide-react"
+import { Badge } from "@/components/ui/badge"
export function TopNavigation() {
const [pubkey, setPubkey] = useState
(null)
@@ -47,6 +48,7 @@ export function TopNavigation() {