diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/loading.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/loading.tsx
new file mode 100644
index 000000000000..0b69c660d939
--- /dev/null
+++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/loading.tsx
@@ -0,0 +1,22 @@
+"use client";
+
+import { PageContentWrapper } from "@/modules/ui/components/page-content-wrapper";
+import { PageHeader } from "@/modules/ui/components/page-header";
+import { SkeletonLoader } from "@/modules/ui/components/skeleton-loader";
+
+const Loading = () => {
+ return (
+
+
+
+
+
+ );
+};
+
+export default Loading;
diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/loading.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/loading.tsx
new file mode 100644
index 000000000000..01c34867f966
--- /dev/null
+++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/loading.tsx
@@ -0,0 +1,23 @@
+"use client";
+
+import { useTranslation } from "react-i18next";
+import { PageContentWrapper } from "@/modules/ui/components/page-content-wrapper";
+import { PageHeader } from "@/modules/ui/components/page-header";
+import { SkeletonLoader } from "@/modules/ui/components/skeleton-loader";
+
+const Loading = () => {
+ const { t } = useTranslation();
+
+ return (
+
+
+
+
+
+ );
+};
+
+export default Loading;
diff --git a/apps/web/modules/ui/components/skeleton-loader/index.tsx b/apps/web/modules/ui/components/skeleton-loader/index.tsx
index 88343ed50b37..7af41bff84e8 100644
--- a/apps/web/modules/ui/components/skeleton-loader/index.tsx
+++ b/apps/web/modules/ui/components/skeleton-loader/index.tsx
@@ -1,7 +1,7 @@
import { Skeleton } from "@/modules/ui/components/skeleton";
type SkeletonLoaderProps = {
- type: "response" | "summary";
+ type: "response" | "responseTable" | "summary";
};
export const SkeletonLoader = ({ type }: SkeletonLoaderProps) => {
@@ -25,6 +25,43 @@ export const SkeletonLoader = ({ type }: SkeletonLoaderProps) => {
);
}
+ if (type === "responseTable") {
+ const renderTableCells = () => (
+ <>
+
+
+
+
+
+
+ >
+ );
+
+ return (
+
+
+
+
+ {renderTableCells()}
+
+ {Array.from({ length: 10 }, (_, i) => (
+
+ {renderTableCells()}
+
+ ))}
+
+
+ );
+ }
+
if (type === "response") {
return (