feat: middle save

This commit is contained in:
Project_IO 2025-03-15 15:30:07 +09:00
parent a2f00ac83e
commit 039ea6fb52
2 changed files with 45 additions and 5 deletions

View file

@ -26,3 +26,22 @@
} }
} }
} }
.ka-menu {
top: 0;
left: 0;
width: 300px;
height: 100%;
position: fixed;
transform: translateX(-100%);
background-color: var(--nav-color);
transition: transform 0.3s ease-in-out;
&.open {
transform: translateX(0);
}
@media (max-width: 640px) {
width: 100%;
}
}

View file

@ -4,7 +4,7 @@ import { useEffect, useState } from "react";
import "./App.scss"; import "./App.scss";
import kuma from "./assets/kuma.png"; import kuma from "./assets/kuma.png";
import { Menu } from "lucide-react"; import { Menu, PanelLeftClose } from "lucide-react";
function App() { function App() {
return ( return (
@ -42,18 +42,39 @@ function Dashboard() {
} }
function Header() { function Header() {
const [open, setOpen] = useState(false);
return ( return (
<nav className="ka-nav"> <nav className="ka-nav">
<div className="title"> <a className="title">
<img src={kuma} alt="" /> <img src={kuma} alt="" />
<h4 className="title-content">Kuma Archive</h4> <h4 className="title-content">Kuma Archive</h4>
</div> </a>
<button> <a onClick={ev => {
ev.preventDefault();
setOpen(!open);
}}>
<Menu /> <Menu />
</button> </a>
<MenuView open={open} setOpen={setOpen} />
</nav> </nav>
); );
} }
// TODO: create menu modal
function MenuView({ open, setOpen }: { open: boolean; setOpen: (value: boolean) => void }) {
return (
<div className={`ka-menu ${open ? "open" : ""}`}>
<a onClick={ev => {
ev.preventDefault();
setOpen(false);
}}>
<PanelLeftClose />
<span>Close</span>
</a>
</div>
);
}
export default App; export default App;