diff --git a/frontend/src/app/documents/page.tsx b/frontend/src/app/documents/page.tsx
index 1fc36772..09e25802 100644
--- a/frontend/src/app/documents/page.tsx
+++ b/frontend/src/app/documents/page.tsx
@@ -2,7 +2,7 @@
import { AppShell } from "../../components/AppShell";
import { apiClient } from "@/lib/api";
-import { useEffect, useMemo, useState } from "react";
+import { Suspense, useEffect, useMemo, useState } from "react";
import dynamic from "next/dynamic";
import { usePathname, useRouter, useSearchParams } from "next/navigation";
import type { Document } from "@/types/api";
@@ -63,6 +63,25 @@ function formatDate(value?: string): string {
}
export default function DocumentsPage() {
+ return (
+ }>
+
+
+ );
+}
+
+function DocumentsPageFallback() {
+ return (
+
+
+
+ Загрузка документов...
+
+
+ );
+}
+
+function DocumentsPageContent() {
const router = useRouter();
const pathname = usePathname();
const searchParams = useSearchParams();
diff --git a/frontend/src/app/messages/[chatId]/page.tsx b/frontend/src/app/messages/[chatId]/page.tsx
index c65b899f..274d1e0a 100644
--- a/frontend/src/app/messages/[chatId]/page.tsx
+++ b/frontend/src/app/messages/[chatId]/page.tsx
@@ -1,6 +1,6 @@
"use client";
-import React, { useEffect, useLayoutEffect, useMemo, useRef, useState, useCallback } from "react";
+import React, { Suspense, useEffect, useLayoutEffect, useMemo, useRef, useState, useCallback } from "react";
import { useParams, usePathname, useRouter, useSearchParams } from "next/navigation";
import { MessageCircle, ChevronDown, ChevronLeft, ChevronRight } from "lucide-react";
import { AppShell } from "../../../components/AppShell";
@@ -61,6 +61,25 @@ function formatDateInputValue(date: Date): string {
/* ─── component ─── */
export default function MessageDialogPage() {
+ return (
+ }>
+
+
+ );
+}
+
+function MessageDialogPageFallback() {
+ return (
+
+
+
+ );
+}
+
+function MessageDialogPageContent() {
const params = useParams<{ chatId: string }>();
const router = useRouter();
const pathname = usePathname();
diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx
index 0d7a9071..df8d0bba 100644
--- a/frontend/src/app/page.tsx
+++ b/frontend/src/app/page.tsx
@@ -5,7 +5,7 @@ import { AppShell } from "../components/AppShell";
import { Modal } from "@/components/ui";
import { apiClient } from "@/lib/api";
import { resolveMediaUrl } from "@/lib/url";
-import { useEffect, useRef, useState } from "react";
+import { Suspense, useEffect, useRef, useState } from "react";
import { usePathname, useRouter, useSearchParams } from "next/navigation";
import type { Comment, Post } from "@/types/api";
import { useUser } from "@/contexts/UserContext";
@@ -19,6 +19,25 @@ type LikeUser = {
};
export default function Home() {
+ return (
+ }>
+
+
+ );
+}
+
+function HomePageFallback() {
+ return (
+
+
+
+ );
+}
+
+function HomePageContent() {
const { user } = useUser();
const router = useRouter();
const pathname = usePathname();
diff --git a/frontend/src/app/requests/page.tsx b/frontend/src/app/requests/page.tsx
index 5ea82029..3d46db08 100644
--- a/frontend/src/app/requests/page.tsx
+++ b/frontend/src/app/requests/page.tsx
@@ -6,7 +6,7 @@ import { Modal } from "@/components/ui";
import { apiClient } from "@/lib/api";
import { useUser } from "@/contexts/UserContext";
import { canManageRequests, canProcessRequests } from "@/lib/permissions";
-import { useEffect, useRef } from "react";
+import { Suspense, useEffect, useRef } from "react";
import Link from "next/link";
import { usePathname, useRouter, useSearchParams } from "next/navigation";
import type { User } from "@/types/api";
@@ -25,6 +25,25 @@ import {
const SwipeApprovalMode = dynamic(() => import("@/components/requests/SwipeApprovalMode"), { ssr: false });
export default function RequestsPage() {
+ return (
+ }>
+
+
+ );
+}
+
+function RequestsPageFallback() {
+ return (
+
+
+
+ Загрузка заявлений...
+
+
+ );
+}
+
+function RequestsPageContent() {
const { user } = useUser();
const router = useRouter();
const pathname = usePathname();