import type React from 'react'; import { useState } from 'react'; import { useUIKit, Button } from '@tencentcloud/uikit-base-component-react'; import classNames from 'classnames'; import { ContactStore } from 'tuikit-atomicx-react/chat'; import { Avatar } from 'tuikit-atomicx-react/chat'; import styles from './SearchUserInfo.module.scss'; import type { SearchUserInfoProps } from '../../../../types/contact'; export const SearchUserInfo: React.FC = ({ user, showActions = true, onAddFriend, className, style, }) => { const { t } = useUIKit(); const { addFriend } = ContactStore(); const [wording, setWording] = useState(''); const [loading, setLoading] = useState(false); const [status, setStatus] = useState<'idle' | 'success' | 'error'>('idle'); const [errorMessage, setErrorMessage] = useState(''); const handleAddFriend = async () => { if (loading) { return; } setLoading(true); setStatus('idle'); setErrorMessage(''); if (onAddFriend) { setStatus('success'); setLoading(false); onAddFriend?.(user, wording.trim() || t('ContactList.apply_to_add_friend')); return; } try { await addFriend({ userID: user.userID, source: 'AddSource_Type_Web', addWording: wording.trim() || t('ContactList.apply_to_add_friend'), }); setStatus('success'); } catch (error: any) { setStatus('error'); setErrorMessage(error?.message || t('ContactList.add_friend_failed')); } finally { setLoading(false); } }; const displayName = user.nickname || user.userID; return (
{displayName}
{t('ContactList.id')} : {user.userID}
{t('ContactList.personal_signature')}
{user.aboutMe || t('ContactList.none')}
{ status !== 'idle' ? (
{ status === 'success' ? t('ContactList.friend_request_sent_waiting_for_confirmation') : errorMessage}
) : (