import logo from './logo512.png'; import './App.css'; import 'bootstrap/dist/css/bootstrap.min.css'; import { useState,useEffect } from 'react'; import Container from 'react-bootstrap/Container'; import Row from 'react-bootstrap/Row'; import Col from 'react-bootstrap/Col'; import Navbar from 'react-bootstrap/Navbar'; import Button from 'react-bootstrap/Button'; import ProgressBar from 'react-bootstrap/ProgressBar'; import Accordion from 'react-bootstrap/Accordion'; const parse = require('csv-parse/lib/sync') const axios = require('axios'); function ItemGroup(p) { function findIndex(name,arr) { for (var i=0;i {p.name} {p.data.sort((a,b)=>{ if (b.required===b.obtained&&a.required===a.obtained) { return a.id-b.id } else if (b.required===b.obtained) { return -1 } else { return 0 } }).map((item,i,arr)=> {item.name} {var newData=[...p.data];newData[i].obtained=Math.min(item.required,f.currentTarget.value);p.setData(newData);}} type="number" min="0" max={item.required}/> / {item.required} View Item Info )} } function App() { const [data,setData] = useState([]) const [fileData,setFileData] = useState() const [update,setUpdate] = useState(true) const [succeeded,setSucceeded] = useState(0) const [failed,setFailed] = useState(0) const [total,setTotal] = useState(0) const [listData,setListData] = useState([]) const disabled=true function downloadData(d,val,max) { if (val{ setTimeout(downloadData(d,val+1,max),250) }) .catch((err)=>{ setFailed(failed+1) }) } } useEffect(()=>{ if (update) { axios.get("https://projectdivar.com:4505/getData") .then((data)=>{ setData(data.data) }) .catch((err)=>{ console.log(err.message) }) setUpdate(false) } },[update]) useEffect(()=>{ if (succeeded+failed===total) { setUpdate(true) } },[succeeded,failed]) useEffect(()=>{ var d = parse(fileData,{columns:true,skip_empty_lines:true}) console.log(d) var promises = [] downloadData(d,0,d.length) setTotal(d.length) },[fileData]) return ( BUN logo BUN Collab App {data.length>0? <> {/* */} : !disabled&& {total===0?{ const reader = new FileReader() reader.onload=(ev)=>{ setFileData(ev.target.result) } reader.readAsText(f.target.files[0]) }} style={{opacity:0}} id="uploads" type="file" accept=".txt,.csv"/>: <>
{Math.round(((failed+succeeded)/total)*100)+"%"}
}
}
); } export default App;