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 ( +
+
+ + Scandic Hotels logo + + +
+
+
+ + © {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 (