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;