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 (