diff --git a/app/(main-layout)/admin/users/edit/[id]/page.tsx b/app/(main-layout)/admin/users/edit/[id]/page.tsx
index d9250ea1..4047c94a 100644
--- a/app/(main-layout)/admin/users/edit/[id]/page.tsx
+++ b/app/(main-layout)/admin/users/edit/[id]/page.tsx
@@ -34,7 +34,10 @@ export default async function UserEditPage({
{userToEdit.name}
Email: {userToEdit.email}
-
+
>
);
diff --git a/app/(main-layout)/editEntry/[id]/page.tsx b/app/(main-layout)/editEntry/[id]/page.tsx
index 2eb26aed..1db5c58d 100644
--- a/app/(main-layout)/editEntry/[id]/page.tsx
+++ b/app/(main-layout)/editEntry/[id]/page.tsx
@@ -84,7 +84,7 @@ export default async function EditEntryPage({
holdingsData={holdingsData}
actionType="edit"
existingEntry={existingEntry}
- isEditor={canEdit}
+ isEditor={canEdit ?? false}
/>
>
);
diff --git a/app/(main-layout)/layout.tsx b/app/(main-layout)/layout.tsx
index b5a83a58..45f9b696 100644
--- a/app/(main-layout)/layout.tsx
+++ b/app/(main-layout)/layout.tsx
@@ -5,7 +5,7 @@ import { Roboto } from 'next/font/google';
import '@/app/styles/custom-bootstrap.scss';
import './globals.css';
import { ClerkProvider } from '@clerk/nextjs';
-import Header from '@/components/Header';
+import Header from '@/components/Header/Header';
import Footer from '@/components/Footer';
import { ToastContainer } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
@@ -27,7 +27,8 @@ export default function RootLayout({
}>) {
return (
-
+
+
@@ -37,7 +38,8 @@ export default function RootLayout({
-
+
+
);
}
diff --git a/app/(main-layout)/searchBibs/page.tsx b/app/(main-layout)/searchBibs/page.tsx
index e1d0f12f..8a110c42 100644
--- a/app/(main-layout)/searchBibs/page.tsx
+++ b/app/(main-layout)/searchBibs/page.tsx
@@ -40,9 +40,9 @@ async function SearchBibsPage({ searchParams }: SearchBibsPageProps) {
diff --git a/app/actions/deleteEntry.ts b/app/actions/deleteEntry.ts
index 3c3a3319..633cbd6f 100644
--- a/app/actions/deleteEntry.ts
+++ b/app/actions/deleteEntry.ts
@@ -25,7 +25,7 @@ async function deleteEntry({
logger.verbose(
`deletion request on ${entryId} by ${
user.id
- }; isAdmin: ${isAdmin.toString()}`
+ }; isAdmin: ${isAdmin?.toString()}`,
);
// only delete if isAdmin, isOwner, or isCoEditor
diff --git a/components/Header.tsx b/components/Header/ClientNav.tsx
similarity index 55%
rename from components/Header.tsx
rename to components/Header/ClientNav.tsx
index 578e14a4..716a67e1 100644
--- a/components/Header.tsx
+++ b/components/Header/ClientNav.tsx
@@ -1,8 +1,7 @@
-import NextLink from 'next/link';
+import Link from 'next/link';
import {
Nav,
NavItem,
- NavLink,
Navbar,
NavbarText,
NavbarBrand,
@@ -11,17 +10,22 @@ import {
} from 'react-bootstrap';
import Image from 'next/image';
import {
-SignInButton, // SignUpButton,
-Show, UserButton
+ SignInButton, // SignUpButton,
+ Show,
+ UserButton,
} from '@clerk/nextjs';
import { Search } from 'react-bootstrap-icons';
-import { checkUser } from '@/lib/checkUser';
-import NavEditor from './NavEditor';
-import NavAdmin from './NavAdmin';
+import { User } from '@prisma/client';
+import { ArgusPermissions } from '@/types/ArgusPermissions';
+import ClientNavEditor from './ClientNavEditor';
+import ClientNavAdmin from './ClientNavAdmin';
-const Header = async () => {
- const user = await checkUser();
+interface PageProps {
+ user: User | null | undefined;
+ permissions: ArgusPermissions;
+}
+const ClientNav = async ({ user, permissions }: PageProps) => {
return (
{
className="px-2"
>
-
-
-
- Argus {process.env.NEXT_PUBLIC_NAV_LABEL || ''}
-
-
+
+
+
+
+ Argus {process.env.NEXT_PUBLIC_NAV_LABEL || ''}
+
+
+
+