Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/Components/Navbar/AdminNavbar.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import React from 'react';
import { useUser } from '../context/UserContext';

export default function UserNavBar(props) {
const { user } = useUser();
const getLinkClassName = (path) => {
const weAreAtGivenPath = path === window.location.pathname;
let className = 'flex items-center p-2 text-gray-900 rounded-lg dark:text-white';
Expand Down Expand Up @@ -30,7 +32,7 @@ export default function UserNavBar(props) {
},
{
title: 'Edit Profile',
route: `/user/edit/${props.user._id}`,
route: `/user/edit/${user._id}`,
icon: (
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" className="w-6 h-6">
<path strokeLinecap="round" strokeLinejoin="round" d="m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125" />
Expand Down Expand Up @@ -125,7 +127,7 @@ export default function UserNavBar(props) {
<div className="drawer-side">
<label htmlFor="my-drawer-2" aria-label="close sidebar" className="drawer-overlay"></label>
<div className="menu p-4 w-60 min-h-full bg-base-200 text-base-content">
Signed in as {props.user.email}
Signed in as {user.email}
<ul className="menu min-h-full bg-base-200 text-base-content">
{renderRoutesForNavbar(topNavbarLinks)}
</ul>
Expand Down
25 changes: 13 additions & 12 deletions src/Components/Navbar/UserNavbar.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
import React from 'react';
import { membershipState } from '../../Enums';
import { useUser } from '../context/UserContext';

export default function UserNavBar(props) {
export default function UserNavbar(props) {
const { user } = useUser();
let initials = '';
if (props.user.firstName && props.user.lastName) {
initials = props.user.firstName[0] + props.user.lastName[0];
if (user && user.firstName && user.lastName) {
initials = user.firstName[0] + user.lastName[0];
}
const unauthedRoutes = [
{ title: 'About', route: '/about' },
{ title: 'Projects', route: '/projects' },
{ title: 'Spartan Compass', route: '/spartan-compass' }
];


const authedRoutes = [{ title: 'Printing', route: '/2DPrinting' },
{title: 'Chat', route: '/messaging'},
const authedRoutes = [
{ title: 'Printing', route: '/2DPrinting' },
{ title: 'Chat', route: '/messaging' },
];

const authentication = [
Expand All @@ -24,7 +26,7 @@ export default function UserNavBar(props) {

const getRoutesForNavbar = () => {
let routesList = unauthedRoutes;
if (props.user.accessLevel >= membershipState.MEMBER) {
if (user && user.accessLevel >= membershipState.MEMBER) {
routesList = authedRoutes;
}
return (
Expand All @@ -34,7 +36,7 @@ export default function UserNavBar(props) {
<li key={link.route}><a href={link.route}>{link.title}</a></li>
);
})}
{props.user.accessLevel >= membershipState.OFFICER && (
{user && user.accessLevel >= membershipState.OFFICER && (
<li>
<a href='/user-manager'>
Admin
Expand Down Expand Up @@ -74,7 +76,7 @@ export default function UserNavBar(props) {
</div>

<div className="navbar-end">
{props.authenticated && props.user ? (
{props.authenticated && user ? (
<>
<div className="dropdown dropdown-end sm:hidden">
<div tabIndex={0} role="button" className="btn btn-ghost rounded-btn">Services</div>
Expand All @@ -83,7 +85,6 @@ export default function UserNavBar(props) {
</ul>
</div>


<div className="dropdown dropdown-bottom dropdown-end">
<summary tabIndex={0} role="button" className="btn btn-ghost btn-circle avatar placeholder">
<div className="w-12 rounded-full bg-neutral text-neutral-content">
Expand All @@ -92,8 +93,8 @@ export default function UserNavBar(props) {
</summary>
<div className='p-2 shadow menu dropdown-content z-[1] bg-base-100 w-52'>
<div className="px-4 py-3 text-sm text-gray-900 dark:text-white">
<div>{props.user.firstName} {props.user.lastName}</div>
<div className="font-medium truncate">{props.user.email}</div>
<div>{user.firstName} {user.lastName}</div>
<div className="font-medium truncate">{user.email}</div>
</div>
<ul className='p-2 shadow menu rounded-b-xl dropdown-content z-[1] bg-base-100 w-52'>
<li>
Expand Down