diff --git a/apps/v4/app/(app)/create/components/create-skeleton.tsx b/apps/v4/app/(app)/create/components/create-skeleton.tsx new file mode 100644 index 000000000..e988e5475 --- /dev/null +++ b/apps/v4/app/(app)/create/components/create-skeleton.tsx @@ -0,0 +1,15 @@ +import { Skeleton } from "@/styles/base-nova/ui/skeleton" + +export function CreateSkeleton() { + return ( +
+
+ + +
+
+ ) +} diff --git a/apps/v4/app/(app)/create/layout.tsx b/apps/v4/app/(app)/create/layout.tsx index a137fdbc4..3240eadc1 100644 --- a/apps/v4/app/(app)/create/layout.tsx +++ b/apps/v4/app/(app)/create/layout.tsx @@ -1,5 +1,6 @@ import { Suspense } from "react" +import { CreateSkeleton } from "@/app/(app)/create/components/create-skeleton" import { HistoryProvider } from "@/app/(app)/create/hooks/use-history" import { LocksProvider } from "@/app/(app)/create/hooks/use-locks" @@ -10,7 +11,10 @@ export default function CreateLayout({ }) { return ( - + {/* HistoryProvider reads useSearchParams(), which opts this subtree out + of prerendering up to this boundary. The fallback is what paints on + first load, so it must be the page placeholder, not empty. */} + }> {children} diff --git a/apps/v4/app/(app)/create/loading.tsx b/apps/v4/app/(app)/create/loading.tsx new file mode 100644 index 000000000..11f33f672 --- /dev/null +++ b/apps/v4/app/(app)/create/loading.tsx @@ -0,0 +1,5 @@ +import { CreateSkeleton } from "@/app/(app)/create/components/create-skeleton" + +export default function CreateLoading() { + return +}