just making sure to have a backup online
This commit is contained in:
@@ -1,48 +1,87 @@
|
||||
import React from 'react';
|
||||
import Facade from '../Datafacade/datafacade';
|
||||
import { NavLink } from 'react-router-dom'
|
||||
import { NavLink } from 'react-router-dom';
|
||||
|
||||
class Leaderboard extends React.Component {
|
||||
constructor(props) {
|
||||
super(props)
|
||||
this.state = {
|
||||
players: []
|
||||
players: [],
|
||||
breakload: true,
|
||||
};
|
||||
}
|
||||
|
||||
componentWillMount() {
|
||||
this.scrollListener = window.addEventListener("scroll", e => {
|
||||
this.handleScroll(e);
|
||||
});
|
||||
}
|
||||
|
||||
componentDidMount = async () => {
|
||||
const players = await Facade.getLeaderBoard();
|
||||
this.setState({ breakload: false })
|
||||
const players = await Facade.getLeaderBoardFromCache(0);
|
||||
this.setState({ breakload: true })
|
||||
this.setState({ players });
|
||||
this.props.setLeaderboard(players);
|
||||
};
|
||||
|
||||
findSecondLast(array) {
|
||||
return array[array.length - 2];
|
||||
}
|
||||
|
||||
handleScroll = () => {
|
||||
const player = this.findSecondLast(this.state.players);
|
||||
var lastLi = document.getElementById('leaderboard/' + player.steamID);
|
||||
var lastLiOffset = lastLi.offsetTop + lastLi.clientHeight;
|
||||
var pageOffset = window.pageYOffset + window.innerHeight;
|
||||
if (pageOffset > lastLiOffset && this.state.breakload) {
|
||||
this.setState({ breakload: false })
|
||||
this.loadPlayers();
|
||||
}
|
||||
};
|
||||
|
||||
loadPlayers = async () => {
|
||||
const players = await Facade.getLeaderBoardFromCache(this.state.players.length + 1);
|
||||
this.setState({ players });
|
||||
this.setState({ breakload: true })
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
return (
|
||||
<React.Fragment>
|
||||
<div className="container mm" style={{ marginTop: "85px" }}>
|
||||
<div style={{
|
||||
position: 'absolute', left: '50%', top: '30%'
|
||||
}}>
|
||||
{this.state.players.map(e => (
|
||||
<div>
|
||||
<NavLink to={'/player/' + e.steamID}>
|
||||
<strong class="col-lg-1 col-centered" /> {e.steamID}<br />
|
||||
<strong class="col-lg-1 col-centered" />{e.name}<br />
|
||||
<img src={e.Avatar} /> <br />
|
||||
<strong class="col-lg-1 col-centered" />Rank: {e.Rank}<br />
|
||||
<strong class="col-lg-1 col-centered" />Points: {e.PlayerPoints}<br />
|
||||
<strong class="col-lg-1 col-centered" />Times: {e.Times}<br />
|
||||
<br />
|
||||
<br />
|
||||
</NavLink>
|
||||
</div>
|
||||
))}
|
||||
<ul>
|
||||
<div className="container mm" style={{ marginTop: "85px" }}>
|
||||
<div style={{
|
||||
position: 'absolute', left: '50%', top: '30%'
|
||||
}}>
|
||||
<NavLink to={'/mapboard/'}>
|
||||
<h3> <strong className="col-lg-1 col-centered" /> MapBoard<br /> </h3>
|
||||
</NavLink>
|
||||
<br />
|
||||
<br />
|
||||
{this.state.players.map(e => (
|
||||
<li key={e.steamID} id={"leaderboard/" + e.steamID}>
|
||||
<NavLink to={'/player/' + e.steamID}>
|
||||
<strong className="col-lg-1 col-centered" /> {e.steamID}<br />
|
||||
<strong className="col-lg-1 col-centered" />{e.name}<br />
|
||||
<img src={e.Avatar} alt="" /> <br />
|
||||
<strong className="col-lg-1 col-centered" />Rank: {e.Rank}<br />
|
||||
<strong className="col-lg-1 col-centered" />Points: {e.PlayerPoints}<br />
|
||||
<strong className="col-lg-1 col-centered" />Times: {e.Times}<br />
|
||||
<br />
|
||||
<br />
|
||||
</NavLink>
|
||||
</li>
|
||||
))}
|
||||
{!this.state.breakload ? <h1> <br /> <br /><p className="loading">
|
||||
Loading More Players...
|
||||
</p> </h1> : ""}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
</React.Fragment>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export default Leaderboard;
|
||||
Reference in New Issue
Block a user