import { useQuery } from '@tanstack/react-query'; import { useCallback } from 'react'; import { ChatsListItem } from '@app/chats/components/item'; import { NewMessageModal } from '@app/chats/components/modal'; import { ChatsListSelfItem } from '@app/chats/components/self'; import { UnknownsModal } from '@app/chats/components/unknowns'; import { useStorage } from '@libs/storage/provider'; import { useNostr } from '@utils/hooks/useNostr'; export function ChatsList() { const { db } = useStorage(); const { fetchNIP04Chats } = useNostr(); const { status, data: chats } = useQuery( ['nip04-chats'], async () => { return await fetchNIP04Chats(); }, { refetchOnWindowFocus: false } ); const renderItem = useCallback( (item: string) => { if (db.account.pubkey !== item) { return ; } }, [chats] ); if (status === 'loading') { return (
); } return (
{chats.follows.map((item) => renderItem(item))} {chats.unknowns.length > 0 && }
); }