diff --git a/.gitignore b/.gitignore index be08278..3f4c7ef 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -/src/Firebase/Firebase_Config.js \ No newline at end of file +/src/Firebase/Firebase_Config.js +/public/Hover.css/css \ No newline at end of file diff --git a/public/css/index.css b/public/css/index.css index ac99a7a..dde165c 100644 --- a/public/css/index.css +++ b/public/css/index.css @@ -478,4 +478,164 @@ header .redirect-button:hover { margin: 0; } +.control-panel { + height: 60vh; + max-width: 100vw; + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + padding: 5vh 15vw; +} +.control-panel button { + width: 16vw; + max-width: 250px; + height: 16vw; + max-height: 250px; + margin: 0px 3vw; + font-size: 1.8vw; + font-weight: bold; + border: none; + border-radius: 5px; + cursor: pointer; +} +.control-panel button.add-words { + background-color: #77b3d6; + border: 1px solid #77a3bd; + transition: ease-in-out 0.4s; +} +.control-panel button.add-words { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px rgba(0, 0, 0, 0); + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: transform; + transition-property: transform; +} +.control-panel button.add-words:hover, .control-panel button.add-words:focus, .control-panel button.add-words:active { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} +.control-panel button.add-words:hover { + background-color: #9ec9e2; + transition: ease-in-out 0.4s; +} +.control-panel button.add-category { + background-color: #c469cc; + border: 1px solid #ad69b3; + transition: ease-in-out 0.4s; +} +.control-panel button.add-category { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px rgba(0, 0, 0, 0); + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: transform; + transition-property: transform; +} +.control-panel button.add-category:hover, .control-panel button.add-category:focus, .control-panel button.add-category:active { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} +.control-panel button.add-category:hover { + background-color: #d38fd9; + transition: ease-in-out 0.4s; +} +.control-panel button.delete-category { + background-color: #f79143; + border: 1px solid #de8643; + transition: ease-in-out 0.4s; +} +.control-panel button.delete-category { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px rgba(0, 0, 0, 0); + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: transform; + transition-property: transform; +} +.control-panel button.delete-category:hover, .control-panel button.delete-category:focus, .control-panel button.delete-category:active { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} +.control-panel button.delete-category:hover { + background-color: #f9ae74; + transition: ease-in-out 0.4s; +} +.control-panel button.delete-word { + background-color: #df6767; + border: 1px solid #c66767; + transition: ease-in-out 0.4s; +} +.control-panel button.delete-word { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px rgba(0, 0, 0, 0); + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: transform; + transition-property: transform; +} +.control-panel button.delete-word:hover, .control-panel button.delete-word:focus, .control-panel button.delete-word:active { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} +.control-panel button.delete-word:hover { + background-color: #e89191; + transition: ease-in-out 0.4s; +} +.control-panel button.edit-word { + background-color: #7dbb4e; + border: 1px solid #72a24e; + transition: ease-in-out 0.4s; +} +.control-panel button.edit-word { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px rgba(0, 0, 0, 0); + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: transform; + transition-property: transform; +} +.control-panel button.edit-word:hover, .control-panel button.edit-word:focus, .control-panel button.edit-word:active { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} +.control-panel button.edit-word:hover { + background-color: #98c973; + transition: ease-in-out 0.4s; +} + +@media (max-width: 991.98px) { + .control-panel { + height: auto; + flex-direction: column; + justify-content: space-around; + align-items: initial; + flex-wrap: nowrap; + } + .control-panel button { + max-width: none; + max-height: none; + width: 66vw; + height: 20vh; + font-size: 3vw; + margin-bottom: 3vh; + } +} + /*# sourceMappingURL=index.css.map */ diff --git a/public/css/index.css.map b/public/css/index.css.map index c6d8ae6..41b5f2e 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"],"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.scss"],"names":[],"mappings":"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","file":"index.css"} \ No newline at end of file diff --git a/public/sass/_control-panel.scss b/public/sass/_control-panel.scss new file mode 100644 index 0000000..07af492 --- /dev/null +++ b/public/sass/_control-panel.scss @@ -0,0 +1,126 @@ +.control-panel { + height: 60vh; + max-width: 100vw; + + display: flex; + align-items: center; + justify-content: center; + + flex-wrap: wrap; + + padding: 5vh 15vw; + + button { + + width: 16vw; + max-width: 250px; + height: 16vw; + max-height: 250px; + + margin: 0px 3vw; + + font-size: 1.8vw; + font-weight: bold; + + border: none; + border-radius: 5px; + + cursor: pointer; + + @mixin generateColors($background-color) { + + background-color: $background-color; + border: 1px solid adjust-color($color: $background-color, $blackness: 10%, $alpha: 1.0); + + transition: ease-in-out 0.4s; + + & { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px rgba(0, 0, 0, 0); + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: transform; + transition-property: transform; + } + &:hover, &:focus, &:active { + -webkit-transform: scale(1.1); + transform: scale(1.1); + } + + &:hover { + + background-color: adjust-color($color: $background-color, $lightness: 10%, $alpha: 1.0); + transition: ease-in-out 0.4s; + + } + } + + &.add-words { + + $background-color: #77b3d6; + + @include generateColors($background-color); + } + + &.add-category { + + $background-color: #c469cc; + + @include generateColors($background-color); + } + + &.delete-category { + + $background-color: #f79143; + + @include generateColors($background-color); + } + + &.delete-word { + + $background-color: #df6767; + + @include generateColors($background-color); + } + + &.edit-word { + + $background-color: #7dbb4e; + + @include generateColors($background-color) + } + } +} + +@media (max-width: 991.98px) { + + .control-panel { + + height: auto; + + flex-direction: column; + justify-content: space-around; + align-items: initial; + + flex-wrap: nowrap; + + button { + max-width: none; + max-height: none; + + width: 66vw; + height: 20vh; + + font-size: 3vw; + + margin-bottom: 3vh; + } + } +} + +@media (max-width: 576px) { + +} \ No newline at end of file diff --git a/public/sass/index.scss b/public/sass/index.scss index 45a01ba..cca7500 100644 --- a/public/sass/index.scss +++ b/public/sass/index.scss @@ -27,4 +27,5 @@ html, body { @import 'letters-registered'; @import 'letter-input'; @import 'form'; -@import 'message'; \ No newline at end of file +@import 'message'; +@import 'control-panel'; \ No newline at end of file diff --git a/src/App.js b/src/App.js index cb400ff..8efa8b4 100644 --- a/src/App.js +++ b/src/App.js @@ -9,11 +9,11 @@ import { Link } from "react-router-dom"; import AppHeader from "./components/Game/components/AppHeader/AppHeader"; -import AdminHeader from "./components/AdminIdentify/Header/AdminHeader"; -import ControlPanel from "./components/AdminIdentify/Identify/Identify"; -import Identify from "./components/AdminIdentify/Identify/Identify"; +import AdminHeader from "./components/Admin/Header/AdminHeader"; +import ControlPanel from "./components/Admin/Control Panel/ControlPanel"; +import Identify from "./components/Admin/AdminIdentify/Identify/Identify"; import Game from "./components/Game/Game"; -import AdminIdentify from "./components/AdminIdentify/AdminIdentify"; +import AdminIdentify from "./components/Admin/AdminIdentify/AdminIdentify"; function App() { return ( @@ -21,7 +21,11 @@ function App() { <> - + + + + + diff --git a/src/components/AdminIdentify/AdminIdentify.jsx b/src/components/Admin/AdminIdentify/AdminIdentify.jsx similarity index 82% rename from src/components/AdminIdentify/AdminIdentify.jsx rename to src/components/Admin/AdminIdentify/AdminIdentify.jsx index 41e281e..5dfbb2f 100644 --- a/src/components/AdminIdentify/AdminIdentify.jsx +++ b/src/components/Admin/AdminIdentify/AdminIdentify.jsx @@ -1,5 +1,5 @@ import React from 'react' -import AdminHeader from './Header/AdminHeader' +import AdminHeader from '../Header/AdminHeader' import Identify from './Identify/Identify' const AdminIdentify = () => { diff --git a/src/components/AdminIdentify/Identify/Form/Firebase Querys/BringAdminCode.js b/src/components/Admin/AdminIdentify/Identify/Form/Firebase Querys/BringAdminCode.js similarity index 85% rename from src/components/AdminIdentify/Identify/Form/Firebase Querys/BringAdminCode.js rename to src/components/Admin/AdminIdentify/Identify/Form/Firebase Querys/BringAdminCode.js index 0063b38..5199c08 100644 --- a/src/components/AdminIdentify/Identify/Form/Firebase Querys/BringAdminCode.js +++ b/src/components/Admin/AdminIdentify/Identify/Form/Firebase Querys/BringAdminCode.js @@ -1,5 +1,5 @@ import { getFirestore, collection, getDocs } from 'firebase/firestore/lite'; -import { firestore } from '../../../../../Firebase/Firebase_Config'; +import { firestore } from '../../../../../../Firebase/Firebase_Config'; const BringAdminCode = async () => { diff --git a/src/components/AdminIdentify/Identify/Form/Firebase Querys/RegisterNewUser.js b/src/components/Admin/AdminIdentify/Identify/Form/Firebase Querys/RegisterNewUser.js similarity index 87% rename from src/components/AdminIdentify/Identify/Form/Firebase Querys/RegisterNewUser.js rename to src/components/Admin/AdminIdentify/Identify/Form/Firebase Querys/RegisterNewUser.js index ac4a44e..f363ddd 100644 --- a/src/components/AdminIdentify/Identify/Form/Firebase Querys/RegisterNewUser.js +++ b/src/components/Admin/AdminIdentify/Identify/Form/Firebase Querys/RegisterNewUser.js @@ -1,4 +1,4 @@ -import { firestore } from '../../../../../Firebase/Firebase_Config' +import { firestore } from '../../../../../../Firebase/Firebase_Config' import {getAuth, createUserWithEmailAndPassword} from 'firebase/auth' const RegisterNewUser = async (email, password, setMessage) => { diff --git a/src/components/AdminIdentify/Identify/Form/Firebase Querys/Sign In.js b/src/components/Admin/AdminIdentify/Identify/Form/Firebase Querys/Sign In.js similarity index 86% rename from src/components/AdminIdentify/Identify/Form/Firebase Querys/Sign In.js rename to src/components/Admin/AdminIdentify/Identify/Form/Firebase Querys/Sign In.js index cb76e85..0dfa026 100644 --- a/src/components/AdminIdentify/Identify/Form/Firebase Querys/Sign In.js +++ b/src/components/Admin/AdminIdentify/Identify/Form/Firebase Querys/Sign In.js @@ -1,4 +1,4 @@ -import { firestore } from "../../../../../Firebase/Firebase_Config" +import { firestore } from "../../../../../../Firebase/Firebase_Config" import {getAuth, signInWithEmailAndPassword} from 'firebase/auth' const SignIn = async (data, setMessage) => { diff --git a/src/components/AdminIdentify/Identify/Form/Form.jsx b/src/components/Admin/AdminIdentify/Identify/Form/Form.jsx similarity index 98% rename from src/components/AdminIdentify/Identify/Form/Form.jsx rename to src/components/Admin/AdminIdentify/Identify/Form/Form.jsx index 18cd5ed..fd00bbf 100644 --- a/src/components/AdminIdentify/Identify/Form/Form.jsx +++ b/src/components/Admin/AdminIdentify/Identify/Form/Form.jsx @@ -1,5 +1,5 @@ import React, {useState} from 'react' -import Loading from '../../../Game/components/Loading/Loading' +import Loading from '../../../../Game/components/Loading/Loading' import MessageContainer from './MessageContainer' import FormActions from './Scripts/FormActions' diff --git a/src/components/AdminIdentify/Identify/Form/MessageContainer.jsx b/src/components/Admin/AdminIdentify/Identify/Form/MessageContainer.jsx similarity index 100% rename from src/components/AdminIdentify/Identify/Form/MessageContainer.jsx rename to src/components/Admin/AdminIdentify/Identify/Form/MessageContainer.jsx diff --git a/src/components/AdminIdentify/Identify/Form/Scripts/FormActions.js b/src/components/Admin/AdminIdentify/Identify/Form/Scripts/FormActions.js similarity index 100% rename from src/components/AdminIdentify/Identify/Form/Scripts/FormActions.js rename to src/components/Admin/AdminIdentify/Identify/Form/Scripts/FormActions.js diff --git a/src/components/AdminIdentify/Identify/Form/Scripts/ValidateRegister.js b/src/components/Admin/AdminIdentify/Identify/Form/Scripts/ValidateRegister.js similarity index 100% rename from src/components/AdminIdentify/Identify/Form/Scripts/ValidateRegister.js rename to src/components/Admin/AdminIdentify/Identify/Form/Scripts/ValidateRegister.js diff --git a/src/components/AdminIdentify/Identify/Identify.jsx b/src/components/Admin/AdminIdentify/Identify/Identify.jsx similarity index 100% rename from src/components/AdminIdentify/Identify/Identify.jsx rename to src/components/Admin/AdminIdentify/Identify/Identify.jsx diff --git a/src/components/Admin/Control Panel/Actions/Actions.jsx b/src/components/Admin/Control Panel/Actions/Actions.jsx new file mode 100644 index 0000000..3d48921 --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/Actions.jsx @@ -0,0 +1,41 @@ +import React from 'react' +import AddCategory from './AddCategory/AddCategory' +import AddWord from './AddWord/AddWord' +import DeleteCategory from './DeleteCategory/DeleteCategory'; +import DeleteWord from './DeleteWord/DeleteWord'; +import EditWord from './EditWord/EditWord'; + +const Actions = ({actualAction}) => { + + return ( + <> + { + actualAction === 'Add Word(s)' ? + + : null + } + { + actualAction === 'Add Category' ? + + : null + } + { + actualAction === 'Delete Category' ? + + : null + } + { + actualAction === 'Delete Word' ? + + : null + } + { + actualAction === 'Edit Word' ? + + : null + } + + ) +} + +export default Actions diff --git a/src/components/Admin/Control Panel/Actions/AddCategory/AddCategory.jsx b/src/components/Admin/Control Panel/Actions/AddCategory/AddCategory.jsx new file mode 100644 index 0000000..5e04153 --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/AddCategory/AddCategory.jsx @@ -0,0 +1,14 @@ +import React from 'react' + +const AddCategory = () => { + + console.log('category'); + + return ( +
+ +
+ ) +} + +export default AddCategory diff --git a/src/components/Admin/Control Panel/Actions/AddWord/AddWord.jsx b/src/components/Admin/Control Panel/Actions/AddWord/AddWord.jsx new file mode 100644 index 0000000..d0aa7ef --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/AddWord/AddWord.jsx @@ -0,0 +1,14 @@ +import React from 'react' + +const AddWord = () => { + + console.log('word'); + + return ( +
+ +
+ ) +} + +export default AddWord diff --git a/src/components/Admin/Control Panel/Actions/DeleteCategory/DeleteCategory.jsx b/src/components/Admin/Control Panel/Actions/DeleteCategory/DeleteCategory.jsx new file mode 100644 index 0000000..952156f --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/DeleteCategory/DeleteCategory.jsx @@ -0,0 +1,11 @@ +import React from 'react' + +const DeleteCategory = () => { + return ( +
+ +
+ ) +} + +export default DeleteCategory diff --git a/src/components/Admin/Control Panel/Actions/DeleteWord/DeleteWord.jsx b/src/components/Admin/Control Panel/Actions/DeleteWord/DeleteWord.jsx new file mode 100644 index 0000000..861c313 --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/DeleteWord/DeleteWord.jsx @@ -0,0 +1,11 @@ +import React from 'react' + +const DeleteWord = () => { + return ( +
+ +
+ ) +} + +export default DeleteWord diff --git a/src/components/Admin/Control Panel/Actions/EditWord/EditWord.jsx b/src/components/Admin/Control Panel/Actions/EditWord/EditWord.jsx new file mode 100644 index 0000000..d664367 --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/EditWord/EditWord.jsx @@ -0,0 +1,11 @@ +import React from 'react' + +const EditWord = () => { + return ( +
+ +
+ ) +} + +export default EditWord diff --git a/src/components/Admin/Control Panel/Actions/Scripts/DefineClassName.js b/src/components/Admin/Control Panel/Actions/Scripts/DefineClassName.js new file mode 100644 index 0000000..0bf82f7 --- /dev/null +++ b/src/components/Admin/Control Panel/Actions/Scripts/DefineClassName.js @@ -0,0 +1,13 @@ +const DefineClassName = (action) => { + + let className = action.split(' ') + + className = className.map(word => word.toLowerCase()) + className = className.join('-') + className = className.replaceAll('(', '') + className = className.replaceAll(')', '') + + return className +} + +export default DefineClassName diff --git a/src/components/Admin/Control Panel/AdminFunctionButton.jsx b/src/components/Admin/Control Panel/AdminFunctionButton.jsx new file mode 100644 index 0000000..eac9426 --- /dev/null +++ b/src/components/Admin/Control Panel/AdminFunctionButton.jsx @@ -0,0 +1,18 @@ +import React from 'react' +import DefineClassName from './Actions/Scripts/DefineClassName' + +const AdminFunctionButton = ({action, setActualAction}) => { + + const classButton = DefineClassName(action) + + return ( + + ) +} + +export default AdminFunctionButton diff --git a/src/components/Admin/Control Panel/ControlPanel.jsx b/src/components/Admin/Control Panel/ControlPanel.jsx new file mode 100644 index 0000000..f1181f9 --- /dev/null +++ b/src/components/Admin/Control Panel/ControlPanel.jsx @@ -0,0 +1,51 @@ +import React from "react"; +import { getAuth, onAuthStateChanged } from "firebase/auth"; +import AdminFunctionButton from "./AdminFunctionButton"; +import {withRouter} from 'react-router' +import Actions from "./Actions/Actions"; +import AdminHeader from "../Header/AdminHeader"; + +const ControlPanel = (props) => { + + const [userLogged, setUserLogged] = React.useState(false) + const [actualAction, setActualAction] = React.useState('') + + const auth = getAuth() + + onAuthStateChanged(auth, (user) => { + + if (!user) { + + props.history.push('/identify') + + } else { + setUserLogged(true) + } + }) + + return ( + <> + +
+ { + userLogged ? + <> + + + + + + + : null + } + { + actualAction ? + + : null + } +
+ + ) +} + +export default withRouter(ControlPanel) \ No newline at end of file diff --git a/src/components/AdminIdentify/Header/AdminHeader.jsx b/src/components/Admin/Header/AdminHeader.jsx similarity index 100% rename from src/components/AdminIdentify/Header/AdminHeader.jsx rename to src/components/Admin/Header/AdminHeader.jsx