diff --git a/pages/_document.tsx b/pages/_document.tsx
new file mode 100644
index 00000000..200baf67
--- /dev/null
+++ b/pages/_document.tsx
@@ -0,0 +1,23 @@
+import { Html, Head, Main, NextScript } from 'next/document';
+import Document, { DocumentContext, DocumentInitialProps } from 'next/document';
+
+class MyDocument extends Document {
+ static async getInitialProps(ctx: DocumentContext): Promise {
+ const initialProps = await Document.getInitialProps(ctx);
+ return { ...initialProps };
+ }
+
+ render() {
+ return (
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default MyDocument;
diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx
index 5e7cac58..2f18c7a9 100644
--- a/src/app/dashboard/page.tsx
+++ b/src/app/dashboard/page.tsx
@@ -29,7 +29,7 @@ function UserDashboardPageContent() {
// Load from URL parameters or localStorage when the component mounts
useEffect(() => {
- const componentParam = searchParams.get('component');
+ const componentParam = searchParams ? searchParams.get('component') : null;
if (componentParam) {
setActiveComponent(componentParam);
} else {
diff --git a/src/app/forum/[id]/page.tsx b/src/app/forum/[id]/page.tsx
index 021ab866..9dff7a6c 100644
--- a/src/app/forum/[id]/page.tsx
+++ b/src/app/forum/[id]/page.tsx
@@ -11,7 +11,8 @@ import Chatbot from "@/components/chatassistant/chatbot";
import { useUserPreferences } from '@/hooks/useUserPreferences';
export default function ForumDetailsPage() {
- const { id } = useParams();
+ const params = useParams();
+ const id = (params?.id ?? '') as string;
const router = useRouter();
const { trackInteraction, getPersonalizedFeed } = useUserPreferences();
const [forum, setForum] = useState(null);
diff --git a/src/app/meeting/[id]/page.tsx b/src/app/meeting/[id]/page.tsx
index 8ac63f49..1dcf7089 100644
--- a/src/app/meeting/[id]/page.tsx
+++ b/src/app/meeting/[id]/page.tsx
@@ -29,7 +29,7 @@ export default function MeetingPage() {
const params = useParams();
const router = useRouter();
const { user, isLoading: authLoading } = useAuth();
- const meetingId = params.id as string;
+ const meetingId = (params?.id ?? '') as string;
const [meeting, setMeeting] = useState(null);
const [otherUser, setOtherUser] = useState(null);
diff --git a/src/app/session/[sessionId]/page.tsx b/src/app/session/[sessionId]/page.tsx
index 40c0638a..dbcf5194 100644
--- a/src/app/session/[sessionId]/page.tsx
+++ b/src/app/session/[sessionId]/page.tsx
@@ -34,7 +34,7 @@ export default function SessionWorkspace() {
const params = useParams();
const router = useRouter();
const { user } = useAuth();
- const sessionId = params.sessionId as string;
+ const sessionId = (params?.sessionId ?? '') as string;
const currentUserId = user?._id
const [session, setSession] = useState(null);
diff --git a/src/app/user/chat/page.tsx b/src/app/user/chat/page.tsx
index 927dc76b..2aeb3afc 100644
--- a/src/app/user/chat/page.tsx
+++ b/src/app/user/chat/page.tsx
@@ -51,8 +51,8 @@ function ChatPageContent() {
// Check if user came from dashboard and handle auto-selection of chat room
useEffect(() => {
- const fromDashboard = searchParams.get('from') === 'dashboard';
- const roomId = searchParams.get('roomId');
+ const fromDashboard = searchParams ? searchParams.get('from') === 'dashboard' : false;
+ const roomId = searchParams ? searchParams.get('roomId') : null;
if (fromDashboard) {
setForceRefresh(true);
diff --git a/src/components/auth/AccountSuspended.tsx b/src/components/auth/AccountSuspended.tsx
index 74f284e5..cbb4bf4f 100644
--- a/src/components/auth/AccountSuspended.tsx
+++ b/src/components/auth/AccountSuspended.tsx
@@ -36,10 +36,10 @@ export default function AccountSuspended() {
useEffect(() => {
// Try to get suspension data from URL params
- const reason = searchParams.get("reason");
- const notes = searchParams.get("notes");
- const date = searchParams.get("date");
- const admin = searchParams.get("admin");
+ const reason = searchParams ? searchParams.get("reason") : null;
+ const notes = searchParams ? searchParams.get("notes") : null;
+ const date = searchParams ? searchParams.get("date") : null;
+ const admin = searchParams ? searchParams.get("admin") : null;
if (reason || notes || date) {
setSuspensionData({
diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx
new file mode 100644
index 00000000..200baf67
--- /dev/null
+++ b/src/pages/_document.tsx
@@ -0,0 +1,23 @@
+import { Html, Head, Main, NextScript } from 'next/document';
+import Document, { DocumentContext, DocumentInitialProps } from 'next/document';
+
+class MyDocument extends Document {
+ static async getInitialProps(ctx: DocumentContext): Promise {
+ const initialProps = await Document.getInitialProps(ctx);
+ return { ...initialProps };
+ }
+
+ render() {
+ return (
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default MyDocument;