import React, { useState } from 'react'; import { network } from '../p2p/index.js'; export default function FriendsView({ dms }) { const [activeTab, setActiveTab] = useState('pending'); const [searchUsername, setSearchUsername] = useState(''); const[searchStatus, setSearchStatus] = useState(''); // 'searching', 'queued', 'found', 'error' const pendingIncoming = Object.entries(dms).filter(([_, data]) => data.status === 'pending_incoming'); const pendingOutgoing = Object.entries(dms).filter(([_, data]) => data.status === 'pending_outgoing'); const handleAddFriend = async (e) => { e.preventDefault(); const target = searchUsername.trim().toLowerCase(); if (!target) return; if (target === network.username) { setSearchStatus('error'); return; } setSearchStatus('searching'); const result = await network.searchUser(target); if (result) { await network.sendDMRequest(result.pubKey, result.profile); setSearchStatus('found'); setSearchUsername(''); } else { await network.queueFriendRequest(target); setSearchStatus('queued'); setSearchUsername(''); } }; return (
You can add a contact with their username. It's case sensitive!
{searchStatus === 'searching' &&Searching network...
} {searchStatus === 'found' &&Success! Your contact request was sent.
} {searchStatus === 'queued' &&User is currently offline. We queued your request and will send it automatically when they come online!
} {searchStatus === 'error' &&You cannot send a contact request to yourself.
}