Files
qmining-page/src/pages/pwRequest.js
T
2021-04-19 17:28:05 +02:00

175 lines
4.9 KiB
JavaScript

import React, { useState, useEffect } from 'react'
import fetch from 'unfetch'
import Head from 'next/head'
import Link from 'next/link'
import Sleep from '../components/sleep'
import styles from './pwRequest.module.css'
import constants from '../constants.json'
function fetchAvailablePWS() {
return new Promise((resolve) => {
fetch(`${constants.apiUrl}avaiblePWS`, {
credentials: 'include',
})
.then((resp) => {
return resp.json()
})
.then((res) => {
resolve(res)
})
})
}
function requestPw() {
return new Promise((resolve) => {
fetch(constants.apiUrl + 'getpw', {
method: 'POST',
credentials: 'include',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
})
.then((res) => {
return res.json()
})
.then((res) => {
resolve(res)
})
})
}
export default function PwRequest({ globalData }) {
const userId = globalData.userId || '...'
const [result, setResult] = useState([])
const [data, setData] = useState({
userCreated: '...',
availablePWS: '...',
requestedPWS: '...',
maxPWCount: '...',
daysAfterUserGetsPWs: '...',
addPWPerDay: '...',
addPWCount: '...',
dayDiff: '...',
userCount: '...',
})
const {
userCreated,
availablePWS,
requestedPWS,
maxPWCount,
daysAfterUserGetsPWs,
addPWPerDay,
addPWCount,
dayDiff,
userCount,
} = data
useEffect(() => {
fetchAvailablePWS().then((data) => {
setData(data)
})
}, [])
return (
// TODO: a generált jelszó modal-on való megjelenítésének kivitelezése.
/* TODO: <span>{' ' + createDate}</span>-kor. rész után az oldal összes jelenlegi
felhasználójának darabszámának megjelenítése.*/
<div>
<Head>
<title>Jelszó generálás - Qmining | Frylabs.net</title>
</Head>
<div className={'pageHeader'}>
<h1>Jelszó generálás</h1>
</div>
<Sleep />
<div id="form">
<div className={styles.text}>
<p className={styles.descrip}>
Minden felhasználó egyedi jelszót kap. Ne használjatok többen egy
jelszót, mert egy idő után kidob a rendszer. A jelszavakról bővebben
a jelszavakról bővebben a{' '}
<Link href="/faq">
<a>GYIK</a>
</Link>
-ben olvashatsz.
</p>
</div>
<div className={styles.text}>
Jelszó kérési lehetőségeit minden
<span>{' ' + addPWPerDay + '. '}</span>
nap a következő logika alapján növekednek:
<ul>
<li>
Ha a felhasználói fiókod fiatalabb mint
<span>{' ' + daysAfterUserGetsPWs + '. '}</span>
nap, akkor nem kapsz új lehetőséget.
</li>
<li>
Ha több mint
<span>{' ' + maxPWCount + ' '}</span>
jelszó kérési lehetőséged van, akkor nem ezek száma.
</li>
<li>
Ha az előző kettő nem zárja ki, akkor jelszó kérési lehetőségeid
<span>{' ' + addPWCount + ' '}</span>
darabbal növekednek.
</li>
</ul>
Eddig
<span>{' ' + requestedPWS + ' '}</span>
jelszót kértél. Jelenleg
<span>{' ' + (availablePWS - requestedPWS) + ' '}</span>
db jelszót kérhetsz.
<br />A jelenleg bejelentkezett felhasználó (
<span>{' #' + userId + ' '}</span>)<span>{' ' + dayDiff + ' '}</span>
napos,{' '}
<span>
{userCreated ? new Date(userCreated).toLocaleString() : '...'}
</span>
-kor lett létrehozva.
<br />
Az oldalnak eddig
<span>{' ' + userCount + ' '}</span>
felhasználója van
</div>
<center>
<div className={`buttonContainer ${styles.pwButton}`}>
<div
onClick={() => {
requestPw().then((res) => {
setData(res)
if (res.success) {
setResult([...result, res.pw])
} else {
setResult([
...result,
'Jelszó kérési lehetőségeid elfogytak, nézz vissza később',
])
}
})
}}
>
Jelszó kérése
</div>
</div>
</center>
{result ? (
<div className={styles.pwContainer}>
{result.map((res, i) => {
return (
<div key={i} className={styles.pw}>
{i + 1}.: {res}
</div>
)
})}
</div>
) : null}
</div>
</div>
)
}