diff --git a/app/(app)/[owner]/[repo]/actions/error.tsx b/app/(app)/[owner]/[repo]/actions/error.tsx new file mode 100644 index 00000000..e649aa80 --- /dev/null +++ b/app/(app)/[owner]/[repo]/actions/error.tsx @@ -0,0 +1,23 @@ +"use client"; + +import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; +import { Button } from "@/components/ui/button"; + +interface ErrorProps { + error: Error & { digest?: string }; + reset: () => void; +} + +export default function Error({ error, reset }: ErrorProps) { + return ( +
+ + Something went wrong + {error.message} + + +
+ ); +} diff --git a/app/(app)/[owner]/[repo]/actions/loading.tsx b/app/(app)/[owner]/[repo]/actions/loading.tsx new file mode 100644 index 00000000..0f41d747 --- /dev/null +++ b/app/(app)/[owner]/[repo]/actions/loading.tsx @@ -0,0 +1,11 @@ +import { SkeletonBlock } from "@/components/ui/skeleton"; + +export default function Loading() { + return ( +
+ {Array.from({ length: 5 }).map((_, i) => ( + + ))} +
+ ); +} diff --git a/app/(app)/[owner]/[repo]/commits/loading.tsx b/app/(app)/[owner]/[repo]/commits/loading.tsx new file mode 100644 index 00000000..4b200817 --- /dev/null +++ b/app/(app)/[owner]/[repo]/commits/loading.tsx @@ -0,0 +1,11 @@ +import { SkeletonBlock } from "@/components/ui/skeleton"; + +export default function Loading() { + return ( +
+ {Array.from({ length: 5 }).map((_, i) => ( + + ))} +
+ ); +} diff --git a/app/(app)/[owner]/[repo]/issues/error.tsx b/app/(app)/[owner]/[repo]/issues/error.tsx new file mode 100644 index 00000000..e649aa80 --- /dev/null +++ b/app/(app)/[owner]/[repo]/issues/error.tsx @@ -0,0 +1,23 @@ +"use client"; + +import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; +import { Button } from "@/components/ui/button"; + +interface ErrorProps { + error: Error & { digest?: string }; + reset: () => void; +} + +export default function Error({ error, reset }: ErrorProps) { + return ( +
+ + Something went wrong + {error.message} + + +
+ ); +} diff --git a/app/(app)/[owner]/[repo]/issues/loading.tsx b/app/(app)/[owner]/[repo]/issues/loading.tsx new file mode 100644 index 00000000..0f41d747 --- /dev/null +++ b/app/(app)/[owner]/[repo]/issues/loading.tsx @@ -0,0 +1,11 @@ +import { SkeletonBlock } from "@/components/ui/skeleton"; + +export default function Loading() { + return ( +
+ {Array.from({ length: 5 }).map((_, i) => ( + + ))} +
+ ); +} diff --git a/app/(app)/[owner]/[repo]/pulls/error.tsx b/app/(app)/[owner]/[repo]/pulls/error.tsx new file mode 100644 index 00000000..e649aa80 --- /dev/null +++ b/app/(app)/[owner]/[repo]/pulls/error.tsx @@ -0,0 +1,23 @@ +"use client"; + +import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; +import { Button } from "@/components/ui/button"; + +interface ErrorProps { + error: Error & { digest?: string }; + reset: () => void; +} + +export default function Error({ error, reset }: ErrorProps) { + return ( +
+ + Something went wrong + {error.message} + + +
+ ); +} diff --git a/app/(app)/[owner]/[repo]/pulls/loading.tsx b/app/(app)/[owner]/[repo]/pulls/loading.tsx new file mode 100644 index 00000000..0f41d747 --- /dev/null +++ b/app/(app)/[owner]/[repo]/pulls/loading.tsx @@ -0,0 +1,11 @@ +import { SkeletonBlock } from "@/components/ui/skeleton"; + +export default function Loading() { + return ( +
+ {Array.from({ length: 5 }).map((_, i) => ( + + ))} +
+ ); +}