1
0
mirror of https://github.com/lexogrine/cs2-react-hud.git synced 2026-05-04 12:13:11 +02:00

initial commit

This commit is contained in:
Hubert Walczak
2023-09-11 12:37:32 +02:00
commit 989ede8638
247 changed files with 7656 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
import React from 'react';
import './tournament.scss';
import { actions } from '../../App';
import * as I from './../../api/interfaces';
import api from '../../api/api';
import Ladder from './Ladder';
interface State {
tournament: I.Tournament | null,
teams: I.Team[],
matches: I.Match[],
show: boolean,
}
export default class Tournament extends React.Component<{}, State> {
constructor(props: {}) {
super(props);
this.state = {
tournament: null,
matches: [],
teams: [],
show: false
}
}
async componentDidMount() {
const { tournament } = await api.tournaments.get();
if(tournament){
actions.on("showTournament", async (show: string) => {
if(show !== "show"){
return this.setState({show: false});
}
this.setState({tournament}, () => {
this.setState({show:true})
});
});
Promise.all([api.match.get(), api.teams.get()]).then(([matches, teams]) =>{
this.setState({matches, teams});
});
}
}
render() {
const { tournament, matches, teams, show } = this.state;
if(!tournament) return null;
return (
<div className={`ladder-container ${show ? 'show':''}`}>
<div className="tournament-data">
{ tournament.logo ? <img src={`data:image/jpeg;base64,${tournament.logo}`} alt={tournament.name} /> : null }
<div className="tournament-name">
{tournament.name}
</div>
</div>
<Ladder
tournament={tournament}
matches={matches}
teams={teams}
/>
</div>
);
}
}