import {AvailableMods} from "../core/api"; import React, {useEffect, useState} from "react"; import {NavLink} from "react-router-dom"; import {IMod} from "../types/Imod"; function Mods (mods: IMod[]) { let mapWithModVersions: Map = new Map(); mods.forEach( mod => { const versionList = mapWithModVersions.get(mod.name) if(versionList == null){ mapWithModVersions.set(mod.name, new Array(mod)) } else { versionList.push(mod) } }) function Mod (modName: String) { let sameMods = mapWithModVersions.get(modName) ?? [] let lastBeta = sameMods.filter((m) => m.isBeta).reverse()[0] return(

{modName}

{sameMods.filter((m) => !m.isBeta).map(mod => )} {sameMods.find((m) => m.isBeta) != null &&
Beta versions:
} {lastBeta != null && }
) } return( [...mapWithModVersions.keys()].map(m => Mod(m)) ) } interface ModsPageState { mods: IMod[] } class ModsPage extends React.Component { constructor({props}: { props: any }) { super(props); this.state = { mods: [] } } async componentDidMount() { const response = await fetch(AvailableMods); const data: IMod[] = await response.json(); console.log(data); this.setState({ mods : data }); } render() { return
{Mods(this.state.mods)}
; } } export default ModsPage