mirror of
https://github.com/FranP-code/Hangman-game-with-React.git
synced 2025-10-13 00:42:32 +00:00
bug fix
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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"}
|
||||
@@ -21,6 +21,10 @@
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: flex-end;
|
||||
|
||||
&.blank {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.counter {
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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')
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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}>
|
||||
‍
|
||||
</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>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user