import { NDKEvent } from '@nostr-dev-kit/ndk'; import { useQuery } from '@tanstack/react-query'; import { useCallback, useEffect } from 'react'; import { Outlet, useNavigate } from 'react-router-dom'; import { ChatListItem } from '@app/chats/components/chatListItem'; import { useNDK } from '@libs/ndk/provider'; import { LoaderIcon } from '@shared/icons'; import { useNostr } from '@utils/hooks/useNostr'; export function ChatsScreen() { const navigate = useNavigate(); const { ndk } = useNDK(); const { getAllNIP04Chats } = useNostr(); const { status, data } = useQuery({ queryKey: ['nip04-chats'], queryFn: async () => { return await getAllNIP04Chats(); }, refetchOnWindowFocus: false, refetchOnMount: false, refetchOnReconnect: false, staleTime: Infinity, }); const renderItem = useCallback( (event: NDKEvent) => { return ; }, [data] ); useEffect(() => { if (!ndk.signer) navigate('/new/privkey'); }, []); return (

All chats

{status === 'pending' ? (
Loading messages...
) : data.length < 1 ? (
No message
) : ( data.map((item) => renderItem(item)) )}
); }