From 8245279999227498a73d01026c63dd7c5ed9be81 Mon Sep 17 00:00:00 2001 From: Francisco Pessano Date: Sat, 23 Oct 2021 23:02:43 -0300 Subject: [PATCH] Delete word done --- public/css/index.css | 10 + public/css/index.css.map | 2 +- public/sass/control-panel/_action-form.scss | 7 + public/sass/control-panel/_control-panel.scss | 1 + .../Control Panel/Actions/AddWord/AddWord.jsx | 2 +- .../Actions/DeleteWord/DeleteWord.jsx | 179 ++++++++++++++++-- .../Firebase Querys/BringCategories.js | 22 +++ .../Firebase Querys/BringLanguages.js | 6 + .../BringTheWordsFromFirebase.js | 20 ++ .../Firebase Querys/DeleteWordFromFirebase.js | 34 ++++ 10 files changed, 269 insertions(+), 14 deletions(-) create mode 100644 src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringCategories.js create mode 100644 src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringLanguages.js create mode 100644 src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringTheWordsFromFirebase.js create mode 100644 src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/DeleteWordFromFirebase.js diff --git a/public/css/index.css b/public/css/index.css index 357ce5c..d4a6beb 100644 --- a/public/css/index.css +++ b/public/css/index.css @@ -524,6 +524,7 @@ header .redirect-button:hover { background-color: #9ec9e2; transition: ease-in-out 0.4s; transform: scale(1.1); + border-bottom: 3px solid #7e7e7e; } .control-panel .buttons-container button.add-words:hover { background-color: #9ec9e2; @@ -538,6 +539,7 @@ header .redirect-button:hover { background-color: #d38fd9; transition: ease-in-out 0.4s; transform: scale(1.1); + border-bottom: 3px solid #7e7e7e; } .control-panel .buttons-container button.add-category:hover { background-color: #d38fd9; @@ -552,6 +554,7 @@ header .redirect-button:hover { background-color: #f9ae74; transition: ease-in-out 0.4s; transform: scale(1.1); + border-bottom: 3px solid #7e7e7e; } .control-panel .buttons-container button.delete-category:hover { background-color: #f9ae74; @@ -566,6 +569,7 @@ header .redirect-button:hover { background-color: #e89191; transition: ease-in-out 0.4s; transform: scale(1.1); + border-bottom: 3px solid #7e7e7e; } .control-panel .buttons-container button.delete-word:hover { background-color: #e89191; @@ -580,6 +584,7 @@ header .redirect-button:hover { background-color: #98c973; transition: ease-in-out 0.4s; transform: scale(1.1); + border-bottom: 3px solid #7e7e7e; } .control-panel .buttons-container button.edit-word:hover { 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] { margin-bottom: 1vh; } +.control-panel .action-form.delete-word .loading { + position: absolute; + top: 25vh; + height: 30vh; +} .control-panel .action-form.delete-word form select { margin-bottom: 0.5vh; } diff --git a/public/css/index.css.map b/public/css/index.css.map index a73b691..37060bd 100644 --- a/public/css/index.css.map +++ b/public/css/index.css.map @@ -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"} \ No newline at end of file +{"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"} \ No newline at end of file diff --git a/public/sass/control-panel/_action-form.scss b/public/sass/control-panel/_action-form.scss index 8c8b7e6..b2ba76d 100644 --- a/public/sass/control-panel/_action-form.scss +++ b/public/sass/control-panel/_action-form.scss @@ -108,6 +108,13 @@ &.delete-word { + .loading { + + position: absolute; + top: 25vh; + height: 30vh; + } + form { select { diff --git a/public/sass/control-panel/_control-panel.scss b/public/sass/control-panel/_control-panel.scss index 2f557e8..d430721 100644 --- a/public/sass/control-panel/_control-panel.scss +++ b/public/sass/control-panel/_control-panel.scss @@ -63,6 +63,7 @@ transition: ease-in-out 0.4s; transform: scale(1.1); + border-bottom: 3px solid rgb(126, 126, 126); } &:hover { diff --git a/src/components/Admin/Control Panel/Actions/AddWord/AddWord.jsx b/src/components/Admin/Control Panel/Actions/AddWord/AddWord.jsx index b67e2dc..7b6a7e5 100644 --- a/src/components/Admin/Control Panel/Actions/AddWord/AddWord.jsx +++ b/src/components/Admin/Control Panel/Actions/AddWord/AddWord.jsx @@ -9,7 +9,7 @@ import AddWordToFirebase from './Firebase Querys/AddWordToFirebase' const AddWord = () => { - const [loading, setLoading] = useState(false) + const [loading, setLoading] = useState(true) const [languageList, setLanguageList] = useState([]) const [categoryList, setCategoryList] = useState([]) diff --git a/src/components/Admin/Control Panel/Actions/DeleteWord/DeleteWord.jsx b/src/components/Admin/Control Panel/Actions/DeleteWord/DeleteWord.jsx index 89514cb..225e539 100644 --- a/src/components/Admin/Control Panel/Actions/DeleteWord/DeleteWord.jsx +++ b/src/components/Admin/Control Panel/Actions/DeleteWord/DeleteWord.jsx @@ -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 [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 ( -
-
- - - -
-
+ <> + { + data ? + + : null + } +
+ { + loading ? + + : null + } +
submitForm(e)} + > + + + + + + +
+
+ ) } diff --git a/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringCategories.js b/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringCategories.js new file mode 100644 index 0000000..1f11537 --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringCategories.js @@ -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 diff --git a/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringLanguages.js b/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringLanguages.js new file mode 100644 index 0000000..476e33b --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringLanguages.js @@ -0,0 +1,6 @@ +const BringLanguages = () => { + + return ['english', 'spanish'] +} + +export default BringLanguages diff --git a/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringTheWordsFromFirebase.js b/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringTheWordsFromFirebase.js new file mode 100644 index 0000000..e67c6e6 --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/BringTheWordsFromFirebase.js @@ -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 diff --git a/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/DeleteWordFromFirebase.js b/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/DeleteWordFromFirebase.js new file mode 100644 index 0000000..5c5e111 --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/DeleteWord/Firebase Querys/DeleteWordFromFirebase.js @@ -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