import React from 'react'; import { UploadRunContent } from '../types/Content'; import '../css/UploadRunDialog.css'; import { Game } from '../types/Game'; import Games from '../pages/Games'; import { Map } from '../types/Map'; import { API } from '../api/Api'; interface UploadRunDialogProps { open: boolean; onClose: () => void; mapID?: number; games: Game[]; } const UploadRunDialog: React.FC = ({ open, onClose, mapID, games }) => { const [uploadRunContent, setUploadRunContent] = React.useState({ map_id: 0, host_demo: null, partner_demo: null, partner_id: undefined, is_partner_orange: undefined, }); const [selectedGameID, setSelectedGameID] = React.useState(0); const [selectedGameMaps, setSelectedGameMaps] = React.useState([]); const [loading, setLoading] = React.useState(false); const _handle_game_select = async (game_id: string) => { setLoading(true); const gameMaps = await API.get_game_maps(game_id); setSelectedGameMaps(gameMaps); setUploadRunContent({ ...uploadRunContent, map_id: gameMaps[0].id, }); setSelectedGameID(parseInt(game_id) - 1); setLoading(false); }; React.useEffect(() => { if (open) { _handle_game_select("1"); // a different approach?. } }, [open]); if (open) { return ( <>
Select Game { !loading && ( <> Select Map Host Demo { games[selectedGameID].is_coop && ( <> Partner Demo ) } ) }
); } return ( <> ); }; export default UploadRunDialog;