import { Fragment, useState } from 'react' import classNames from 'classnames' import { Image, Popup } from '../../system' import { Button } from '../Button' import { GameAssetsDownloader, GameDataDownloader } from '../../../config/GameDownloader' import { handleConvertion } from '../../../tools/handleConvertion' import { Downloader } from './Downloader' import type { ConvertionHandler } from '../../../types/global' import { Loader } from '../../design' export const Downloaders: React.FC = () => { const [message, setMessage] = useState('') const [error, setError] = useState(false) const [popup, setPopup] = useState(false) const [loading, setLoading] = useState(true) const callback: ConvertionHandler = (message, state = 'idle') => { switch (state) { case 'loading': setMessage(message) return setLoading(true) case 'success': setMessage(message) return setLoading(false) case 'error': setMessage(message) setError(true) return setLoading(false) } } const downloadGameData = async (): Promise => { setPopup(true) setLoading(true) const startTime = new Date() await handleConvertion('com', callback) const endTime = new Date() const seconds = ((endTime.getTime() - startTime.getTime()) / 1000).toFixed(2) return callback(`Completed in: ${seconds} seconds`, 'success') } return ( {message}