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) => ( - +
+ {textWithoutImage +
))}
@@ -95,7 +100,17 @@ const NoteCard: React.FC = ({ pubkey, text, eventId, tags, eve
) : ( - imageSrc ? : "" + imageSrc ? ( +
+ {textWithoutImage +
+ ) : "" )}
} 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
- {eventId} +
+ {eventId} +
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) => ( - {textWithoutImage +
+ {textWithoutImage +
))}
@@ -106,14 +109,17 @@ const NoteCard: React.FC = ({ pubkey, text, eventId, tags, event, ) : ( - imageSrc ? - {textWithoutImage : "" + imageSrc ? ( +
+ {textWithoutImage +
+ ) : "" )}
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
- {text} +
+ {text} +
) : imageSrc && imageSrc.length > 0 ? (
@@ -59,12 +62,15 @@ const QuickViewNoteCard: React.FC = ({ pubkey, text, eventId, tag
} - {text} +
+ {text} +
) : 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 && (
- {text} +
+ {text} +
// {text} 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}> - {text} +
+ {text} +
{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() {