v1.1 frontend

- Rollback stop
This commit is contained in:
TPD94 2025-04-27 20:18:01 -04:00
parent 19c9f0b898
commit 73723741b5
6 changed files with 68 additions and 54 deletions

View File

@ -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 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 { useState } from 'react';
function App() {
const [isMenuOpen, setIsMenuOpen] = useState(false);
// Function to toggle the side menu
const handleMenuToggle = () => {
setIsMenuOpen(prevState => !prevState);
};
const [isMenuOpen, setIsMenuOpen] = useState(false); // Track if the menu is open
return (
<div id="appcontainer" className="flex flex-row w-full h-full bg-black">
<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"
>
{/* The SideMenu should be visible when isMenuOpen is true */}
<SideMenu isMenuOpen={isMenuOpen} setIsMenuOpen={setIsMenuOpen} />
<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 />
</div>
<div id="maincontainer" className="w-full lg:w-5/6 bg-gray-950/50 flex flex-col">
<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"
>
<NavBarMain handleMenuToggle={handleMenuToggle} />
<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">
<NavBarMain setIsMenuOpen={setIsMenuOpen} />
</div>
<div id="maincontentcontainer" className="w-full grow">
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="/" element={<Home />} />
</Routes>
</div>
</div>
<SideMenu isMenuOpen={isMenuOpen} setIsMenuOpen={setIsMenuOpen} /> {/* Pass setIsMenuOpen as a prop */}
</div>
);
}

View File

@ -1,10 +0,0 @@
function HomePage () {
return (
<div className="flex flex-col w-full h-full">
</div>
)
}
export default HomePage

View File

@ -11,7 +11,7 @@ function NavBar() {
return (
<div className="flex flex-col w-full h-full bg-white/1">
<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='/'>
CDRM-Project
</a>

View File

@ -1,7 +1,11 @@
import { useState } from 'react';
import hamburgerIcon from '../assets/icons/hamburger.svg';
import { useState } from "react";
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 (
<div className="flex flex-row w-full h-full bg-white/1">
<button className="w-24 p-4" onClick={handleMenuToggle}>

View 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

View File

@ -1,8 +1,12 @@
import { NavLink } from 'react-router-dom';
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 telegramIcon from '../assets/icons/telegram.svg';
import giteaIcon from '../assets/icons/gitea.svg';
import { NavLink } from 'react-router-dom';
function SideMenu({ isMenuOpen, setIsMenuOpen }) {
return (
@ -13,7 +17,7 @@ function SideMenu({ isMenuOpen, setIsMenuOpen }) {
} z-50`}
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="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">
@ -29,25 +33,26 @@ function SideMenu({ isMenuOpen, setIsMenuOpen }) {
</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
to="/"
className={({ isActive }) =>
`flex flex-row p-3 border-l-4 ${
`flex flex-row items-center gap-3 p-3 border-l-4 ${
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'
}`
}
onClick={() => setIsMenuOpen(false)}
>
Home
<img src={homeIcon} alt="Home" className="w-5 h-5" />
<span className="text-lg">Home</span>
</NavLink>
<NavLink
to="/cache"
className={({ isActive }) =>
`flex flex-row p-3 border-l-4 ${
`flex flex-row items-center gap-3 p-3 border-l-4 ${
isActive
? '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'
@ -55,13 +60,14 @@ function SideMenu({ isMenuOpen, setIsMenuOpen }) {
}
onClick={() => setIsMenuOpen(false)}
>
Cache
<img src={cacheIcon} alt="Cache" className="w-5 h-5" />
<span className="text-lg">Cache</span>
</NavLink>
<NavLink
to="/api"
className={({ isActive }) =>
`flex flex-row p-3 border-l-4 ${
`flex flex-row items-center gap-3 p-3 border-l-4 ${
isActive
? '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'
@ -69,13 +75,14 @@ function SideMenu({ isMenuOpen, setIsMenuOpen }) {
}
onClick={() => setIsMenuOpen(false)}
>
API
<img src={apiIcon} alt="API" className="w-5 h-5" />
<span className="text-lg">API</span>
</NavLink>
<NavLink
to="/testplayer"
className={({ isActive }) =>
`flex flex-row p-3 border-l-4 ${
`flex flex-row items-center gap-3 p-3 border-l-4 ${
isActive
? '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'
@ -83,34 +90,47 @@ function SideMenu({ isMenuOpen, setIsMenuOpen }) {
}
onClick={() => setIsMenuOpen(false)}
>
Test Player
<img src={testPlayerIcon} alt="Test Player" className="w-5 h-5" />
<span className="text-lg">Test Player</span>
</NavLink>
</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
href="https://discord.cdrm-project.com/"
target="_blank"
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
href="https://telegram.cdrm-project.com"
target="_blank"
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
href="https://cdm-project.com/tpd94/cdrm-project"
target="_blank"
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>
</div>
</div>