Modificated structure of the whole project

This commit is contained in:
2021-10-21 21:51:59 -03:00
parent 2a7b3841ec
commit 4aa4d9b11e
38 changed files with 299 additions and 252 deletions

View File

@@ -1,31 +1,6 @@
import React, {useState} from "react"; import React, {useState} from "react";
import CurrentScore from "./components/CurrentScore/CurrentScore";
import Hangman from "./components/Hangman/Hangman";
//import PuzzleWord from "./components/Hangman/PuzzleWord/PuzzleWord"; //import PuzzleWord from "./components/Hangman/PuzzleWord/PuzzleWord";
import Victory from "./components/Victory && Defeat/Victory";
import Defeat from "./components/Victory && Defeat/Defeat";
import Loading from "./components/Loading/Loading";
import AlmacenateCurrentScore from "./Storage Scripts/AlmacenateCurrentScore";
import DetermineUserLanguage from "./General Scripts/DetermineUserLanguage";
import Categories from "./components/Categories/Categories";
import ChangeTitle from "./General Scripts/ChangeTitle";
import AlmacenateCategory from "./Storage Scripts/AlmacenateCategory";
import { RecoveryCurrentScore } from "./Storage Scripts/RecoveryCurrentScore";
import { RecoveryCurrentCategory } from "./Storage Scripts/RecoveryCurrentCategory";
import { RecoveryCurrentLanguage } from "./Storage Scripts/RecoveryCurrentLanguage";
import { AlmacenateLanguage } from "./Storage Scripts/AlmacenateLanguage";
import WrongLetters from "./components/LettersRegistered/LettersRegistered";
import Word from "./components/Word/Word";
import LettersRegistered from "./components/LettersRegistered/LettersRegistered";
import alphabet from "./General Scripts/alphabet"
import checkVictory from "./General Scripts/checkVictory";
import checkDefeat from "./General Scripts/checkDefeat";
import BringTheWords from "./Firebase Querys/BringTheWord";
import SelectRandomWord from "./Firebase Querys/SelectRandomWord";
import getWidthScreenUser from "./General Scripts/getWidthScreenUser";
import LetterInput from "./components/Letter Input/LetterInput";
import introducedLetterSound from './sound/Letter introduced.mp3'
import { import {
BrowserRouter as Router, BrowserRouter as Router,
@@ -33,231 +8,31 @@ import {
Route, Route,
Link Link
} from "react-router-dom"; } from "react-router-dom";
import AppHeader from "./components/AppHeader/AppHeader"; import AppHeader from "./components/Game/components/AppHeader/AppHeader";
import AdminHeader from "./components/Admin/Header/AdminHeader"; import AdminHeader from "./components/Admin/Header/AdminHeader";
import ControlPanel from "./components/Admin/Identify/Identify"; import ControlPanel from "./components/Admin/Identify/Identify";
import Identify from "./components/Admin/Identify/Identify"; import Identify from "./components/Admin/Identify/Identify";
import Game from "./components/Game/Game";
import Admin from "./components/Admin/Admin";
function App() { function App() {
const [displayApp, setDisplayApp] = useState(false)
const [mobileUser, setMobileUser] = useState(false)
const [selectedWord, setSelectedWord] = useState('')
const [correctLetters, setCorrectLetters] = useState([])
const [lettersRegistered, setLettersRegistered] = useState([])
const [language, setLanguage] = useState('english')
const [languageIsReady, setLanguageIsReady] = useState(false)
const [category, setCategory] = useState(false)
const [categoryIsReady, setcategoryIsReady] = useState(false)
const [currentScore, setCurrentScore] = useState(0)
const [hangmanFrame, setHangmanFrame] = useState(0)
const [endOfGame, setEndOfGame] = useState('')
const [displayCategories, setDisplayCategories] = useState(false)
const bringWordFromFirebase = async () => {
if (!displayApp && selectedWord === '') {
setSelectedWord('a')
let word = await BringTheWords(language, category, selectedWord)
word = word.toLowerCase()
console.log(word)
await setSelectedWord(word)
await setDisplayApp(true)
}
}
React.useEffect(() => {
RecoveryCurrentScore(setCurrentScore)
RecoveryCurrentCategory(setCategory)
setcategoryIsReady(true)
DetermineUserLanguage(setLanguage)
RecoveryCurrentLanguage(setLanguage)
setLanguageIsReady(true)
ChangeTitle(language)
setLanguageIsReady(true)
getWidthScreenUser(setMobileUser)
if (!displayApp && selectedWord === '' && categoryIsReady && languageIsReady) {
bringWordFromFirebase()
}
console.log(category)
}, [categoryIsReady])
React.useEffect(() => {
const registerKeys = e => {
if (displayApp) {
console.log(e)
let currentKey
if (!mobileUser) {
currentKey = e.key.toLowerCase()
}
if (mobileUser) {
if (e.key) {
currentKey = e.key.toLowerCase()
}
else {
currentKey = e.explicitOriginalTarget.nodeValue
}
}
if (alphabet.includes(currentKey)) {
setLettersRegistered([...lettersRegistered, currentKey])
const audio = document.getElementsByClassName('letterIntroduced-audio-container')[0]
audio.play()
if (selectedWord.includes(currentKey)) {
if (!correctLetters.includes(currentKey)) {
setCorrectLetters([...correctLetters, currentKey])
checkVictory(setEndOfGame)
}
}
else {
if (hangmanFrame <= 5) {
setHangmanFrame(hangmanFrame + 1)
}
checkDefeat(setEndOfGame, hangmanFrame, setCorrectLetters, selectedWord, mobileUser)
}
}
}
}
if (endOfGame === '') {
window.addEventListener('keyup', registerKeys)
}
return () => window.removeEventListener('keyup', registerKeys)
}, [correctLetters, displayApp, lettersRegistered, setLettersRegistered, hangmanFrame, selectedWord, mobileUser, endOfGame])
React.useEffect(() => {
window.addEventListener('resize', () => getWidthScreenUser(setMobileUser))
return () => window.removeEventListener('resize', () => getWidthScreenUser(setMobileUser))
}, [])
if (endOfGame) {
setTimeout(() => {
AlmacenateCurrentScore(currentScore)
AlmacenateCategory(category)
AlmacenateLanguage(language)
window.location.reload(false)
}, 3000)
}
return ( return (
<Router> <Router>
<> <>
<Switch> <Switch>
<Route path='/identify'> <Route path='/identify'>
<AdminHeader />
<Identify /> <Admin />
</Route> </Route>
<Route path="/"> <Route path="/">
<AppHeader
language={language}
category={category} <Game />
displayCategories={displayCategories} </Route>
setDisplayCategories={setDisplayCategories}
/>
<div className="game-container">
{
languageIsReady ?
<div className='categories-container'>
<Categories currentScore={currentScore} displayCategories={displayCategories} AppLanguage={language} category={category} setCategory={setCategory} categoryIsReady={categoryIsReady} setLanguage={setLanguage}/>
</div>
:null
}
<div className='column-1'>
<Hangman
hangmanFrame={hangmanFrame}
/>
</div>
<div className='column-2'>
<CurrentScore
currentScore={currentScore}
language={language}
/>
<Word
selectedWord={selectedWord}
correctLetters={correctLetters}
/>
</div>
</div>
{
mobileUser ?
<LetterInput
/>
:null
}
{
!displayApp ? <Loading /> : null
}
{endOfGame === 'Victory' ? <Victory currentScore={currentScore} setCurrentScore={setCurrentScore} language={language}/> : null}
{endOfGame === 'Defeat' ? <Defeat language={language}/> : null}
<LettersRegistered
lettersRegistered={lettersRegistered}
/>
<audio className="letterIntroduced-audio-container">
<source src={introducedLetterSound} type="audio/mp3" autoPlay="true"></source>
</audio>
</Route>
</Switch> </Switch>
</> </>
</Router> </Router>

View File

@@ -0,0 +1,14 @@
import React from 'react'
import AdminHeader from './Header/AdminHeader'
import Identify from './Identify/Identify'
const Admin = () => {
return (
<>
<AdminHeader />
<Identify />
</>
)
}
export default Admin

View File

@@ -19,20 +19,25 @@ const Form = () => {
option === 'login' ? option === 'login' ?
<form> <form>
<input type="email" placeholder="Email"/> <input type="email" placeholder="Email" id="login-email"/>
<input type="password" placeholder="Password"/> <input type="password" placeholder="Password" id="login-password"/>
<input type="submit" value="Login" /> <input type="submit" value="Login" id="login-submit"/>
</form> </form>
: //saasasasasas : null
}
{
option === 'register' ?
<form> <form>
<input type="email" placeholder="Email"/> <input type="email" placeholder="Email" id="register-email"/>
<input type="password" placeholder="Password"/> <input type="password" placeholder="Password" id="register-password"/>
<input type="password" placeholder="Confirm Password" value=""/> <input type="password" placeholder="Confirm Password" id="register-confirm-password"/>
<input type="password" placeholder="Admin Reffer Code"/> <input type="password" placeholder="Admin Reffer Code" id="register-admin-code"/>
<input type="submit" value="Register"/> <input type="submit" value="Register" id=""/>
</form> </form>
: null
} }
</div> </div>
) )

View File

@@ -0,0 +1,252 @@
import React, {useState} from "react";
import CurrentScore from "./components/CurrentScore/CurrentScore";
import Hangman from "./components/Hangman/Hangman";
//import PuzzleWord from "./components/Hangman/PuzzleWord/PuzzleWord";
import Victory from "./components/Victory && Defeat/Victory";
import Defeat from "./components/Victory && Defeat/Defeat";
import Loading from "./components/Loading/Loading";
import AlmacenateCurrentScore from "../../Storage Scripts/AlmacenateCurrentScore";
import DetermineUserLanguage from "../../General Scripts/DetermineUserLanguage";
import Categories from "./components/Categories/Categories";
import ChangeTitle from "../../General Scripts/ChangeTitle";
import AlmacenateCategory from "../../Storage Scripts/AlmacenateCategory";
import { RecoveryCurrentScore } from "../../Storage Scripts/RecoveryCurrentScore";
import { RecoveryCurrentCategory } from "../../Storage Scripts/RecoveryCurrentCategory";
import { RecoveryCurrentLanguage } from "../../Storage Scripts/RecoveryCurrentLanguage";
import { AlmacenateLanguage } from "../../Storage Scripts/AlmacenateLanguage";
import WrongLetters from "./components/LettersRegistered/LettersRegistered";
import Word from "./components/Word/Word";
import LettersRegistered from "./components/LettersRegistered/LettersRegistered";
import alphabet from "../../General Scripts/alphabet"
import checkVictory from "../../General Scripts/checkVictory";
import checkDefeat from "../../General Scripts/checkDefeat";
import BringTheWords from "../../Firebase Querys/BringTheWord";
import SelectRandomWord from "../../Firebase Querys/SelectRandomWord";
import getWidthScreenUser from "../../General Scripts/getWidthScreenUser";
import LetterInput from "./components/Letter Input/LetterInput";
import introducedLetterSound from './sound/Letter introduced.mp3';
import AppHeader from "./components/AppHeader/AppHeader";
import {
BrowserRouter as Router,
Switch,
Route,
Link
} from "react-router-dom";
function Game() {
const [displayApp, setDisplayApp] = useState(false)
const [mobileUser, setMobileUser] = useState(false)
const [selectedWord, setSelectedWord] = useState('')
const [correctLetters, setCorrectLetters] = useState([])
const [lettersRegistered, setLettersRegistered] = useState([])
const [language, setLanguage] = useState('english')
const [languageIsReady, setLanguageIsReady] = useState(false)
const [category, setCategory] = useState(false)
const [categoryIsReady, setcategoryIsReady] = useState(false)
const [currentScore, setCurrentScore] = useState(0)
const [hangmanFrame, setHangmanFrame] = useState(0)
const [endOfGame, setEndOfGame] = useState('')
const [displayCategories, setDisplayCategories] = useState(false)
const bringWordFromFirebase = async () => {
if (!displayApp && selectedWord === '') {
setSelectedWord('a')
let word = await BringTheWords(language, category, selectedWord)
word = word.toLowerCase()
console.log(word)
await setSelectedWord(word)
await setDisplayApp(true)
}
}
React.useEffect(() => {
RecoveryCurrentScore(setCurrentScore)
RecoveryCurrentCategory(setCategory)
setcategoryIsReady(true)
DetermineUserLanguage(setLanguage)
RecoveryCurrentLanguage(setLanguage)
setLanguageIsReady(true)
ChangeTitle(language)
setLanguageIsReady(true)
getWidthScreenUser(setMobileUser)
if (!displayApp && selectedWord === '' && categoryIsReady && languageIsReady) {
bringWordFromFirebase()
}
console.log(category)
}, [categoryIsReady])
React.useEffect(() => {
const registerKeys = e => {
if (displayApp) {
console.log(e)
let currentKey
if (!mobileUser) {
currentKey = e.key.toLowerCase()
}
if (mobileUser) {
if (e.key) {
currentKey = e.key.toLowerCase()
}
else {
currentKey = e.explicitOriginalTarget.nodeValue
}
}
if (alphabet.includes(currentKey)) {
setLettersRegistered([...lettersRegistered, currentKey])
const audio = document.getElementsByClassName('letterIntroduced-audio-container')[0]
audio.play()
if (selectedWord.includes(currentKey)) {
if (!correctLetters.includes(currentKey)) {
setCorrectLetters([...correctLetters, currentKey])
checkVictory(setEndOfGame)
}
}
else {
if (hangmanFrame <= 5) {
setHangmanFrame(hangmanFrame + 1)
}
checkDefeat(setEndOfGame, hangmanFrame, setCorrectLetters, selectedWord, mobileUser)
}
}
}
}
if (endOfGame === '') {
window.addEventListener('keyup', registerKeys)
}
return () => window.removeEventListener('keyup', registerKeys)
}, [correctLetters, displayApp, lettersRegistered, setLettersRegistered, hangmanFrame, selectedWord, mobileUser, endOfGame])
React.useEffect(() => {
window.addEventListener('resize', () => getWidthScreenUser(setMobileUser))
return () => window.removeEventListener('resize', () => getWidthScreenUser(setMobileUser))
}, [])
if (endOfGame) {
setTimeout(() => {
AlmacenateCurrentScore(currentScore)
AlmacenateCategory(category)
AlmacenateLanguage(language)
window.location.reload(false)
}, 3000)
}
return (
<>
<AppHeader
language={language}
category={category}
displayCategories={displayCategories}
setDisplayCategories={setDisplayCategories}
/>
<div className="game-container">
{
languageIsReady ?
<div className='categories-container'>
<Categories currentScore={currentScore} displayCategories={displayCategories} AppLanguage={language} category={category} setCategory={setCategory} categoryIsReady={categoryIsReady} setLanguage={setLanguage}/>
</div>
:null
}
<div className='column-1'>
<Hangman
hangmanFrame={hangmanFrame}
/>
</div>
<div className='column-2'>
<CurrentScore
currentScore={currentScore}
language={language}
/>
<Word
selectedWord={selectedWord}
correctLetters={correctLetters}
/>
</div>
</div>
{
mobileUser ?
<LetterInput
/>
:null
}
{
!displayApp ? <Loading /> : null
}
{endOfGame === 'Victory' ? <Victory currentScore={currentScore} setCurrentScore={setCurrentScore} language={language}/> : null}
{endOfGame === 'Defeat' ? <Defeat language={language}/> : null}
<LettersRegistered
lettersRegistered={lettersRegistered}
/>
<audio className="letterIntroduced-audio-container">
<source src={introducedLetterSound} type="audio/mp3" autoPlay="true"></source>
</audio>
</>
);
}
export default Game;

View File

@@ -1,8 +1,8 @@
import React from "react" import React from "react"
import capitalize from "../../General Scripts/Capilazate" import capitalize from "../../../../General Scripts/Capilazate"
import AlmacenateCategory from "../../Storage Scripts/AlmacenateCategory" import AlmacenateCategory from "../../../../Storage Scripts/AlmacenateCategory"
import AlmacenateCurrentScore from "../../Storage Scripts/AlmacenateCurrentScore" import AlmacenateCurrentScore from "../../../../Storage Scripts/AlmacenateCurrentScore"
import { AlmacenateLanguage } from "../../Storage Scripts/AlmacenateLanguage" import { AlmacenateLanguage } from "../../../../Storage Scripts/AlmacenateLanguage"
import Bring_All_Categories from "./Firebase Querys/Bring All Categories" import Bring_All_Categories from "./Firebase Querys/Bring All Categories"
import Bring_All_Languages from "./Firebase Querys/Bring All Languages" import Bring_All_Languages from "./Firebase Querys/Bring All Languages"

View File

@@ -1,7 +1,7 @@
import { firestore } from "../../../Firebase/Firebase_Config" import { firestore } from "../../../../../Firebase/Firebase_Config"
import { getFirestore, collection, getDocs } from 'firebase/firestore/lite'; import { getFirestore, collection, getDocs } from 'firebase/firestore/lite';
import AdjustHeightCategories from "../Scripts/AdjustHeightCategories"; import AdjustHeightCategories from "../Scripts/AdjustHeightCategories";
import capitalize from "../../../General Scripts/Capilazate"; import capitalize from "../../../../../General Scripts/Capilazate";
const Bring_All_Categories = async (setCategories, setStrech, language) => { const Bring_All_Categories = async (setCategories, setStrech, language) => {

View File

@@ -1,6 +1,7 @@
import { getDocs, getFirestore, collection } from "@firebase/firestore/" import { getDocs, getFirestore, collection } from "@firebase/firestore/"
import { firestore } from "../../../Firebase/Firebase_Config" import { firestore } from "../../../../../Firebase/Firebase_Config"
import capitalize from "../../../General Scripts/Capilazate"
import capitalize from "../../../../../General Scripts/Capilazate"
const Bring_All_Languages = async (setLanguage) => { const Bring_All_Languages = async (setLanguage) => {

View File

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -4,7 +4,7 @@ import loadingGifLightTheme from '../../img/loading-light-theme.png'
const Loading = () => { const Loading = () => {
return ( return (
<div className='loading'> <div className='loading'>
<img src={loadingGifLightTheme} alt="" /> <img src={loadingGifLightTheme} alt="loading" />
</div> </div>
) )
} }

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB