import React, { useState, useEffect } from 'react'
import fetch from 'unfetch'
import LoadingIndicator from '../components/LoadingIndicator'
import Sleep from '../components/sleep'
import styles from './ranklist.module.css'
import constants from '../constants.json'
const selectOptions = {
newQuestions: { name: 'Beküldött új kérdések' },
allQuestions: { name: 'Megoldott kérdések' },
count: { name: 'Megoldott tesztek' },
}
async function getListFromServer() {
return new Promise((resolve, reject) => {
console.info('Fetching data')
fetch(`${constants.apiUrl}ranklist`, {
credentials: 'include',
Accept: 'application/json',
'Content-Type': 'application/json',
})
.then((resp) => {
return resp.json()
})
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(error)
})
})
}
function sortDataBy(data, key) {
return data.sort((a, b) => {
if (a[key] < b[key]) {
return 1
} else if (a[key] > b[key]) {
return -1
} else {
return 0
}
})
}
export default function RankList() {
const [ranklist, setRanklist] = useState(null)
const [selfUserId, setSelfUserId] = useState(null)
const [key, setKey] = useState('newQuestions')
const getList = () => {
setRanklist(null)
getListFromServer(key)
.then((data) => {
setRanklist(data.list)
setSelfUserId(data.selfUserId)
})
.catch((error) => {
console.error(error)
setRanklist(null)
})
}
useEffect(() => {
getList()
}, [])
if (!ranklist) {
return