This commit is contained in:
2021-10-20 20:22:53 -03:00
parent ef0fe3d836
commit 4765b26389
10 changed files with 84 additions and 19 deletions

View File

@@ -65,6 +65,9 @@ header h2 {
justify-content: center;
align-items: flex-end;
}
.word .letter.blank {
border: none;
}
.word .counter {
font-size: 40pt;
font-family: Arial, Helvetica, sans-serif;

View File

@@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["../sass/index.scss","../sass/_header.scss","../sass/_game-container.scss","../sass/_hangman.scss","../sass/_word.scss","../sass/_current-score.scss","../sass/_categories.scss","../sass/_defeat-victory.scss","../sass/_loading.scss","../sass/_letters-registered.scss","../sass/_letter-input.scss"],"names":[],"mappings":";AAAA;EACI;EACA;;;ACFJ;EACI;EAEA;EAEA;EACA;EACA;EACA;;AAEA;EDHA;EACA;EAIA;EACA;;ACGA;EDTA;EACA;EAIA;EACA;ECMI;EACA;EAEA;;;ACtBR;EAEI;EACA;EAEA;;AAMA;EACI;EACA;EAEA;;;ACfR;EAEI;;AAEA;EACI;;;ACLR;EJkBI;EACA;EIhBA;EAEA;EACA;EAEA;EAEA;EACA;;AAEA;EACI;EACA;EACA;EAEA;EAEA;EACA;EACA;;AAGJ;EACI;EAEA;EAEA;;;AC9BR;EAEI;EAEA;ELGA;EACA;EKAA;EAEA;;AAEA;EACI;;;ACbR;EAEI;;AAEA;EAEI;EAEA;EACA;EAEA;EACA;EAEA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EAEA;EACA;;AAEA;EACI;EACA;EAEA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACI;EACA;;AA0BJ;EArBI,OAFuD;EAIvD,kBAoBc;EAnBd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAYZ;EA3BI,OAFuD;EAIvD,kBA0Bc;EAzBd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAkBZ;EAjCI,OAFuD;EAIvD,kBAgCc;EA/Bd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAwBZ;EAvCI,OAyCY;EAvCZ,kBAsCc;EArCd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AA+BZ;EA9CI,OAFuD;EAIvD,kBA6Cc;EA5Cd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAqCZ;EApDI,OAsDY;EApDZ,kBAmDc;EAlDd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AA4CZ;EA3DI,OAFuD;EAIvD,kBA0Dc;EAzDd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAmDhB;EACI;EAEA;EACA;;AAEA;EAEI;;AAIR;EACI;;AAIJ;EACI;EACA;;AAEA;EAEI;;AAGJ;EAEI;;;ACnJhB;EACI;EACA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EAEA;EAEA;EAEA;;AAEA;EACI;EACA;;;AAIR;EACI;;;AAGJ;EACI;;;AC9BJ;EACI;EACA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EACA;;AAEA;EACI;EACA;;;AChBR;EACI;EAEA;EAEA;EAEA;EACA;EACA;EAEA;;AAEA;EACI;;;ACdR;EACI;EAEA;EACA;EACA;;AAEA;EAII,OAFO;EAGP,QAHO;EAKP;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA","file":"index.css"}
{"version":3,"sourceRoot":"","sources":["../sass/index.scss","../sass/_header.scss","../sass/_game-container.scss","../sass/_hangman.scss","../sass/_word.scss","../sass/_current-score.scss","../sass/_categories.scss","../sass/_defeat-victory.scss","../sass/_loading.scss","../sass/_letters-registered.scss","../sass/_letter-input.scss"],"names":[],"mappings":";AAAA;EACI;EACA;;;ACFJ;EACI;EAEA;EAEA;EACA;EACA;EACA;;AAEA;EDHA;EACA;EAIA;EACA;;ACGA;EDTA;EACA;EAIA;EACA;ECMI;EACA;EAEA;;;ACtBR;EAEI;EACA;EAEA;;AAMA;EACI;EACA;EAEA;;;ACfR;EAEI;;AAEA;EACI;;;ACLR;EJkBI;EACA;EIhBA;EAEA;EACA;EAEA;EAEA;EACA;;AAEA;EACI;EACA;EACA;EAEA;EAEA;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EAEA;EAEA;;;AClCR;EAEI;EAEA;ELGA;EACA;EKAA;EAEA;;AAEA;EACI;;;ACbR;EAEI;;AAEA;EAEI;EAEA;EACA;EAEA;EACA;EAEA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EAEA;EACA;;AAEA;EACI;EACA;EAEA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACI;EACA;;AA0BJ;EArBI,OAFuD;EAIvD,kBAoBc;EAnBd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAYZ;EA3BI,OAFuD;EAIvD,kBA0Bc;EAzBd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAkBZ;EAjCI,OAFuD;EAIvD,kBAgCc;EA/Bd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAwBZ;EAvCI,OAyCY;EAvCZ,kBAsCc;EArCd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AA+BZ;EA9CI,OAFuD;EAIvD,kBA6Cc;EA5Cd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAqCZ;EApDI,OAsDY;EApDZ,kBAmDc;EAlDd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AA4CZ;EA3DI,OAFuD;EAIvD,kBA0Dc;EAzDd;EAEA;EAEA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;;AAmDhB;EACI;EAEA;EACA;;AAEA;EAEI;;AAIR;EACI;;AAIJ;EACI;EACA;;AAEA;EAEI;;AAGJ;EAEI;;;ACnJhB;EACI;EACA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EAEA;EAEA;EAEA;;AAEA;EACI;EACA;;;AAIR;EACI;;;AAGJ;EACI;;;AC9BJ;EACI;EACA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EACA;;AAEA;EACI;EACA;;;AChBR;EACI;EAEA;EAEA;EAEA;EACA;EACA;EAEA;;AAEA;EACI;;;ACdR;EACI;EAEA;EACA;EACA;;AAEA;EAII,OAFO;EAGP,QAHO;EAKP;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA","file":"index.css"}

View File

@@ -21,6 +21,10 @@
display: flex;
justify-content: center;
align-items: flex-end;
&.blank {
border: none;
}
}
.counter {

View File

@@ -220,8 +220,8 @@ function App() {
!displayApp ? <Loading /> : null
}
{endOfGame === 'Victory' ? <Victory currentScore={currentScore} setCurrentScore={setCurrentScore} /> : null}
{endOfGame === 'Defeat' ? <Defeat /> : null}
{endOfGame === 'Victory' ? <Victory currentScore={currentScore} setCurrentScore={setCurrentScore} language={language}/> : null}
{endOfGame === 'Defeat' ? <Defeat language={language}/> : null}
<LettersRegistered
lettersRegistered={lettersRegistered}

View File

@@ -13,7 +13,8 @@ const BringTheWords = async (language = 'english', category = false, selectedWor
if (!category || category === 'false') {
category = await GetRandomCategory()
category = await GetRandomCategory(language)
console.log(category)
}
@@ -24,7 +25,11 @@ const BringTheWords = async (language = 'english', category = false, selectedWor
const result = await getDocs(data)
const words = await result.docs.map(doc => doc.id)
console.log(result)
const words = await result.docs.map(doc => doc.id)
console.log(words)
const word = await SelectRandomWord(await words)
return await word

View File

@@ -1,7 +1,7 @@
import {firestore} from '../Firebase/Firebase_Config'
import { getFirestore, collection, doc, getDocs, getDoc } from 'firebase/firestore/lite';
const GetRandomCategory = async () => {
const GetRandomCategory = async (language) => {
let categoriesList = []
@@ -12,14 +12,17 @@ const GetRandomCategory = async () => {
const data = collection(db, `categories`)
const result = await getDocs(data)
result.docs.map(doc => categoriesList.push(doc.id.toLowerCase()))
console.log(result)
result.docs.map(doc => categoriesList.push(doc.get(language)))
console.log(categoriesList)
const randomNumber = Math.trunc(
Math.random() * (categoriesList.length - 0) + 0
)
return categoriesList[randomNumber]
return categoriesList[randomNumber].toLowerCase()
} catch (error) {
console.log(error)

View File

@@ -1,13 +1,19 @@
const DetermineUserLanguage = (setLanguage) => {
console.log(navigator.language)
if (!localStorage.getItem('languageDetermined')) {
if (navigator.language === 'es') {
setLanguage('spanish')
}
console.log(navigator.language)
if (navigator.language === 'es') {
setLanguage('spanish')
}
if (navigator.language === 'en' || navigator.language === 'en-US') {
setLanguage('english')
}
if (navigator.language === 'en' || navigator.language === 'en-US') {
setLanguage('english')
localStorage.setItem('languageDetermined', 'true')
}
}

View File

@@ -1,7 +1,26 @@
const Defeat = () => {
import React from "react"
const Defeat = ({language}) => {
const [text, setText] = React.useState('')
React.useEffect(() => {
if (language === 'english') {
setText('DEFEAT')
}
if (language === 'spanish') {
setText('PERDISTE')
}
}, [])
return (
<div className="defeat animate__animated animate__backInDown">
<h1>DEFEAT</h1>
<h1>{text}</h1>
</div>
)
}

View File

@@ -1,16 +1,28 @@
import React from 'react'
const Victory = ({currentScore, setCurrentScore}) => {
const Victory = ({currentScore, setCurrentScore, language}) => {
const [text, setText] = React.useState('')
React.useEffect(() => {
setCurrentScore(parseInt(currentScore) + 1)
if (language === 'english') {
setText('VICTORY')
}
if (language === 'spanish') {
setText('VICTORIA')
}
}, [])
return (
<div className="victory animate__animated animate__backInDown">
<h1>VICTORY</h1>
<h1>{text}</h1>
</div>
)
}

View File

@@ -1,6 +1,9 @@
import React from 'react'
const Word = ({selectedWord, correctLetters}) => {
let blankSpaces = 0
return (
<div className="word" id='word'>
{
@@ -8,6 +11,16 @@ const Word = ({selectedWord, correctLetters}) => {
letter = letter.toLowerCase()
if (letter === ' ') {
blankSpaces++
return (
<span className="letter blank" key={i}>
&#8205;
</span>
)
}
if (i === 0) {
letter = letter.toUpperCase()
}
@@ -21,7 +34,7 @@ const Word = ({selectedWord, correctLetters}) => {
}
<span className='counter'>
({selectedWord.length})
({selectedWord.length - blankSpaces})
</span>
</div>
)