diff --git a/resources/js/Components/Icons.jsx b/resources/js/Components/Icons.jsx new file mode 100644 index 0000000..62c3d61 --- /dev/null +++ b/resources/js/Components/Icons.jsx @@ -0,0 +1,7 @@ +export const ArrowDownIcon = () => { + return ( + + + + ) +} \ No newline at end of file diff --git a/resources/js/Components/NavDropdown.jsx b/resources/js/Components/NavDropdown.jsx new file mode 100644 index 0000000..4185f0f --- /dev/null +++ b/resources/js/Components/NavDropdown.jsx @@ -0,0 +1,23 @@ +import React from "react" +import { Link } from "@inertiajs/react" +import { ArrowDownIcon } from "./Icons" + +export default function NavDropdown({ name, items }) { + const active = items.find(act => act.route === route().current()) + + return ( +
+ + +
+ ) +} \ No newline at end of file diff --git a/resources/js/Components/NavItem.jsx b/resources/js/Components/NavItem.jsx index b49632b..fea52b9 100644 --- a/resources/js/Components/NavItem.jsx +++ b/resources/js/Components/NavItem.jsx @@ -1,30 +1,13 @@ import React from 'react'; import { Link } from '@inertiajs/react'; -export function NavItem({ href, active, children }) { +export default function NavItem({ href, active, children }) { return ( {children} ); -} - -export function NavDropdown({ name, items }) { - const active = items.find(act => act.route === route().current()) - - return ( -
- - -
- ) } \ No newline at end of file diff --git a/resources/js/Layouts/AuthenticatedLayout.jsx b/resources/js/Layouts/AuthenticatedLayout.jsx index c17aceb..96972df 100644 --- a/resources/js/Layouts/AuthenticatedLayout.jsx +++ b/resources/js/Layouts/AuthenticatedLayout.jsx @@ -1,14 +1,22 @@ import React, { useState, useEffect } from 'react'; -import ApplicationLogo from '@/Components/ApplicationLogo'; import Dropdown from '@/Components/Dropdown'; import { ToastContainer, toast } from 'react-toastify' import ResponsiveNavLink from '@/Components/ResponsiveNavLink'; -import { NavItem, NavDropdown } from '@/Components/NavItem'; -import NavLink from '@/Components/NavLink'; -import { Link } from '@inertiajs/react'; -import MenuItem from '@/Components/SidebarMenuItem'; +import NavItem from '@/Components/NavItem'; +import NavDropdown from '@/Components/NavDropdown'; import { IconBell, IconBellRing } from '@/Icons'; import { router } from '@inertiajs/react' +import { ArrowDownIcon } from '@/Components/Icons'; + +const routes = [ + {name: "Dashboard", route: "dashboard"}, + {name: "Dokumen", items: [ + {name: "Dokumen", route: 'docs.index'}, + {name: "Ketegori", route: 'docs.index'}, + {name: "Jenis", route: 'docs.index'}, + ]}, + {name: "User", route: "users.index"}, +] const Notification = ({ notifications, hasUnread }) => { const redirect = (item) => { @@ -59,23 +67,36 @@ export default function Authenticated({ auth, children, flash, notify }) {
- - Dashboard - - - - User - + {routes.map((item, index) => ( +
+ {'items' in item ? ( + + ) : ( + + {item.name} + + )} +
+ ))}
- {auth.user.name} +
+ + +
-
- - Dashboard - - - Monitoring - - - Users - + {routes.map((item, index) => ( +
+ {'items' in item ? ( + <> + {item.items.map((i, k) => ( + + {i.name} + + ))} + + ) : ( + + {item.name} + + )} +
+ ))}