diff --git a/surfsense_web/app/dashboard/[search_space_id]/logs/loading.tsx b/surfsense_web/app/dashboard/[search_space_id]/logs/loading.tsx
new file mode 100644
index 000000000..318c2836b
--- /dev/null
+++ b/surfsense_web/app/dashboard/[search_space_id]/logs/loading.tsx
@@ -0,0 +1,136 @@
+"use client";
+
+import { motion } from "motion/react";
+import { Skeleton } from "@/components/ui/skeleton";
+
+export default function Loading() {
+ return (
+
+ {/* Summary Dashboard Skeleton */}
+
+ {[...Array(4)].map((_, i) => (
+
+ ))}
+
+
+ {/* Header Section Skeleton */}
+
+
+
+
+
+
+
+
+ {/* Filters Skeleton */}
+
+
+
+
+
+
+
+
+
+ {/* Table Skeleton */}
+
+ {/* Table Header */}
+
+
+
+
+
+
+
+
+
+
+ {/* Table Rows */}
+ {[...Array(6)].map((_, i) => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ))}
+
+
+ {/* Pagination Skeleton */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/surfsense_web/app/dashboard/[search_space_id]/more-pages/loading.tsx b/surfsense_web/app/dashboard/[search_space_id]/more-pages/loading.tsx
new file mode 100644
index 000000000..9a0c45f3f
--- /dev/null
+++ b/surfsense_web/app/dashboard/[search_space_id]/more-pages/loading.tsx
@@ -0,0 +1,10 @@
+import { Skeleton } from "@/components/ui/skeleton";
+
+export default function Loading() {
+ return (
+
+
+
+
+ );
+}
diff --git a/surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx b/surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx
index 8578d2dcb..1cbfca2df 100644
--- a/surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx
+++ b/surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx
@@ -74,6 +74,7 @@ import {
trackChatMessageSent,
trackChatResponseReceived,
} from "@/lib/posthog/events";
+import Loading from "../loading";
/**
* After a tool produces output, mark any previously-decided interrupt tool
@@ -1527,40 +1528,7 @@ export default function NewChatPage() {
// Show loading state only when loading an existing thread
if (isInitializing) {
return (
-
-
- {/* User message */}
-
-
-
-
- {/* Assistant message */}
-
-
-
-
-
-
- {/* User message */}
-
-
-
-
- {/* Assistant message */}
-
-
-
-
-
-
-
- {/* Input bar */}
-
-
+
);
}
@@ -1597,4 +1565,4 @@ export default function NewChatPage() {
);
-}
+}
\ No newline at end of file
diff --git a/surfsense_web/app/dashboard/[search_space_id]/new-chat/loading.tsx b/surfsense_web/app/dashboard/[search_space_id]/new-chat/loading.tsx
new file mode 100644
index 000000000..1f47fb95a
--- /dev/null
+++ b/surfsense_web/app/dashboard/[search_space_id]/new-chat/loading.tsx
@@ -0,0 +1,45 @@
+import { Skeleton } from "@/components/ui/skeleton";
+
+export default function Loading() {
+ return (
+
+
+ {/* User message */}
+
+
+
+
+ {/* Assistant message */}
+
+
+
+
+
+
+ {/* User message */}
+
+
+
+
+ {/* Assistant message */}
+
+
+
+
+
+
+ {/* User message */}
+
+
+
+
+
+ {/* Input bar */}
+
+
+ );
+}