import React, { Fragment, useEffect, useState } from "react"; import "../css/HomePage.css" import { Build, getBuilds, getJobs, Job } from "../util/Jenkins"; import "../css/DownloadPage.css" import { Button } from "react-bootstrap"; const DownloadPage = () => { const [ jobs, setJobs ] = useState(new Map()) const [ version, setVersion ] = useState("") useEffect(() => { doJobs().then(value => { }) }, []) function doJobs(): Promise { return new Promise(resolve => { getJobs().then(value => { for (let job of value) { getBuilds(job.name).then(value1 => { setJobs(prevState => { let map = new Map([ ...prevState, [ job, value1 ] ]) if (map.size >= value.length) { let job = Array.from(map.keys()).sort((a, b) => parseFloat(a.name) - parseFloat(b.name)).reverse()[0] setVersion(job.name) } return new Map([ ...map.entries() ].sort((a, b) => parseFloat(a[0].name) - parseFloat(b[0].name)).reverse()) }) resolve() }) } }) }) } function onClick(event: React.MouseEvent) { setVersion(event.currentTarget.innerHTML) } return (
    {Array.from(jobs.keys()).map(value => { return
  • {value.name}
  • })}
    {jobs.get(Array.from(jobs.keys()).filter(value => value.name === version)[0])?.map(value => { return
    • {value.changes?.map(value1 => { return
    • [{value1.id}]  {value1.comment}
    • })}
    0 ? "date" : "date nochanges"}>{new Date(value.timestamp!).toISOString().split("T")[0]}
  • })}
); } export default DownloadPage;