diff --git a/app/[lang]/(live)/@footer/loading.tsx b/app/[lang]/(live)/@footer/loading.tsx
index 029d8ce71..9078cc122 100644
--- a/app/[lang]/(live)/@footer/loading.tsx
+++ b/app/[lang]/(live)/@footer/loading.tsx
@@ -1,11 +1,17 @@
import { env } from "@/env/server"
import CurrentLoadingSpinner from "@/components/Current/LoadingSpinner"
-import LoadingSpinner from "@/components/LoadingSpinner"
+import { FooterDetailsSkeleton } from "@/components/Footer/Details"
+import { FooterNavigationSkeleton } from "@/components/Footer/Navigation"
export default function LoadingFooter() {
if (env.HIDE_FOR_NEXT_RELEASE) {
return
}
- return
+ return (
+
+ )
}
diff --git a/components/Footer/Details/index.tsx b/components/Footer/Details/index.tsx
index 5cb8bbf4b..b95c20cca 100644
--- a/components/Footer/Details/index.tsx
+++ b/components/Footer/Details/index.tsx
@@ -3,6 +3,7 @@ import { getFooter, getLanguageSwitcher } from "@/lib/trpc/memoizedRequests"
import { getIconByIconName } from "@/components/Icons/get-icon-by-icon-name"
import Image from "@/components/Image"
import LanguageSwitcher from "@/components/LanguageSwitcher"
+import SkeletonShimmer from "@/components/SkeletonShimmer"
import Link from "@/components/TempDesignSystem/Link"
import Footnote from "@/components/TempDesignSystem/Text/Footnote"
import { getIntl } from "@/i18n"
@@ -92,3 +93,40 @@ export default async function FooterDetails() {
)
}
+
+export async function FooterDetailsSkeleton() {
+ const lang = getLang()
+ const intl = await getIntl()
+ const currentYear = new Date().getFullYear()
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ © {currentYear}{" "}
+ {intl.formatMessage({ id: "Copyright all rights reserved" })}
+
+
+
+
+
+
+
+ )
+}
diff --git a/components/Footer/Navigation/MainNav/index.tsx b/components/Footer/Navigation/MainNav/index.tsx
index 15b42dbc1..11057af43 100644
--- a/components/Footer/Navigation/MainNav/index.tsx
+++ b/components/Footer/Navigation/MainNav/index.tsx
@@ -1,4 +1,5 @@
import { ArrowRightIcon } from "@/components/Icons"
+import SkeletonShimmer from "@/components/SkeletonShimmer"
import Link from "@/components/TempDesignSystem/Link"
import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
@@ -30,3 +31,24 @@ export default function FooterMainNav({ mainLinks }: FooterMainNavProps) {
)
}
+
+export function FooterMainNavSkeleton() {
+ const items = Array.from({ length: 4 }).map((_, i) => i)
+
+ return (
+
+ )
+}
diff --git a/components/Footer/Navigation/SecondaryNav/index.tsx b/components/Footer/Navigation/SecondaryNav/index.tsx
index 6f9f9b0b3..1af85c16c 100644
--- a/components/Footer/Navigation/SecondaryNav/index.tsx
+++ b/components/Footer/Navigation/SecondaryNav/index.tsx
@@ -1,6 +1,6 @@
import Image from "@/components/Image"
+import SkeletonShimmer from "@/components/SkeletonShimmer"
import Link from "@/components/TempDesignSystem/Link"
-import Body from "@/components/TempDesignSystem/Text/Body"
import Caption from "@/components/TempDesignSystem/Text/Caption"
import { getLang } from "@/i18n/serverContext"
@@ -80,3 +80,46 @@ export default function FooterSecondaryNav({
)
}
+
+export function FooterSecondaryNavSkeleton() {
+ return (
+
+
+
+
+
+ )
+}
diff --git a/components/Footer/Navigation/index.tsx b/components/Footer/Navigation/index.tsx
index 84e96faf4..53f4c1346 100644
--- a/components/Footer/Navigation/index.tsx
+++ b/components/Footer/Navigation/index.tsx
@@ -1,7 +1,7 @@
import { getFooter } from "@/lib/trpc/memoizedRequests"
-import FooterMainNav from "./MainNav"
-import FooterSecondaryNav from "./SecondaryNav"
+import FooterMainNav, { FooterMainNavSkeleton } from "./MainNav"
+import FooterSecondaryNav, { FooterSecondaryNavSkeleton } from "./SecondaryNav"
import styles from "./navigation.module.css"
@@ -10,6 +10,7 @@ export default async function FooterNavigation() {
if (!footer) {
return null
}
+
return (
@@ -22,3 +23,14 @@ export default async function FooterNavigation() {
)
}
+
+export function FooterNavigationSkeleton() {
+ return (
+
+ )
+}
diff --git a/components/SkeletonShimmer/index.tsx b/components/SkeletonShimmer/index.tsx
index 68586e3ca..e4bc5364b 100644
--- a/components/SkeletonShimmer/index.tsx
+++ b/components/SkeletonShimmer/index.tsx
@@ -3,13 +3,15 @@ import styles from "./skeleton.module.css"
export default function SkeletonShimmer({
height,
width,
+ contrast = "light",
}: {
height?: string
width?: string
+ contrast?: "light" | "dark"
}) {
return (