Removed feedback

This commit is contained in:
mrfry 2021-03-05 17:13:43 +01:00
parent 561aa21d93
commit d84948918f
3 changed files with 0 additions and 265 deletions

View file

@ -22,10 +22,5 @@
"ranklist": { "ranklist": {
"href": "/ranklist", "href": "/ranklist",
"text": "Ranklista" "text": "Ranklista"
},
"feedback": {
"href": "/feedback",
"text": "Feedback",
"id": "feedback"
} }
} }

View file

@ -1,214 +0,0 @@
import React, { useState } from 'react'
import fetch from 'unfetch'
import Head from 'next/head'
import Button from '../components/Button.js'
import styles from './feedback.module.css'
import constants from '../constants.json'
const results = {
success: 'SUCCESS',
error: 'ERROR',
notSent: 'NOTSENT',
invalid: 'INVALID',
}
export default function Feedback() {
const [form, setForm] = useState({})
const [file, setFile] = useState(undefined)
const [result, setResult] = useState(results.notSent)
const [fileResult, setFileResult] = useState(results.notSent)
const onChange = (event) => {
setForm({
...form,
[event.target.name]: event.target.value,
})
}
const renderTextInputArea = (params) => {
return (
<div className={styles.inputArea}>
<div className={styles.textTitle}>{params.text}</div>
<textarea
autoFocus={params.autoFocus}
onChange={(event) => params.onChange(event)}
value={form[params.name] || ''}
className={styles.feedback}
name={params.name}
/>
</div>
)
}
const onFileChangeHandler = (event) => {
setForm({
...form,
file: event.target.files[0].name,
})
setFile(event.target.files[0])
}
const renderFileUploader = () => {
return (
<div className={styles.inputArea}>
<div className={styles.textTitle}>Fájl csatolása</div>
<input
className={styles.fileInput}
type="file"
name="file"
onChange={onFileChangeHandler}
/>
</div>
)
}
const handleSubmit = async () => {
if (!form.description) {
setResult(results.invalid)
}
const t = document.getElementById('cid').value
let cid = ''
let version = ''
if (t) {
cid = t.split('|')[0]
version = t.split('|')[1]
}
const rawResponse = await fetch(constants.apiUrl + 'postfeedback', {
method: 'POST',
credentials: 'include',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
...form,
cid: cid,
version: version,
}),
})
rawResponse
.json()
.then((resp) => {
if (resp.success) {
setResult(results.success)
} else {
setResult(results.error)
}
})
.catch((err) => {
setResult(results.error)
console.error(err)
})
if (file) {
const formData = new FormData() // eslint-disable-line
formData.append('file', file)
const rawFileResponse = await fetch(
constants.apiUrl + 'postfeedbackfile',
{
method: 'POST',
credentials: 'include',
headers: {
Accept: 'application/json',
},
body: formData,
}
)
rawFileResponse
.json()
.then((resp) => {
if (resp.success) {
setFileResult(results.success)
} else {
setFileResult(results.error)
}
})
.catch((err) => {
setFileResult(results.error)
console.error('FILE error', err)
})
}
}
const renderResult = () => {
if (results === result.success) {
return <div>sucess</div>
} else if (results === result.error) {
return <div>error</div>
} else if (results === result.invalid) {
return <div>invalid</div>
} else {
return null
}
}
// action={constants.apiUrl + 'badtestsender'} encType='multipart/form-data' method='post'
const renderForm = (props) => {
return (
<div className={styles.feedback}>
{props.noDesc ? (
<div className={styles.errorMsg}>Mező kitöltése kötelező!</div>
) : null}
{renderTextInputArea({
text: 'Rövid leírás',
name: 'description',
onChange: onChange,
autoFocus: true,
})}
<div className={styles.desc}>
Bal aluli levelesláda ikonnál keresd majd a választ
</div>
{renderFileUploader()}
<div className={styles.buttonContainer}>
<button className={styles.button} onClick={handleSubmit}>
Küldés
</button>
</div>
<input type="text" id="cid" name="cid" hidden />
{renderResult()}
</div>
)
}
const renderStuff = () => {
if (result === results.notSent && fileResult === results.notSent) {
return <div className={styles.textTitle}>{renderForm({})}</div>
} else if (result === results.invalid) {
return (
<div className={styles.textTitle}>{renderForm({ noDesc: true })}</div>
)
} else if (result === results.success && !file) {
return <div className={styles.textTitle}>Visszajelzés elküldve c:</div>
} else if (result === results.error && fileResult === results.success) {
return <div className={styles.textTitle}>Hiba küldés közben :c</div>
} else if (result === results.success && fileResult === results.error) {
return (
<div className={styles.textTitle}>
Visszajelzés elküldve, de fájlt nem sikerült elküldeni :c
</div>
)
} else if (result === results.success && fileResult === results.success) {
return <div className={styles.textTitle}>Visszajelzés elküldve c:</div>
} else {
return <div className={styles.textTitle}>Bit of a fuckup here</div>
}
}
return (
<div>
<Head>
<title>Feedback - Qmining | Frylabs.net</title>
</Head>
<Button text="IRC chat" href="/irc" />
<p />
<hr />
<p />
{renderStuff()}
</div>
)
}

View file

@ -1,46 +0,0 @@
.feedback {
color: var(--text-color);
background-color: var(--background-color);
font-size: 16px;
width: 100%;
box-sizing: border-box;
height: 120px;
}
.buttonContainer {
text-align: 'center';
width: 200px;
margin: 0 auto;
padding: 10px;
}
.desc {
font-size: 16px;
color: white;
}
.textTitle {
color: var(--text-color);
font-size: 20px;
}
.button {
background-color: var(--text-color);
border: none;
padding: 10px 30px;
color: white;
width: 200px;
}
.textInputArea {
padding: 20px 0px;
}
.fileInput {
margin: 10px;
color: var(--text-color);
}
.errorMsg {
color: red;
}