From 2317f8527a550b600677e50e071bf522ccd7816e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6ssner?= Date: Thu, 17 Oct 2024 19:40:55 +1100 Subject: [PATCH] Improved loading states --- app/play/[level]/page.tsx | 26 +++++++++++++++++++++++++- app/play/page.tsx | 13 ++++++++++++- components/ui/skeleton.tsx | 15 +++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 components/ui/skeleton.tsx diff --git a/app/play/[level]/page.tsx b/app/play/[level]/page.tsx index 4e6860c..3d6b2a2 100644 --- a/app/play/[level]/page.tsx +++ b/app/play/[level]/page.tsx @@ -41,7 +41,31 @@ export default function PlayLevelPage({ const [showOriginalMap, setShowOriginalMap] = useState(true); if (!map) { - return
Loading...
; + return ( +
+
+ + {flags?.showTestPage && ( + setMode(value as "play" | "test")} + > + + Play + Test AI + + + )} +
+

Night #{level}

+ +

Loading...

+
+ ); } function handleRetryClicked() { diff --git a/app/play/page.tsx b/app/play/page.tsx index 2b2e21e..dcc04fa 100644 --- a/app/play/page.tsx +++ b/app/play/page.tsx @@ -12,12 +12,23 @@ import { CardHeader, CardTitle, } from "@/components/ui/card"; +import { Skeleton } from "@/components/ui/skeleton"; export default function PlayPage() { const maps = useQuery(api.maps.getMaps); if (!maps) { - return
Loading...
; + return ( +
+

Choose a Night

+ +
+ {Array.from({ length: 6 }).map((_, index) => ( + + ))} +
+
+ ); } return ( diff --git a/components/ui/skeleton.tsx b/components/ui/skeleton.tsx new file mode 100644 index 0000000..d7e45f7 --- /dev/null +++ b/components/ui/skeleton.tsx @@ -0,0 +1,15 @@ +import { cn } from "@/lib/utils" + +function Skeleton({ + className, + ...props +}: React.HTMLAttributes) { + return ( +
+ ) +} + +export { Skeleton }