mirror of
https://github.com/FranP-code/Hangman-game-with-React.git
synced 2025-10-13 00:42:32 +00:00
Add category done
This commit is contained in:
@@ -677,6 +677,28 @@ header .redirect-button:hover {
|
||||
font-size: 12pt;
|
||||
}
|
||||
}
|
||||
.control-panel .message {
|
||||
padding: 4vh 5vw;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-family: "Raleway", sans-serif;
|
||||
font-weight: bold;
|
||||
user-select: none;
|
||||
margin: 0;
|
||||
font-size: 22pt;
|
||||
color: #fff;
|
||||
}
|
||||
.control-panel .message.error {
|
||||
background-color: #ff4e4e;
|
||||
}
|
||||
.control-panel .message.sucess {
|
||||
background-color: #80ff4e;
|
||||
}
|
||||
.control-panel .loading {
|
||||
position: initial;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.control-panel .buttons-container {
|
||||
|
||||
@@ -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"],"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"}
|
||||
@@ -129,6 +129,13 @@
|
||||
}
|
||||
|
||||
@import 'action-form';
|
||||
@import 'message';
|
||||
|
||||
.loading {
|
||||
position: initial;
|
||||
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin normalizeButton() {
|
||||
|
||||
24
public/sass/control-panel/_message.scss
Normal file
24
public/sass/control-panel/_message.scss
Normal file
@@ -0,0 +1,24 @@
|
||||
.message {
|
||||
|
||||
padding: 4vh 5vw;
|
||||
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
@include titleFont();
|
||||
@include titleNormalize();
|
||||
font-size: 22pt;
|
||||
|
||||
color: #fff;
|
||||
|
||||
&.error {
|
||||
|
||||
background-color: rgb(255, 78, 78);
|
||||
}
|
||||
|
||||
&.sucess {
|
||||
|
||||
background-color: rgb(128, 255, 78);
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,66 @@
|
||||
import React from 'react'
|
||||
import React, {useState} from 'react'
|
||||
import AddCategoryToFirebase from './Firebase Querys/AddCategoryToFirebase'
|
||||
import Loading from '../../Loading/Loading'
|
||||
import Messages from '../../Messages/Messages'
|
||||
|
||||
const AddCategory = () => {
|
||||
|
||||
console.log('category');
|
||||
const [categorySpanish, setCategorySpanish] = useState('')
|
||||
const [categoryEnglish, setCategoryEnglish] = useState('')
|
||||
|
||||
const [loading, setLoading] = useState(false)
|
||||
|
||||
const [data, setData] = useState('')
|
||||
|
||||
const addCategorySubmit = async (e) => {
|
||||
e.preventDefault()
|
||||
|
||||
setLoading(true)
|
||||
|
||||
const result = await AddCategoryToFirebase(categoryEnglish, categorySpanish)
|
||||
setData(result)
|
||||
|
||||
setCategoryEnglish('')
|
||||
setCategorySpanish('')
|
||||
|
||||
setLoading(false)
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="action-form add-category">
|
||||
<form>
|
||||
<input type="text" placeholder="Add the new category [English]" required/>
|
||||
<input type="text" placeholder="Add the new category [Spanish]" required/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
</div>
|
||||
<>
|
||||
{
|
||||
data !== '' ?
|
||||
<Messages data={data} />
|
||||
: null
|
||||
}
|
||||
{
|
||||
loading ?
|
||||
<Loading />
|
||||
:
|
||||
<div className="action-form add-category">
|
||||
<form
|
||||
onSubmit={e => addCategorySubmit(e)}
|
||||
>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
placeholder="Add the new category [English]"
|
||||
required
|
||||
onChange={e => setCategoryEnglish(e.target.value)}
|
||||
value={categoryEnglish}
|
||||
/>
|
||||
<input
|
||||
type="text"
|
||||
placeholder="Add the new category [Spanish]"
|
||||
required
|
||||
onChange={e => setCategorySpanish(e.target.value)}
|
||||
value={categorySpanish}
|
||||
/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
</div>
|
||||
}
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
import {firestore} from '../../../../../../Firebase/Firebase_Config'
|
||||
import {getFirestore, collection, doc, setDoc } from "firebase/firestore";
|
||||
|
||||
const AddCategoryToFirebase = async (englishCategory, spanishCategory) => {
|
||||
|
||||
let result =
|
||||
[
|
||||
sucess => false,
|
||||
message => ''
|
||||
]
|
||||
|
||||
try {
|
||||
|
||||
const db = getFirestore(firestore)
|
||||
|
||||
await setDoc(doc(db, 'categories', englishCategory), {
|
||||
|
||||
english: englishCategory,
|
||||
spanish: spanishCategory
|
||||
})
|
||||
|
||||
result['sucess'] = true
|
||||
result['message'] = 'Category added to the database'
|
||||
|
||||
return await result
|
||||
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
|
||||
result['sucess'] = false
|
||||
result['message'] = `There's been an error...`
|
||||
}
|
||||
}
|
||||
|
||||
export default AddCategoryToFirebase
|
||||
@@ -25,7 +25,7 @@ const ControlPanel = (props) => {
|
||||
|
||||
return (
|
||||
<>
|
||||
<AdminHeader />
|
||||
<AdminHeader />
|
||||
<div className="control-panel">
|
||||
{
|
||||
userLogged ?
|
||||
|
||||
12
src/components/Admin/Control Panel/Loading/Loading.jsx
Normal file
12
src/components/Admin/Control Panel/Loading/Loading.jsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import React from 'react'
|
||||
import loadingGifLightTheme from './loading-light-theme.png'
|
||||
|
||||
const Loading = () => {
|
||||
return (
|
||||
<div className='loading'>
|
||||
<img src={loadingGifLightTheme} alt="loading" />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default Loading
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
41
src/components/Admin/Control Panel/Messages/Messages.jsx
Normal file
41
src/components/Admin/Control Panel/Messages/Messages.jsx
Normal file
@@ -0,0 +1,41 @@
|
||||
import React from 'react'
|
||||
|
||||
const Messages = ({data}) => {
|
||||
|
||||
const [sucess, setSucess] = React.useState('')
|
||||
const [message, setMessage] = React.useState('')
|
||||
|
||||
React.useEffect(() => {
|
||||
|
||||
if (data === '') {
|
||||
|
||||
setSucess(true)
|
||||
setMessage('TEST')
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
setSucess(data['sucess'])
|
||||
setMessage(data['message'])
|
||||
}
|
||||
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<>
|
||||
{
|
||||
|
||||
sucess ?
|
||||
<div className="message animate__animated animate__slideInDown sucess">
|
||||
{message}
|
||||
</div>
|
||||
:
|
||||
<div className="message animate__animated animate__slideInDown error">
|
||||
{message}
|
||||
</div>
|
||||
}
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export default Messages
|
||||
Reference in New Issue
Block a user