import { Button, Card, Divider, Select, Space, Spin, Typography } from 'antd'; import type React from 'react'; import { clubs } from './clubList'; import { useCallback, useEffect, useState } from 'react'; import { useRequest } from 'ahooks'; import { GlobalOutlined } from '@ant-design/icons'; import type { IEventInfo } from '../../types'; interface Props { onGameClick?: (info: IEventInfo) => void; } export const GameSelector: React.FC = props => { const requestEvents = useRequest( async (clubId: string) => (await fetch(`/api/events/${clubId}`)).json() , { manual: true }) const [gameList, setGameList] = useState([]); const [isEmpty, setIsEmpty] = useState(false); const [clubId, setClubId] = useState(clubs[0].clubId); const handleClubChange = useCallback(async (clubId: string) => { const list = await requestEvents.runAsync(clubId); const activeList = list.filter(e => !e.info.join('').includes('已结束')); setGameList(activeList); setIsEmpty(activeList.length === 0); }, []); useEffect(() => { const clubId = clubs[0].clubId; handleClubChange(clubId); }, []); return (