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") &&
} */}
-
-
-
-
- {content}
-
-
- {right_sidebar}
-
-
+
+ {header}
+ {/* {permissions.has("admin") &&
} */}
+
+
+ {content}
+
+
+ {right_sidebar}
);