diff --git a/frontend/src/features/dashboard/components/Header.module.css b/frontend/src/features/dashboard/components/Header.module.css index c5b373c..d60a8e6 100644 --- a/frontend/src/features/dashboard/components/Header.module.css +++ b/frontend/src/features/dashboard/components/Header.module.css @@ -4,4 +4,20 @@ justify-content: end; align-items: center; width: 100%; + height: 100%; + position: relative; + padding-right: 10px; +} +.menu{ + position: absolute; + top:100%; + right: 0; + background: white; + border: 1px solid #ddd; + padding: 8px; + list-style: none; +} +.menu button { + width: 100%; + text-align: left; } \ No newline at end of file diff --git a/frontend/src/features/dashboard/components/Header.tsx b/frontend/src/features/dashboard/components/Header.tsx index 7cf12a9..ecbf0fe 100644 --- a/frontend/src/features/dashboard/components/Header.tsx +++ b/frontend/src/features/dashboard/components/Header.tsx @@ -1,12 +1,29 @@ -import type { ReactElement } from "react"; +import { useState, type ReactElement } from "react"; import styles from "./Header.module.css" +import { logout } from "../../../api/token"; +import { useNavigate } from "react-router-dom"; export function Header():ReactElement { + const [open, setOpen] = useState(false); + const navigate = useNavigate(); + + function toggleMenu() { + setOpen(!open); + } + async function handleLogout() { + await logout(); + navigate("/"); + } return ( <>
-

profile

+ + {open && ( + )}
); diff --git a/frontend/src/features/dashboard/components/Right_sidebar.module.css b/frontend/src/features/dashboard/components/Right_sidebar.module.css index fcf6dff..cb45d42 100644 --- a/frontend/src/features/dashboard/components/Right_sidebar.module.css +++ b/frontend/src/features/dashboard/components/Right_sidebar.module.css @@ -2,5 +2,4 @@ display: grid; align-content: center; justify-content: center; - height: 100vh; } \ No newline at end of file diff --git a/frontend/src/features/dashboard/components/Sidebar.module.css b/frontend/src/features/dashboard/components/Sidebar.module.css index 6495a21..9067d20 100644 --- a/frontend/src/features/dashboard/components/Sidebar.module.css +++ b/frontend/src/features/dashboard/components/Sidebar.module.css @@ -1,9 +1,17 @@ +.wrapper{ + display: grid; + grid-template-areas: + "logo logo" + "elements elements"; +} .sidebar_elements{ display: grid; + grid-area: elements; align-content: start; gap: 15px; } .logo { + grid-area: logo; display: grid; grid-template-columns: 1fr 1fr; } @@ -11,4 +19,5 @@ display: grid; text-align: center; place-items: center; + height: 5vh; } \ No newline at end of file diff --git a/frontend/src/features/dashboard/components/Sidebar.tsx b/frontend/src/features/dashboard/components/Sidebar.tsx index 5603914..ac3e3a7 100644 --- a/frontend/src/features/dashboard/components/Sidebar.tsx +++ b/frontend/src/features/dashboard/components/Sidebar.tsx @@ -5,6 +5,7 @@ export function Sidebar():ReactElement { return ( <> +

logo

Project name

@@ -14,6 +15,7 @@ export function Sidebar():ReactElement {
+
); } \ No newline at end of file diff --git a/frontend/src/index.css b/frontend/src/index.css index 4f073b7..a4cd65d 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -9,7 +9,7 @@ html,body{ font-family: 'Manrope', sans-serif; user-select: none; font-size:100%;line-height:1;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%;} -input,button,textarea{font-family:inherit;} +input, button, textarea { font: inherit; } input::-ms-clear{display: none;} button{cursor: pointer;} button::-moz-focus-inner{padding:0;border:0;} diff --git a/frontend/src/layouts/Main/Dashboard.module.css b/frontend/src/layouts/Main/Dashboard.module.css index 5b75642..b245d7e 100644 --- a/frontend/src/layouts/Main/Dashboard.module.css +++ b/frontend/src/layouts/Main/Dashboard.module.css @@ -1,27 +1,39 @@ -/* * { +* { outline: 1px solid red; -} */ +} .wrapper { display: grid; - grid-template-columns: 20% 1fr; - height: 100vh; + grid-template-columns: 20% 1fr 20%; + grid-template-rows: 5vh 1fr; + min-height: 100vh; + background-color:#F7FAF9; + grid-template-areas: + "left_sidebar header header" + "left_sidebar content right_sidebar"; } .left_sidebar{ display: grid; + grid-area: left_sidebar; align-content: start; gap:10px; + background-color:#F1FAF7; + border-right: 1px solid #E1E9E6 ; } .header { display: grid; + grid-area: header; + background: #FFFFFF; + border-bottom: 1px solid #E1E9E6; } .content { display: grid; + grid-area: content; } -.wrapper_1 { +/* .wrapper_1 { display: grid; grid-template-rows: 5vh 1fr; height: 100%; @@ -30,7 +42,10 @@ display: grid; grid-template-columns: 70% 1fr; height: 100%; -} +} */ .right_sidebar{ display: grid; -} \ No newline at end of file + grid-area: right_sidebar; + background: #FFFFFF; + border-left: 1px solid #E1E9E6; +} diff --git a/frontend/src/layouts/Main/Dashboard.tsx b/frontend/src/layouts/Main/Dashboard.tsx index f3e7228..e436e4f 100644 --- a/frontend/src/layouts/Main/Dashboard.tsx +++ b/frontend/src/layouts/Main/Dashboard.tsx @@ -1,12 +1,9 @@ import type { ReactNode } from "react"; import styles from "./Dashboard.module.css" -import { useNavigate } from "react-router-dom"; -import { logout } from "../../api/token"; import { usePermissions } from "../../hooks/usePermissions"; export function MainLayout({sidebar, header, content, right_sidebar }: { sidebar: ReactNode;header: ReactNode; content: ReactNode; right_sidebar: ReactNode }) { - const navigate = useNavigate(); //const { permissions, loading } = usePermissions(); const { loading } = usePermissions(); @@ -14,31 +11,21 @@ export function MainLayout({sidebar, header, content, right_sidebar }: { sidebar return null; } - async function handleLogout() { - await logout(); - navigate("/"); - } - return (
{sidebar}
-
-
- {header} - {/* {permissions.has("admin") &&

test

} */} - -
-
-
- {content} -
-
- {right_sidebar} -
-
+
+ {header} + {/* {permissions.has("admin") &&

test

} */} +
+
+ {content} +
+
+ {right_sidebar}
);