diff --git a/src/components/channels/createChannelModal.tsx b/src/components/channels/createChannelModal.tsx index 28f6cc34..8b7e1dcd 100644 --- a/src/components/channels/createChannelModal.tsx +++ b/src/components/channels/createChannelModal.tsx @@ -2,7 +2,7 @@ import { AvatarUploader } from '@components/avatarUploader'; import { RelayContext } from '@components/relaysProvider'; import { defaultChannelsAtom } from '@stores/channel'; -import { DEFAULT_AVATAR, FULL_RELAYS } from '@stores/constants'; +import { DEFAULT_AVATAR, MESSAGE_RELAYS } from '@stores/constants'; import { dateToUnix } from '@utils/getDate'; import { createChannel } from '@utils/storage'; @@ -17,7 +17,7 @@ import { useForm } from 'react-hook-form'; import { navigate } from 'vite-plugin-ssr/client/router'; export const CreateChannelModal = () => { - const [pool]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [open, setOpen] = useState(false); const [activeAccount]: any = useLocalStorage('account', {}); const [image, setImage] = useState(DEFAULT_AVATAR); @@ -47,7 +47,7 @@ export const CreateChannelModal = () => { event.sig = signEvent(event, activeAccount.privkey); // publish channel - pool.publish(event, FULL_RELAYS); + pool.publish(event, MESSAGE_RELAYS); // insert to database createChannel(event.id, event.content, event.created_at); // update jotai state diff --git a/src/components/channels/messages/hideMessageButton.tsx b/src/components/channels/messages/hideMessageButton.tsx index ff06e4aa..365eb779 100644 --- a/src/components/channels/messages/hideMessageButton.tsx +++ b/src/components/channels/messages/hideMessageButton.tsx @@ -1,5 +1,7 @@ import { RelayContext } from '@components/relaysProvider'; +import { MESSAGE_RELAYS } from '@stores/constants'; + import { dateToUnix } from '@utils/getDate'; import * as AlertDialog from '@radix-ui/react-alert-dialog'; @@ -10,7 +12,7 @@ import { getEventHash, signEvent } from 'nostr-tools'; import { useCallback, useContext } from 'react'; export const HideMessageButton = ({ id }: { id: string }) => { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); const hideMessage = useCallback(() => { @@ -25,8 +27,8 @@ export const HideMessageButton = ({ id }: { id: string }) => { event.sig = signEvent(event, activeAccount.privkey); // publish note - pool.publish(event, relays); - }, [id, activeAccount.privkey, activeAccount.pubkey, pool, relays]); + pool.publish(event, MESSAGE_RELAYS); + }, [id, activeAccount.privkey, activeAccount.pubkey, pool, MESSAGE_RELAYS]); return ( diff --git a/src/components/channels/messages/muteButton.tsx b/src/components/channels/messages/muteButton.tsx index 6fbc0cc8..90ffef4d 100644 --- a/src/components/channels/messages/muteButton.tsx +++ b/src/components/channels/messages/muteButton.tsx @@ -1,5 +1,7 @@ import { RelayContext } from '@components/relaysProvider'; +import { MESSAGE_RELAYS } from '@stores/constants'; + import { dateToUnix } from '@utils/getDate'; import * as AlertDialog from '@radix-ui/react-alert-dialog'; @@ -7,13 +9,13 @@ import * as Tooltip from '@radix-ui/react-tooltip'; import useLocalStorage from '@rehooks/local-storage'; import { MicMute } from 'iconoir-react'; import { getEventHash, signEvent } from 'nostr-tools'; -import { useCallback, useContext } from 'react'; +import { useContext } from 'react'; export const MuteButton = ({ pubkey }: { pubkey: string }) => { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); - const muteUser = useCallback(() => { + const muteUser = () => { const event: any = { content: '', created_at: dateToUnix(), @@ -25,8 +27,8 @@ export const MuteButton = ({ pubkey }: { pubkey: string }) => { event.sig = signEvent(event, activeAccount.privkey); // publish note - pool.publish(event, relays); - }, [pubkey, activeAccount.privkey, activeAccount.pubkey, pool, relays]); + pool.publish(event, MESSAGE_RELAYS); + }; return ( diff --git a/src/components/eventCollector.tsx b/src/components/eventCollector.tsx index f640e047..41d85a7c 100644 --- a/src/components/eventCollector.tsx +++ b/src/components/eventCollector.tsx @@ -1,6 +1,7 @@ import { NetworkStatusIndicator } from '@components/networkStatusIndicator'; import { RelayContext } from '@components/relaysProvider'; +import { DEFAULT_RELAYS } from '@stores/constants'; import { hasNewerNoteAtom } from '@stores/note'; import { dateToUnix } from '@utils/getDate'; @@ -12,7 +13,7 @@ import { useSetAtom } from 'jotai'; import { useCallback, useContext, useEffect, useRef } from 'react'; export default function EventCollector() { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', null); const setHasNewerNote = useSetAtom(hasNewerNoteAtom); @@ -42,7 +43,7 @@ export default function EventCollector() { since: dateToUnix(now.current), }, ], - relays, + DEFAULT_RELAYS, (event: { kind: number; tags: string[]; id: string; pubkey: string; content: string; created_at: number }) => { switch (event.kind) { // metadata @@ -103,7 +104,7 @@ export default function EventCollector() { return () => { unsubscribe(); }; - }, [activeAccount.pubkey, activeAccount.id, follows, pool, relays, setHasNewerNote]); + }, [activeAccount.pubkey, activeAccount.id, follows, pool, setHasNewerNote]); useEffect(() => { let ignore = false; diff --git a/src/components/form/base.tsx b/src/components/form/base.tsx index ee65d252..db311131 100644 --- a/src/components/form/base.tsx +++ b/src/components/form/base.tsx @@ -1,6 +1,7 @@ import { ImagePicker } from '@components/form/imagePicker'; import { RelayContext } from '@components/relaysProvider'; +import { DEFAULT_RELAYS } from '@stores/constants'; import { noteContentAtom } from '@stores/note'; import { dateToUnix } from '@utils/getDate'; @@ -12,7 +13,7 @@ import { getEventHash, signEvent } from 'nostr-tools'; import { useContext } from 'react'; export default function FormBase() { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [value, setValue] = useAtom(noteContentAtom); const resetValue = useResetAtom(noteContentAtom); @@ -31,7 +32,7 @@ export default function FormBase() { event.sig = signEvent(event, activeAccount.privkey); // publish note - pool.publish(event, relays); + pool.publish(event, DEFAULT_RELAYS); // reset form resetValue(); // send notification diff --git a/src/components/form/channel.tsx b/src/components/form/channel.tsx index a1db050a..cc18e675 100644 --- a/src/components/form/channel.tsx +++ b/src/components/form/channel.tsx @@ -3,7 +3,7 @@ import { RelayContext } from '@components/relaysProvider'; import { UserMini } from '@components/user/mini'; import { channelContentAtom, channelReplyAtom } from '@stores/channel'; -import { FULL_RELAYS } from '@stores/constants'; +import { MESSAGE_RELAYS } from '@stores/constants'; import { dateToUnix } from '@utils/getDate'; @@ -15,7 +15,7 @@ import { getEventHash, signEvent } from 'nostr-tools'; import { useCallback, useContext } from 'react'; export const FormChannel = ({ eventId }: { eventId: string | string[] }) => { - const [pool]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); const [value, setValue] = useAtom(channelContentAtom); @@ -48,7 +48,7 @@ export const FormChannel = ({ eventId }: { eventId: string | string[] }) => { event.sig = signEvent(event, activeAccount.privkey); // publish note - pool.publish(event, FULL_RELAYS); + pool.publish(event, MESSAGE_RELAYS); // reset state resetValue(); // reset channel reply diff --git a/src/components/form/chat.tsx b/src/components/form/chat.tsx index f707bfed..8c8ca9c3 100644 --- a/src/components/form/chat.tsx +++ b/src/components/form/chat.tsx @@ -2,7 +2,7 @@ import { ImagePicker } from '@components/form/imagePicker'; import { RelayContext } from '@components/relaysProvider'; import { chatContentAtom } from '@stores/chat'; -import { FULL_RELAYS } from '@stores/constants'; +import { MESSAGE_RELAYS } from '@stores/constants'; import { dateToUnix } from '@utils/getDate'; @@ -13,7 +13,7 @@ import { getEventHash, nip04, signEvent } from 'nostr-tools'; import { useCallback, useContext } from 'react'; export default function FormChat({ receiverPubkey }: { receiverPubkey: string }) { - const [pool]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); const [value, setValue] = useAtom(chatContentAtom); @@ -39,7 +39,7 @@ export default function FormChat({ receiverPubkey }: { receiverPubkey: string }) event.id = getEventHash(event); event.sig = signEvent(event, activeAccount.privkey); // publish note - pool.publish(event, FULL_RELAYS); + pool.publish(event, MESSAGE_RELAYS); // reset state resetValue(); }) diff --git a/src/components/form/comment.tsx b/src/components/form/comment.tsx index fff0d71e..2729ed11 100644 --- a/src/components/form/comment.tsx +++ b/src/components/form/comment.tsx @@ -1,6 +1,7 @@ -import { ImageWithFallback } from '@components/imageWithFallback'; import { RelayContext } from '@components/relaysProvider'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { dateToUnix } from '@utils/getDate'; import useLocalStorage from '@rehooks/local-storage'; @@ -8,7 +9,7 @@ import { getEventHash, signEvent } from 'nostr-tools'; import { useContext, useState } from 'react'; export default function FormComment({ eventID }: { eventID: any }) { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); const [value, setValue] = useState(''); @@ -27,7 +28,7 @@ export default function FormComment({ eventID }: { eventID: any }) { event.sig = signEvent(event, activeAccount.privkey); // publish note - pool.publish(event, relays); + pool.publish(event, DEFAULT_RELAYS); // send notification // sendNotification('Comment has been published successfully'); }; @@ -37,12 +38,7 @@ export default function FormComment({ eventID }: { eventID: any }) {
- + {activeAccount.pubkey}
diff --git a/src/components/note/meta/comment.tsx b/src/components/note/meta/comment.tsx index 4e2a40d1..21df6f1d 100644 --- a/src/components/note/meta/comment.tsx +++ b/src/components/note/meta/comment.tsx @@ -1,6 +1,8 @@ import { RelayContext } from '@components/relaysProvider'; import { UserExtend } from '@components/user/extend'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { dateToUnix } from '@utils/getDate'; import * as Dialog from '@radix-ui/react-dialog'; @@ -23,7 +25,7 @@ export const NoteComment = ({ eventTime: number; eventContent: any; }) => { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [open, setOpen] = useState(false); const [value, setValue] = useState(''); @@ -46,7 +48,7 @@ export const NoteComment = ({ event.id = getEventHash(event); event.sig = signEvent(event, activeAccount.privkey); - pool.publish(event, relays); + pool.publish(event, DEFAULT_RELAYS); setOpen(false); }; diff --git a/src/components/note/meta/reaction.tsx b/src/components/note/meta/reaction.tsx index 82324635..80b6b007 100644 --- a/src/components/note/meta/reaction.tsx +++ b/src/components/note/meta/reaction.tsx @@ -1,5 +1,7 @@ import { RelayContext } from '@components/relaysProvider'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { dateToUnix } from '@utils/getDate'; import useLocalStorage from '@rehooks/local-storage'; @@ -18,7 +20,7 @@ export const NoteReaction = ({ eventID: string; eventPubkey: string; }) => { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); const [isReact, setIsReact] = useState(false); @@ -41,7 +43,7 @@ export const NoteReaction = ({ event.id = getEventHash(event); event.sig = signEvent(event, activeAccount.privkey); // publish event to all relays - pool.publish(event, relays); + pool.publish(event, DEFAULT_RELAYS); // update state to change icon to filled heart setIsReact(true); // update counter diff --git a/src/components/note/metadata.tsx b/src/components/note/metadata.tsx index c2db47d3..cdf60453 100644 --- a/src/components/note/metadata.tsx +++ b/src/components/note/metadata.tsx @@ -2,6 +2,8 @@ import { NoteComment } from '@components/note/meta/comment'; import { NoteReaction } from '@components/note/meta/reaction'; import { RelayContext } from '@components/relaysProvider'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import useLocalStorage from '@rehooks/local-storage'; import { memo, useContext, useEffect, useState } from 'react'; @@ -16,7 +18,7 @@ export const NoteMetadata = memo(function NoteMetadata({ eventTime: any; eventContent: any; }) { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); const [liked, setLiked] = useState(false); @@ -32,7 +34,7 @@ export const NoteMetadata = memo(function NoteMetadata({ kinds: [1, 7], }, ], - relays, + DEFAULT_RELAYS, (event: any) => { switch (event.kind) { case 1: @@ -64,7 +66,7 @@ export const NoteMetadata = memo(function NoteMetadata({ return () => { unsubscribe(); }; - }, [eventID, eventTime, pool, relays, activeAccount.pubkey]); + }, [eventID, eventTime, pool, activeAccount.pubkey]); return (
diff --git a/src/components/note/parent.tsx b/src/components/note/parent.tsx index cf163462..78592e33 100644 --- a/src/components/note/parent.tsx +++ b/src/components/note/parent.tsx @@ -2,6 +2,8 @@ import { NoteMetadata } from '@components/note/metadata'; import { RelayContext } from '@components/relaysProvider'; import { UserExtend } from '@components/user/extend'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { contentParser } from '@utils/parser'; import { createNote, getNoteByID } from '@utils/storage'; import { getParentID } from '@utils/transform'; @@ -10,7 +12,7 @@ import useLocalStorage from '@rehooks/local-storage'; import { memo, useCallback, useContext, useEffect, useState } from 'react'; export const NoteParent = memo(function NoteParent({ id }: { id: string }) { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); const [event, setEvent] = useState(null); @@ -25,7 +27,7 @@ export const NoteParent = memo(function NoteParent({ id }: { id: string }) { kinds: [1], }, ], - relays, + DEFAULT_RELAYS, (event: any) => { // update state setEvent(event); @@ -53,7 +55,7 @@ export const NoteParent = memo(function NoteParent({ id }: { id: string }) { return () => { unsubscribe(); }; - }, [activeAccount.id, id, pool, relays]); + }, [activeAccount.id, id, pool]); const checkNoteIsSaved = useCallback(async () => { getNoteByID(id) diff --git a/src/components/note/quote.tsx b/src/components/note/quote.tsx index 671e236d..18b7a687 100644 --- a/src/components/note/quote.tsx +++ b/src/components/note/quote.tsx @@ -1,6 +1,8 @@ import { RelayContext } from '@components/relaysProvider'; import { UserExtend } from '@components/user/extend'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { contentParser } from '@utils/parser'; import { createNote, getNoteByID } from '@utils/storage'; import { getParentID } from '@utils/transform'; @@ -9,7 +11,7 @@ import useLocalStorage from '@rehooks/local-storage'; import { memo, useCallback, useContext, useEffect, useState } from 'react'; export const NoteQuote = memo(function NoteQuote({ id }: { id: string }) { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); const [event, setEvent] = useState(null); @@ -24,7 +26,7 @@ export const NoteQuote = memo(function NoteQuote({ id }: { id: string }) { kinds: [1], }, ], - relays, + DEFAULT_RELAYS, (event: any) => { // update state setEvent(event); @@ -51,7 +53,7 @@ export const NoteQuote = memo(function NoteQuote({ id }: { id: string }) { return () => { unsubscribe(); }; - }, [activeAccount.id, id, pool, relays]); + }, [activeAccount.id, id, pool]); const checkNoteIsSaved = useCallback(async () => { getNoteByID(id) diff --git a/src/components/note/rootNote.tsx b/src/components/note/rootNote.tsx index f09e5b18..b73b5728 100644 --- a/src/components/note/rootNote.tsx +++ b/src/components/note/rootNote.tsx @@ -2,13 +2,15 @@ import { NoteMetadata } from '@components/note/metadata'; import { RelayContext } from '@components/relaysProvider'; import { UserExtend } from '@components/user/extend'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { contentParser } from '@utils/parser'; import { memo, useCallback, useContext, useEffect, useState } from 'react'; import { navigate } from 'vite-plugin-ssr/client/router'; export const RootNote = memo(function RootNote({ event }: { event: any }) { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [data, setData] = useState(null); const [content, setContent] = useState(''); @@ -36,7 +38,7 @@ export const RootNote = memo(function RootNote({ event }: { event: any }) { kinds: [1], }, ], - relays, + DEFAULT_RELAYS, (event: any) => { setData(event); setContent(contentParser(event.content, event.tags)); @@ -52,7 +54,7 @@ export const RootNote = memo(function RootNote({ event }: { event: any }) { unsubscribe(); }; }, - [pool, relays] + [pool] ); useEffect(() => { diff --git a/src/components/profile/followers.tsx b/src/components/profile/followers.tsx index 5645b764..66c72578 100644 --- a/src/components/profile/followers.tsx +++ b/src/components/profile/followers.tsx @@ -1,18 +1,20 @@ import { RelayContext } from '@components/relaysProvider'; import { UserFollow } from '@components/user/follow'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import destr from 'destr'; import { Author } from 'nostr-relaypool'; import { useContext, useEffect, useState } from 'react'; export default function ProfileFollowers({ id }: { id: string }) { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [followers, setFollowers] = useState(null); useEffect(() => { - const user = new Author(pool, relays, id); + const user = new Author(pool, DEFAULT_RELAYS, id); user.followers((res) => setFollowers(destr(res.tags)), 0, 100); - }, [id, pool, relays]); + }, [id, pool]); return (
diff --git a/src/components/profile/follows.tsx b/src/components/profile/follows.tsx index 14cda816..e1aaae25 100644 --- a/src/components/profile/follows.tsx +++ b/src/components/profile/follows.tsx @@ -1,17 +1,19 @@ import { RelayContext } from '@components/relaysProvider'; import { UserFollow } from '@components/user/follow'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { Author } from 'nostr-relaypool'; import { useContext, useEffect, useState } from 'react'; export default function ProfileFollows({ id }: { id: string }) { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [follows, setFollows] = useState(null); useEffect(() => { - const user = new Author(pool, relays, id); + const user = new Author(pool, DEFAULT_RELAYS, id); user.follows((res) => setFollows(res), 0); - }, [id, pool, relays]); + }, [id, pool]); return (
diff --git a/src/components/profile/metadata.tsx b/src/components/profile/metadata.tsx index bc0e24e5..e69fd256 100644 --- a/src/components/profile/metadata.tsx +++ b/src/components/profile/metadata.tsx @@ -1,6 +1,6 @@ import { RelayContext } from '@components/relaysProvider'; -import { DEFAULT_AVATAR } from '@stores/constants'; +import { DEFAULT_AVATAR, DEFAULT_RELAYS } from '@stores/constants'; import { shortenKey } from '@utils/shortenKey'; @@ -11,13 +11,13 @@ import { useContext, useEffect, useState } from 'react'; const DEFAULT_BANNER = 'https://bafybeiacwit7hjmdefqggxqtgh6ht5dhth7ndptwn2msl5kpkodudsr7py.ipfs.w3s.link/banner-1.jpg'; export default function ProfileMetadata({ id }: { id: string }) { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [profile, setProfile] = useState(null); useEffect(() => { - const user = new Author(pool, relays, id); + const user = new Author(pool, DEFAULT_RELAYS, id); user.metaData((res) => setProfile(destr(res.content)), 0); - }, [id, pool, relays]); + }, [id, pool]); return ( <> diff --git a/src/components/profile/notes.tsx b/src/components/profile/notes.tsx index d1a315c2..7c208849 100644 --- a/src/components/profile/notes.tsx +++ b/src/components/profile/notes.tsx @@ -1,17 +1,19 @@ import { NoteBase } from '@components/note/base'; import { RelayContext } from '@components/relaysProvider'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { Author } from 'nostr-relaypool'; import { useContext, useEffect, useState } from 'react'; export default function ProfileNotes({ id }: { id: string }) { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [data, setData] = useState([]); useEffect(() => { - const user = new Author(pool, relays, id); + const user = new Author(pool, DEFAULT_RELAYS, id); user.text((res) => setData((data) => [...data, res]), 100, 0); - }, [id, pool, relays]); + }, [id, pool]); return (
diff --git a/src/components/relaysProvider.tsx b/src/components/relaysProvider.tsx index 801115e3..2bb3689e 100644 --- a/src/components/relaysProvider.tsx +++ b/src/components/relaysProvider.tsx @@ -5,15 +5,13 @@ import { createContext, useMemo } from 'react'; export const RelayContext = createContext({}); -const relays = DEFAULT_RELAYS; - export default function RelayProvider({ children }: { children: React.ReactNode }) { const pool = useMemo(() => { if (typeof window !== 'undefined') { - return new RelayPool(relays, { useEventCache: false, logSubscriptions: false }); + return new RelayPool(DEFAULT_RELAYS, { useEventCache: false, logSubscriptions: false }); } else { return null; } }, []); - return {children}; + return {children}; } diff --git a/src/pages/channel/index.page.client.tsx b/src/pages/channel/index.page.client.tsx index d81c14c7..9a1a65af 100644 --- a/src/pages/channel/index.page.client.tsx +++ b/src/pages/channel/index.page.client.tsx @@ -4,7 +4,7 @@ import NewsfeedLayout from '@components/layouts/newsfeed'; import { RelayContext } from '@components/relaysProvider'; import { channelMessagesAtom, channelReplyAtom } from '@stores/channel'; -import { FULL_RELAYS } from '@stores/constants'; +import { MESSAGE_RELAYS } from '@stores/constants'; import { dateToUnix, hoursAgo } from '@utils/getDate'; import { usePageContext } from '@utils/hooks/usePageContext'; @@ -21,7 +21,7 @@ export function Page() { const id = searchParams.id; - const [pool]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); const setChannelMessages = useSetAtom(channelMessagesAtom); @@ -46,7 +46,7 @@ export function Page() { since: dateToUnix(hoursAgo(48, now.current)), }, ], - FULL_RELAYS, + MESSAGE_RELAYS, (event: { kind: number; tags: string[][]; pubkey: string; id: string }) => { if (event.kind === 44) { muted.current = muted.current.add(event.tags[0][1]); diff --git a/src/pages/chat/index.page.client.tsx b/src/pages/chat/index.page.client.tsx index 30915591..6928a93c 100644 --- a/src/pages/chat/index.page.client.tsx +++ b/src/pages/chat/index.page.client.tsx @@ -4,7 +4,7 @@ import NewsfeedLayout from '@components/layouts/newsfeed'; import { RelayContext } from '@components/relaysProvider'; import { chatMessagesAtom } from '@stores/chat'; -import { FULL_RELAYS } from '@stores/constants'; +import { MESSAGE_RELAYS } from '@stores/constants'; import { usePageContext } from '@utils/hooks/usePageContext'; @@ -20,7 +20,7 @@ export function Page() { const pubkey = searchParams.pubkey; - const [pool]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); const setChatMessages = useSetAtom(chatMessagesAtom); @@ -40,7 +40,7 @@ export function Page() { '#p': [pubkey], }, ], - FULL_RELAYS, + MESSAGE_RELAYS, (event: any) => { setChatMessages((prev) => [...prev, event]); } diff --git a/src/pages/index.page.tsx b/src/pages/index.page.tsx index 5ce354c2..4c8f447b 100644 --- a/src/pages/index.page.tsx +++ b/src/pages/index.page.tsx @@ -1,5 +1,7 @@ import { RelayContext } from '@components/relaysProvider'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { dateToUnix, hoursAgo } from '@utils/getDate'; import { countTotalNotes, @@ -20,7 +22,7 @@ import { useCallback, useContext, useEffect, useRef } from 'react'; import { navigate } from 'vite-plugin-ssr/client/router'; export function Page() { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const now = useRef(new Date()); const timeout = useRef(null); @@ -74,7 +76,7 @@ export function Page() { // subscribe relays const unsubscribe = pool.subscribe( query, - relays, + DEFAULT_RELAYS, (event: { kind: number; tags: string[]; id: string; pubkey: string; content: string; created_at: number }) => { switch (event.kind) { // short text note @@ -136,7 +138,7 @@ export function Page() { unsubscribe(); }; }, - [pool, relays] + [pool] ); useEffect(() => { diff --git a/src/pages/onboarding/create/index.page.client.tsx b/src/pages/onboarding/create/index.page.client.tsx index 1c8f6e28..593a5307 100644 --- a/src/pages/onboarding/create/index.page.client.tsx +++ b/src/pages/onboarding/create/index.page.client.tsx @@ -1,6 +1,8 @@ import OnboardingLayout from '@components/layouts/onboarding'; import { RelayContext } from '@components/relaysProvider'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { createAccount } from '@utils/storage'; import { EyeClose, EyeEmpty } from 'iconoir-react'; @@ -9,7 +11,7 @@ import { useCallback, useContext, useMemo, useState } from 'react'; import { navigate } from 'vite-plugin-ssr/client/router'; export function Page() { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [type, setType] = useState('password'); const [loading, setLoading] = useState(false); @@ -58,10 +60,10 @@ export function Page() { // insert to database createAccount(pubkey, privkey, metadata); // broadcast - pool.publish(event, relays); + pool.publish(event, DEFAULT_RELAYS); // redirect to next step navigate(`/onboarding/create/step-2?pubkey=${pubkey}&privkey=${privkey}`, { overwriteLastHistoryEntry: true }); - }, [pool, pubkey, privkey, metadata, relays]); + }, [pool, pubkey, privkey, metadata]); return ( diff --git a/src/pages/onboarding/create/step-2/index.page.client.tsx b/src/pages/onboarding/create/step-2/index.page.client.tsx index d152353b..a1e7ef06 100644 --- a/src/pages/onboarding/create/step-2/index.page.client.tsx +++ b/src/pages/onboarding/create/step-2/index.page.client.tsx @@ -2,6 +2,8 @@ import OnboardingLayout from '@components/layouts/onboarding'; import { RelayContext } from '@components/relaysProvider'; import { UserBase } from '@components/user/base'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { usePageContext } from '@utils/hooks/usePageContext'; import { fetchProfileMetadata } from '@utils/hooks/useProfileMetadata'; import { createPleb, updateAccount } from '@utils/storage'; @@ -60,7 +62,7 @@ export function Page() { const pubkey = searchParams.pubkey; const privkey = searchParams.privkey; - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [loading, setLoading] = useState(false); const [list, setList]: any = useState(initialList); const [follows, setFollows] = useState([]); @@ -98,10 +100,10 @@ export function Page() { event.id = getEventHash(event); event.sig = signEvent(event, privkey); // broadcast - pool.publish(event, relays); + pool.publish(event, DEFAULT_RELAYS); // redirect to splashscreen navigate('/'); - }, [pubkey, privkey, follows, pool, relays]); + }, [pubkey, privkey, follows, pool]); useEffect(() => { let ignore = false; diff --git a/src/pages/onboarding/login/step-2/index.page.client.tsx b/src/pages/onboarding/login/step-2/index.page.client.tsx index ce3a3b6e..45af9841 100644 --- a/src/pages/onboarding/login/step-2/index.page.client.tsx +++ b/src/pages/onboarding/login/step-2/index.page.client.tsx @@ -1,7 +1,7 @@ import OnboardingLayout from '@components/layouts/onboarding'; import { RelayContext } from '@components/relaysProvider'; -import { DEFAULT_AVATAR } from '@stores/constants'; +import { DEFAULT_AVATAR, DEFAULT_RELAYS } from '@stores/constants'; import { usePageContext } from '@utils/hooks/usePageContext'; import { fetchProfileMetadata } from '@utils/hooks/useProfileMetadata'; @@ -20,7 +20,7 @@ export function Page() { const privkey = searchParams.privkey; const pubkey = useMemo(() => getPublicKey(privkey), [privkey]); - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [profile, setProfile] = useState({ metadata: null }); const [done, setDone] = useState(false); @@ -53,7 +53,7 @@ export function Page() { authors: [pubkey], }, ], - relays, + DEFAULT_RELAYS, (event: any) => { switch (event.kind) { case 0: @@ -85,7 +85,7 @@ export function Page() { unsubscribe(); clearTimeout(timeout.current); }; - }, [pool, relays, pubkey, privkey]); + }, [pool, pubkey, privkey]); return ( diff --git a/src/stores/constants.tsx b/src/stores/constants.tsx index 6f86d0b7..6e94e30b 100644 --- a/src/stores/constants.tsx +++ b/src/stores/constants.tsx @@ -23,7 +23,7 @@ export const DEFAULT_CHANNELS = [ }, ]; export const DEFAULT_RELAYS = ['wss://welcome.nostr.wine', 'wss://relay.nostr.band', 'wss://nostr.mutinywallet.com']; -export const FULL_RELAYS = [ +export const MESSAGE_RELAYS = [ 'wss://relay.damus.io', 'wss://nostr-pub.wellorder.net', 'wss://nostr.zebedee.cloud', diff --git a/src/utils/hooks/useChannelMetadata.tsx b/src/utils/hooks/useChannelMetadata.tsx index a6b68b77..91214c0d 100644 --- a/src/utils/hooks/useChannelMetadata.tsx +++ b/src/utils/hooks/useChannelMetadata.tsx @@ -1,11 +1,13 @@ import { RelayContext } from '@components/relaysProvider'; +import { DEFAULT_RELAYS } from '@stores/constants'; + import { updateChannelMetadata } from '@utils/storage'; import { useCallback, useContext, useEffect, useRef, useState } from 'react'; export const useChannelMetadata = (id: string, fallback: string) => { - const [pool, relays]: any = useContext(RelayContext); + const pool: any = useContext(RelayContext); const [metadata, setMetadata] = useState(null); const unsubscribe = useRef(null); @@ -17,7 +19,7 @@ export const useChannelMetadata = (id: string, fallback: string) => { '#e': [id], }, ], - relays, + DEFAULT_RELAYS, (event: { content: string }) => { const json = JSON.parse(event.content); // update state @@ -32,7 +34,7 @@ export const useChannelMetadata = (id: string, fallback: string) => { logAllEvents: false, } ); - }, [id, pool, relays]); + }, [id, pool]); useEffect(() => { let ignore = false;