import { Spin } from 'antd'; import { useCallback, useEffect } from 'react'; import { CheckCircleOutlined, CloseCircleOutlined, GlobalOutlined, DoubleRightOutlined, SyncOutlined } from '@ant-design/icons'; import { useUploadStore } from '@/store/useUploadStore'; import { useLoadInfoStore } from '@/store/useLoadInfoStore'; import classNames from 'classnames'; import LoadMore from '../LoadMore'; const colorClasses = [ 'bg-red-500', 'bg-pink-500', 'bg-purple-500', 'bg-indigo-500', 'bg-blue-500', 'bg-cyan-500', 'bg-teal-500', 'bg-green-500', 'bg-lime-500', 'bg-yellow-500', 'bg-amber-500', 'bg-orange-500' ]; const NetWorkMemberList = () => { const loading = useUploadStore((state) => state.loading); const total = useUploadStore((state) => state.total); const uploads = useUploadStore((state) => state.uploads); const fetchUploadList = useUploadStore((state) => state.fetchUploadList); const loadInfo = useLoadInfoStore((state) => state.loadInfo); useEffect(() => { fetchUploadList(); }, []); const getRandomColor = (str: string) => { if (!str) return 'bg-gray-400'; let hash = 0; for (let i = 0; i < str.length; i++) { hash = str.charCodeAt(i) + ((hash << 5) - hash); } const index = Math.abs(hash) % colorClasses.length; return colorClasses[index]; }; const renderUploadList = useCallback(() => { return uploads?.map((upload) => { const uploadStatus = upload.instance_id == loadInfo?.instance_id ? loadInfo?.status : upload?.status; return (
{ window.open( `https://app.secondme.io/${upload.upload_name}/${upload.instance_id}`, '_blank' ); }} >
{upload?.upload_name ? upload?.upload_name.charAt(0).toUpperCase() : '?'}
{upload?.upload_name || 'Unknown'}
{uploadStatus === 'offline' ? ( ) : uploadStatus === 'registered' ? ( ) : ( )} {uploadStatus || 'Unknown'}
); }); }, [uploads, loadInfo]); if (loading && uploads.length == 0) { return ; } if (uploads.length === 0) { return (

Network is Empty

Be the first to join the Second Me network!

); } return (
{renderUploadList()} {total !== uploads.length && ( fetchUploadList(false)} scrollContainerId="#netWorkMemberScrollList" /> )}
); }; export default NetWorkMemberList;