mirror of
https://github.com/FranP-code/Hangman-game-with-React.git
synced 2025-10-13 00:42:32 +00:00
Delete word done
This commit is contained in:
@@ -524,6 +524,7 @@ header .redirect-button:hover {
|
|||||||
background-color: #9ec9e2;
|
background-color: #9ec9e2;
|
||||||
transition: ease-in-out 0.4s;
|
transition: ease-in-out 0.4s;
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
|
border-bottom: 3px solid #7e7e7e;
|
||||||
}
|
}
|
||||||
.control-panel .buttons-container button.add-words:hover {
|
.control-panel .buttons-container button.add-words:hover {
|
||||||
background-color: #9ec9e2;
|
background-color: #9ec9e2;
|
||||||
@@ -538,6 +539,7 @@ header .redirect-button:hover {
|
|||||||
background-color: #d38fd9;
|
background-color: #d38fd9;
|
||||||
transition: ease-in-out 0.4s;
|
transition: ease-in-out 0.4s;
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
|
border-bottom: 3px solid #7e7e7e;
|
||||||
}
|
}
|
||||||
.control-panel .buttons-container button.add-category:hover {
|
.control-panel .buttons-container button.add-category:hover {
|
||||||
background-color: #d38fd9;
|
background-color: #d38fd9;
|
||||||
@@ -552,6 +554,7 @@ header .redirect-button:hover {
|
|||||||
background-color: #f9ae74;
|
background-color: #f9ae74;
|
||||||
transition: ease-in-out 0.4s;
|
transition: ease-in-out 0.4s;
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
|
border-bottom: 3px solid #7e7e7e;
|
||||||
}
|
}
|
||||||
.control-panel .buttons-container button.delete-category:hover {
|
.control-panel .buttons-container button.delete-category:hover {
|
||||||
background-color: #f9ae74;
|
background-color: #f9ae74;
|
||||||
@@ -566,6 +569,7 @@ header .redirect-button:hover {
|
|||||||
background-color: #e89191;
|
background-color: #e89191;
|
||||||
transition: ease-in-out 0.4s;
|
transition: ease-in-out 0.4s;
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
|
border-bottom: 3px solid #7e7e7e;
|
||||||
}
|
}
|
||||||
.control-panel .buttons-container button.delete-word:hover {
|
.control-panel .buttons-container button.delete-word:hover {
|
||||||
background-color: #e89191;
|
background-color: #e89191;
|
||||||
@@ -580,6 +584,7 @@ header .redirect-button:hover {
|
|||||||
background-color: #98c973;
|
background-color: #98c973;
|
||||||
transition: ease-in-out 0.4s;
|
transition: ease-in-out 0.4s;
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
|
border-bottom: 3px solid #7e7e7e;
|
||||||
}
|
}
|
||||||
.control-panel .buttons-container button.edit-word:hover {
|
.control-panel .buttons-container button.edit-word:hover {
|
||||||
background-color: #98c973;
|
background-color: #98c973;
|
||||||
@@ -657,6 +662,11 @@ header .redirect-button:hover {
|
|||||||
.control-panel .action-form.add-category form .frist-row input[type=text], .control-panel .action-form.add-category form .second-row input[type=text] {
|
.control-panel .action-form.add-category form .frist-row input[type=text], .control-panel .action-form.add-category form .second-row input[type=text] {
|
||||||
margin-bottom: 1vh;
|
margin-bottom: 1vh;
|
||||||
}
|
}
|
||||||
|
.control-panel .action-form.delete-word .loading {
|
||||||
|
position: absolute;
|
||||||
|
top: 25vh;
|
||||||
|
height: 30vh;
|
||||||
|
}
|
||||||
.control-panel .action-form.delete-word form select {
|
.control-panel .action-form.delete-word form select {
|
||||||
margin-bottom: 0.5vh;
|
margin-bottom: 0.5vh;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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","../sass/_form.scss","../sass/_message.scss","../sass/control-panel/_control-panel.scss","../sass/control-panel/_action-form.scss","../sass/control-panel/_message.scss"],"names":[],"mappings":"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","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","../sass/_form.scss","../sass/_message.scss","../sass/control-panel/_control-panel.scss","../sass/control-panel/_action-form.scss","../sass/control-panel/_message.scss"],"names":[],"mappings":"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","file":"index.css"}
|
||||||
@@ -108,6 +108,13 @@
|
|||||||
|
|
||||||
&.delete-word {
|
&.delete-word {
|
||||||
|
|
||||||
|
.loading {
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
top: 25vh;
|
||||||
|
height: 30vh;
|
||||||
|
}
|
||||||
|
|
||||||
form {
|
form {
|
||||||
|
|
||||||
select {
|
select {
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
transition: ease-in-out 0.4s;
|
transition: ease-in-out 0.4s;
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
|
|
||||||
|
border-bottom: 3px solid rgb(126, 126, 126);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import AddWordToFirebase from './Firebase Querys/AddWordToFirebase'
|
|||||||
|
|
||||||
const AddWord = () => {
|
const AddWord = () => {
|
||||||
|
|
||||||
const [loading, setLoading] = useState(false)
|
const [loading, setLoading] = useState(true)
|
||||||
const [languageList, setLanguageList] = useState([])
|
const [languageList, setLanguageList] = useState([])
|
||||||
const [categoryList, setCategoryList] = useState([])
|
const [categoryList, setCategoryList] = useState([])
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,173 @@
|
|||||||
import React from 'react'
|
import React, {useState} from 'react'
|
||||||
|
import Loading from '../../Loading/Loading'
|
||||||
|
import Messages from '../../Messages/Messages'
|
||||||
|
import capitalize from '../../Scripts/Capilazate'
|
||||||
|
import BringCategories from '../AddWord/Firebase Querys/BringCategories'
|
||||||
|
import BringLanguages from '../AddWord/Firebase Querys/BringLanguages'
|
||||||
|
import BringTheWordsFromFirebase from './Firebase Querys/BringTheWordsFromFirebase'
|
||||||
|
import DeleteWordFromFirebase from './Firebase Querys/DeleteWordFromFirebase'
|
||||||
|
|
||||||
const DeleteWord = () => {
|
const DeleteWord = () => {
|
||||||
|
|
||||||
|
const [loading, setLoading] = useState(true)
|
||||||
|
|
||||||
|
const [languageList, setLanguageList] = useState([])
|
||||||
|
const [categoryList, setCategoryList] = useState([])
|
||||||
|
const [wordsList, setWordsList] = useState([])
|
||||||
|
|
||||||
|
const [languageSelect, setLanguageSelect] = useState('')
|
||||||
|
const [categorySelect, setCategorySelect] = useState('')
|
||||||
|
const [wordSelect, setWordSelect] = useState('')
|
||||||
|
|
||||||
|
const [data, setData] = useState(false)
|
||||||
|
|
||||||
|
const bringData = async (response = false) => {
|
||||||
|
|
||||||
|
const bringCategoriesToThisComponent = async () => {
|
||||||
|
|
||||||
|
const categories = await BringCategories()
|
||||||
|
setCategoryList(categories)
|
||||||
|
}
|
||||||
|
|
||||||
|
const bringLanguagesToThisComponent = async () => {
|
||||||
|
|
||||||
|
const languages = await BringLanguages()
|
||||||
|
setLanguageList(languages)
|
||||||
|
}
|
||||||
|
|
||||||
|
await bringCategoriesToThisComponent()
|
||||||
|
await bringLanguagesToThisComponent()
|
||||||
|
|
||||||
|
if (response) {
|
||||||
|
setData(response)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
setLoading(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const bringWords = async (category) => {
|
||||||
|
|
||||||
|
setLoading(true)
|
||||||
|
setCategorySelect(category)
|
||||||
|
|
||||||
|
console.log(category);
|
||||||
|
|
||||||
|
const words = await BringTheWordsFromFirebase(languageSelect, category)
|
||||||
|
|
||||||
|
await setWordsList(words)
|
||||||
|
await setLoading(false)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const submitForm = async (e) => {
|
||||||
|
|
||||||
|
e.preventDefault()
|
||||||
|
setLoading(true)
|
||||||
|
|
||||||
|
if (languageSelect === '' || languageSelect === 'default') {
|
||||||
|
|
||||||
|
setData({
|
||||||
|
submit: false,
|
||||||
|
message: 'Language empty'
|
||||||
|
})
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (categorySelect === '' || categorySelect === 'default') {
|
||||||
|
|
||||||
|
setData({
|
||||||
|
submit: false,
|
||||||
|
message: 'Category empty'
|
||||||
|
})
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wordSelect === '' || wordSelect === 'default') {
|
||||||
|
|
||||||
|
setData({
|
||||||
|
submit: false,
|
||||||
|
message: 'No word selected'
|
||||||
|
})
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const response = await DeleteWordFromFirebase(languageSelect, categorySelect, wordSelect)
|
||||||
|
|
||||||
|
|
||||||
|
setLanguageList([])
|
||||||
|
setCategoryList([])
|
||||||
|
setWordsList([])
|
||||||
|
setLanguageSelect('')
|
||||||
|
setCategorySelect('')
|
||||||
|
setWordSelect('')
|
||||||
|
|
||||||
|
bringData(response)
|
||||||
|
}
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
|
||||||
|
bringData()
|
||||||
|
|
||||||
|
}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="action-form delete-word">
|
<>
|
||||||
<form>
|
{
|
||||||
<select>
|
data ?
|
||||||
<option>Select category</option>
|
<Messages data={data} />
|
||||||
</select>
|
: null
|
||||||
<select>
|
}
|
||||||
<option>Select word</option>
|
<div className="action-form delete-word">
|
||||||
</select>
|
{
|
||||||
<input type="submit" value="Delete" />
|
loading ?
|
||||||
</form>
|
<Loading />
|
||||||
</div>
|
: null
|
||||||
|
}
|
||||||
|
<form
|
||||||
|
onSubmit={(e) => submitForm(e)}
|
||||||
|
>
|
||||||
|
|
||||||
|
<select
|
||||||
|
onChange={(e) => {
|
||||||
|
setLanguageSelect(e.target.value)
|
||||||
|
setCategorySelect('')
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<option value="default">Select language</option>
|
||||||
|
{
|
||||||
|
languageList.map(language => <option key={language} value={language}>{capitalize(language)}</option>)
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select
|
||||||
|
disabled={languageSelect === '' && !loading ? true : false}
|
||||||
|
onChange={(e) => bringWords(e.target.value)}
|
||||||
|
value={categorySelect}
|
||||||
|
>
|
||||||
|
<option value="default">Select category</option>
|
||||||
|
{
|
||||||
|
categoryList.map(category => <option key={category} value={category}>{capitalize(category)}</option>)
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
<select
|
||||||
|
disabled={categorySelect === '' && !loading ? true : false}
|
||||||
|
onChange={(e) => setWordSelect(e.target.value)}
|
||||||
|
value={wordSelect}
|
||||||
|
>
|
||||||
|
<option value="default">Select word</option>
|
||||||
|
{
|
||||||
|
wordsList.map(word => <option key={word} value={word}>{capitalize(word)}</option>)
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
<input type="submit" value="Delete" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
import {firestore} from '../../../../../../Firebase/Firebase_Config'
|
||||||
|
import { getFirestore, collection, getDocs } from 'firebase/firestore/lite';
|
||||||
|
|
||||||
|
const BringCategories = async () => {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
const db = getFirestore(firestore)
|
||||||
|
const data = await collection(db, 'categories')
|
||||||
|
const result = await getDocs(data)
|
||||||
|
|
||||||
|
const categories = await result.docs.map(doc => doc.data().english)
|
||||||
|
|
||||||
|
return await categories
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
alert(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default BringCategories
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
const BringLanguages = () => {
|
||||||
|
|
||||||
|
return ['english', 'spanish']
|
||||||
|
}
|
||||||
|
|
||||||
|
export default BringLanguages
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import { firestore } from '../../../../../../Firebase/Firebase_Config';
|
||||||
|
import { getFirestore, collection, getDocs } from 'firebase/firestore/lite';
|
||||||
|
|
||||||
|
const BringTheWordsFromFirebase = async (language, category) => {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
const db = getFirestore(firestore)
|
||||||
|
const data = await collection(db, `hangman_words/${language}/${category}`)
|
||||||
|
const result = await getDocs(data)
|
||||||
|
|
||||||
|
const words = result.docs.map(doc => doc.id)
|
||||||
|
|
||||||
|
return await words
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default BringTheWordsFromFirebase
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
import { firestore } from "../../../../../../Firebase/Firebase_Config";
|
||||||
|
import { getFirestore, doc, deleteDoc, getDoc, collection, getDocs, listDocuments } from "firebase/firestore";
|
||||||
|
|
||||||
|
const DeleteWordFromFirebase = async (language, category, word) => {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
const db = getFirestore(firestore)
|
||||||
|
|
||||||
|
const categoryRef = doc(db, 'categories', category)
|
||||||
|
const categoryFirebase = await getDoc(categoryRef)
|
||||||
|
|
||||||
|
const categoryLocalizated = categoryFirebase.data()[language]
|
||||||
|
|
||||||
|
console.log(categoryLocalizated)
|
||||||
|
|
||||||
|
await deleteDoc(doc(db, `hangman_words/${language}/${category}`, word))
|
||||||
|
|
||||||
|
return await {
|
||||||
|
sucess: true,
|
||||||
|
message: `All Right!`
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
|
||||||
|
return {
|
||||||
|
sucess: false,
|
||||||
|
message: `There's been an error deleting the word ${word}`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default DeleteWordFromFirebase
|
||||||
Reference in New Issue
Block a user