import React from 'react'; import Facade from '../Datafacade/datafacade'; import { NavLink } from 'react-router-dom'; import Loader from 'react-loader-spinner'; import { usePromiseTracker } from "react-promise-tracker"; import { FormControl } from "react-bootstrap"; import PlayersSearch from "../playerSearch/playersSearch"; const LoadingIndicator = props => { const { promiseInProgress } = usePromiseTracker(); return promiseInProgress &&
}; class Leaderboard extends React.Component { constructor(props) { super(props) this.state = { players: [], breakload: true, scrollListener: {}, keyword: "", searchBool: true, }; this.scrollListener = this.handleScroll.bind(this); } handleKeywordInput = e => { const searchTerm = e.target.value; this.setState({ keyword: searchTerm }); this.setState({ searchBool: true }); }; handleSubmit = e => { e.preventDefault(); this.setState({ searchBool: false }); }; componentWillMount() { window.addEventListener('scroll', this.scrollListener); } componentWillUnmount() { window.removeEventListener("scroll", this.scrollListener); } componentDidMount = async () => { this.setState({ breakload: false }) const players = await Facade.getLeaderBoardFromCache(0); this.setState({ breakload: true }) this.setState({ players }); }; findLateIndex(array) { return array[array.length - 5]; } handleScroll = () => { if (this.state.breakload) { const player = this.findLateIndex(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.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 (

UNLOZE Zombie Escape LeaderBoard

Browse LeaderBoard Players

MapBoard

{!this.state.breakload ?

: ""} {this.state.searchBool ? ("") : ()}
{this.state.players.map(e => (
{e.steamID}
{e.name}
{e.Avatar}
Check Player
Rank: {e.Rank}
Points: {e.PlayerPoints}
Times: {e.Times}
{e.UrlBanners.map(banners => ( ))}


))}
); } } export default Leaderboard;