v1.1 frontend
- Rollback stop
This commit is contained in:
parent
19c9f0b898
commit
73723741b5
@ -1,43 +1,33 @@
|
|||||||
import HomePage from "./components/HomePage";
|
import { useState } from "react";
|
||||||
|
import Home from "./components/Pages/HomePage";
|
||||||
import NavBar from "./components/NavBar";
|
import NavBar from "./components/NavBar";
|
||||||
import NavBarMain from "./components/NavBarMain";
|
import NavBarMain from "./components/NavBarMain";
|
||||||
import SideMenu from "./components/SideMenu"; // New side menu component
|
import SideMenu from "./components/SideMenu"; // Add this import
|
||||||
import { Routes, Route } from "react-router-dom";
|
import { Routes, Route } from "react-router-dom";
|
||||||
import { useState } from 'react';
|
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const [isMenuOpen, setIsMenuOpen] = useState(false);
|
const [isMenuOpen, setIsMenuOpen] = useState(false); // Track if the menu is open
|
||||||
|
|
||||||
// Function to toggle the side menu
|
|
||||||
const handleMenuToggle = () => {
|
|
||||||
setIsMenuOpen(prevState => !prevState);
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div id="appcontainer" className="flex flex-row w-full h-full bg-black">
|
<div id="appcontainer" className="flex flex-row w-full h-full bg-black">
|
||||||
<div
|
{/* The SideMenu should be visible when isMenuOpen is true */}
|
||||||
id="navbarcontainer"
|
<SideMenu isMenuOpen={isMenuOpen} setIsMenuOpen={setIsMenuOpen} />
|
||||||
className="hidden lg:flex lg:w-2xs bg-gray-950/55 border-r border-white/5 shadow-lg shadow-blue-900/50"
|
|
||||||
>
|
<div id="navbarcontainer" className="hidden lg:flex lg:w-2xs bg-gray-950/55 border-r border-white/5 shadow-lg shadow-blue-900/50">
|
||||||
<NavBar />
|
<NavBar />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="maincontainer" className="w-full lg:w-5/6 bg-gray-950/50 flex flex-col">
|
<div id="maincontainer" className="w-full lg:w-5/6 bg-gray-950/50 flex flex-col">
|
||||||
<div
|
<div id="navbarmaincontainer" className="w-full lg:hidden h-16 bg-gray-950/10 border-b border-white/5 shadow-md shadow-blue-900/35 sticky top-0 z-10">
|
||||||
id="navbarmaincontainer"
|
<NavBarMain setIsMenuOpen={setIsMenuOpen} />
|
||||||
className="w-full lg:hidden h-16 bg-gray-950/10 border-b border-white/5 shadow-md shadow-blue-900/35 sticky top-0 z-10"
|
|
||||||
>
|
|
||||||
<NavBarMain handleMenuToggle={handleMenuToggle} />
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="maincontentcontainer" className="w-full grow">
|
<div id="maincontentcontainer" className="w-full grow">
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/" element={<HomePage />} />
|
<Route path="/" element={<Home />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<SideMenu isMenuOpen={isMenuOpen} setIsMenuOpen={setIsMenuOpen} /> {/* Pass setIsMenuOpen as a prop */}
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
function HomePage () {
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="flex flex-col w-full h-full">
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default HomePage
|
|
@ -11,7 +11,7 @@ function NavBar() {
|
|||||||
return (
|
return (
|
||||||
<div className="flex flex-col w-full h-full bg-white/1">
|
<div className="flex flex-col w-full h-full bg-white/1">
|
||||||
<div>
|
<div>
|
||||||
<p className='text-white text-2xl font-bold p-3 text-center mb-5 bg-black/25'>
|
<p className='text-white text-2xl font-bold p-3 text-center mb-5'>
|
||||||
<a href='/'>
|
<a href='/'>
|
||||||
CDRM-Project
|
CDRM-Project
|
||||||
</a>
|
</a>
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
import { useState } from 'react';
|
import { useState } from "react";
|
||||||
import hamburgerIcon from '../assets/icons/hamburger.svg';
|
import hamburgerIcon from "../assets/icons/hamburger.svg";
|
||||||
|
|
||||||
|
function NavBarMain({ setIsMenuOpen }) {
|
||||||
|
const handleMenuToggle = () => {
|
||||||
|
setIsMenuOpen((prevState) => !prevState); // Toggle the menu state
|
||||||
|
};
|
||||||
|
|
||||||
function NavBarMain({ handleMenuToggle }) { // Receive handleMenuToggle as a prop
|
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-row w-full h-full bg-white/1">
|
<div className="flex flex-row w-full h-full bg-white/1">
|
||||||
<button className="w-24 p-4" onClick={handleMenuToggle}>
|
<button className="w-24 p-4" onClick={handleMenuToggle}>
|
||||||
|
10
cdrm-frontend/src/components/Pages/HomePage.jsx
Normal file
10
cdrm-frontend/src/components/Pages/HomePage.jsx
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
function HomePage () {
|
||||||
|
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="flex flex-col w-full h-full overflow-y-auto p-4">
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default HomePage
|
@ -1,8 +1,12 @@
|
|||||||
|
import { NavLink } from 'react-router-dom';
|
||||||
import closeIcon from '../assets/icons/close.svg';
|
import closeIcon from '../assets/icons/close.svg';
|
||||||
|
import homeIcon from '../assets/icons/home.svg';
|
||||||
|
import cacheIcon from '../assets/icons/cache.svg';
|
||||||
|
import apiIcon from '../assets/icons/api.svg';
|
||||||
|
import testPlayerIcon from '../assets/icons/testplayer.svg';
|
||||||
import discordIcon from '../assets/icons/discord.svg';
|
import discordIcon from '../assets/icons/discord.svg';
|
||||||
import telegramIcon from '../assets/icons/telegram.svg';
|
import telegramIcon from '../assets/icons/telegram.svg';
|
||||||
import giteaIcon from '../assets/icons/gitea.svg';
|
import giteaIcon from '../assets/icons/gitea.svg';
|
||||||
import { NavLink } from 'react-router-dom';
|
|
||||||
|
|
||||||
function SideMenu({ isMenuOpen, setIsMenuOpen }) {
|
function SideMenu({ isMenuOpen, setIsMenuOpen }) {
|
||||||
return (
|
return (
|
||||||
@ -13,7 +17,7 @@ function SideMenu({ isMenuOpen, setIsMenuOpen }) {
|
|||||||
} z-50`}
|
} z-50`}
|
||||||
style={{ transitionDuration: '0.3s' }}
|
style={{ transitionDuration: '0.3s' }}
|
||||||
>
|
>
|
||||||
<div className="grow flex flex-col bg-gray-950/55">
|
<div className="flex flex-col bg-gray-950/55 h-full">
|
||||||
<div className="h-16 w-full border-b-2 border-white/5 flex flex-row">
|
<div className="h-16 w-full border-b-2 border-white/5 flex flex-row">
|
||||||
<div className="w-1/4 h-full"></div>
|
<div className="w-1/4 h-full"></div>
|
||||||
<p className="grow text-white md:text-2xl font-bold text-center flex items-center justify-center p-4">
|
<p className="grow text-white md:text-2xl font-bold text-center flex items-center justify-center p-4">
|
||||||
@ -29,25 +33,26 @@ function SideMenu({ isMenuOpen, setIsMenuOpen }) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="overflow-y-auto grow flex flex-col p-5 w-full space-y-2">
|
<div className="overflow-y-auto flex flex-col p-5 w-full space-y-2 flex-grow">
|
||||||
<NavLink
|
<NavLink
|
||||||
to="/"
|
to="/"
|
||||||
className={({ isActive }) =>
|
className={({ isActive }) =>
|
||||||
`flex flex-row p-3 border-l-4 ${
|
`flex flex-row items-center gap-3 p-3 border-l-4 ${
|
||||||
isActive
|
isActive
|
||||||
? 'border-l-sky-500/50 bg-black/50 text-white'
|
? 'border-l-4 border-l-sky-500/50 bg-black/50 text-white'
|
||||||
: 'border-transparent hover:border-l-sky-500/50 hover:bg-white/5 text-white/80'
|
: 'border-transparent hover:border-l-sky-500/50 hover:bg-white/5 text-white/80'
|
||||||
}`
|
}`
|
||||||
}
|
}
|
||||||
onClick={() => setIsMenuOpen(false)}
|
onClick={() => setIsMenuOpen(false)}
|
||||||
>
|
>
|
||||||
Home
|
<img src={homeIcon} alt="Home" className="w-5 h-5" />
|
||||||
|
<span className="text-lg">Home</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
|
|
||||||
<NavLink
|
<NavLink
|
||||||
to="/cache"
|
to="/cache"
|
||||||
className={({ isActive }) =>
|
className={({ isActive }) =>
|
||||||
`flex flex-row p-3 border-l-4 ${
|
`flex flex-row items-center gap-3 p-3 border-l-4 ${
|
||||||
isActive
|
isActive
|
||||||
? 'border-l-emerald-500/50 bg-black/50 text-white'
|
? 'border-l-emerald-500/50 bg-black/50 text-white'
|
||||||
: 'border-transparent hover:border-l-emerald-500/50 hover:bg-white/5 text-white/80'
|
: 'border-transparent hover:border-l-emerald-500/50 hover:bg-white/5 text-white/80'
|
||||||
@ -55,13 +60,14 @@ function SideMenu({ isMenuOpen, setIsMenuOpen }) {
|
|||||||
}
|
}
|
||||||
onClick={() => setIsMenuOpen(false)}
|
onClick={() => setIsMenuOpen(false)}
|
||||||
>
|
>
|
||||||
Cache
|
<img src={cacheIcon} alt="Cache" className="w-5 h-5" />
|
||||||
|
<span className="text-lg">Cache</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
|
|
||||||
<NavLink
|
<NavLink
|
||||||
to="/api"
|
to="/api"
|
||||||
className={({ isActive }) =>
|
className={({ isActive }) =>
|
||||||
`flex flex-row p-3 border-l-4 ${
|
`flex flex-row items-center gap-3 p-3 border-l-4 ${
|
||||||
isActive
|
isActive
|
||||||
? 'border-l-indigo-500/50 bg-black/50 text-white'
|
? 'border-l-indigo-500/50 bg-black/50 text-white'
|
||||||
: 'border-transparent hover:border-l-indigo-500/50 hover:bg-white/5 text-white/80'
|
: 'border-transparent hover:border-l-indigo-500/50 hover:bg-white/5 text-white/80'
|
||||||
@ -69,13 +75,14 @@ function SideMenu({ isMenuOpen, setIsMenuOpen }) {
|
|||||||
}
|
}
|
||||||
onClick={() => setIsMenuOpen(false)}
|
onClick={() => setIsMenuOpen(false)}
|
||||||
>
|
>
|
||||||
API
|
<img src={apiIcon} alt="API" className="w-5 h-5" />
|
||||||
|
<span className="text-lg">API</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
|
|
||||||
<NavLink
|
<NavLink
|
||||||
to="/testplayer"
|
to="/testplayer"
|
||||||
className={({ isActive }) =>
|
className={({ isActive }) =>
|
||||||
`flex flex-row p-3 border-l-4 ${
|
`flex flex-row items-center gap-3 p-3 border-l-4 ${
|
||||||
isActive
|
isActive
|
||||||
? 'border-l-rose-700/50 bg-black/50 text-white'
|
? 'border-l-rose-700/50 bg-black/50 text-white'
|
||||||
: 'border-transparent hover:border-l-rose-700/50 hover:bg-white/5 text-white/80'
|
: 'border-transparent hover:border-l-rose-700/50 hover:bg-white/5 text-white/80'
|
||||||
@ -83,34 +90,47 @@ function SideMenu({ isMenuOpen, setIsMenuOpen }) {
|
|||||||
}
|
}
|
||||||
onClick={() => setIsMenuOpen(false)}
|
onClick={() => setIsMenuOpen(false)}
|
||||||
>
|
>
|
||||||
Test Player
|
<img src={testPlayerIcon} alt="Test Player" className="w-5 h-5" />
|
||||||
|
<span className="text-lg">Test Player</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="h-16 self-end w-full flex flex-row bg-white/5">
|
<div className="h-16 self-end w-full flex flex-row bg-black/5">
|
||||||
<a
|
<a
|
||||||
href="https://discord.cdrm-project.com/"
|
href="https://discord.cdrm-project.com/"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="w-1/3 h-full flex items-center justify-center hover:bg-blue-950"
|
className="w-1/3 h-full flex items-center justify-center hover:bg-blue-950 group"
|
||||||
>
|
>
|
||||||
<img src={discordIcon} alt="Discord" className="w-full h-full p-1 cursor-pointer" />
|
<img
|
||||||
|
src={discordIcon}
|
||||||
|
alt="Discord"
|
||||||
|
className="w-full h-2/3 p-1 cursor-pointer group-hover:animate-bounce"
|
||||||
|
/>
|
||||||
</a>
|
</a>
|
||||||
<a
|
<a
|
||||||
href="https://telegram.cdrm-project.com"
|
href="https://telegram.cdrm-project.com"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="w-1/3 h-full flex items-center justify-center hover:bg-blue-400"
|
className="w-1/3 h-full flex items-center justify-center hover:bg-blue-400 group"
|
||||||
>
|
>
|
||||||
<img src={telegramIcon} alt="Telegram" className="w-full h-full p-1 cursor-pointer" />
|
<img
|
||||||
|
src={telegramIcon}
|
||||||
|
alt="Telegram"
|
||||||
|
className="w-full h-2/3 p-1 cursor-pointer group-hover:animate-bounce"
|
||||||
|
/>
|
||||||
</a>
|
</a>
|
||||||
<a
|
<a
|
||||||
href="https://cdm-project.com/tpd94/cdrm-project"
|
href="https://cdm-project.com/tpd94/cdrm-project"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="w-1/3 h-full flex items-center justify-center hover:bg-green-700"
|
className="w-1/3 h-full flex items-center justify-center hover:bg-green-700 group"
|
||||||
>
|
>
|
||||||
<img src={giteaIcon} alt="Gitea" className="w-full h-full p-1 cursor-pointer" />
|
<img
|
||||||
|
src={giteaIcon}
|
||||||
|
alt="Gitea"
|
||||||
|
className="w-full h-2/3 p-1 cursor-pointer group-hover:animate-bounce"
|
||||||
|
/>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user