fix(SW-705): Added Suspense to LanguageSwitcher
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
"use client"
|
"use client"
|
||||||
import { usePathname } from "next/navigation"
|
import { usePathname } from "next/navigation"
|
||||||
|
import { Suspense } from "react"
|
||||||
import { useIntl } from "react-intl"
|
import { useIntl } from "react-intl"
|
||||||
|
|
||||||
import { logout } from "@/constants/routes/handleAuth"
|
import { logout } from "@/constants/routes/handleAuth"
|
||||||
@@ -9,6 +10,7 @@ import useDropdownStore from "@/stores/main-menu"
|
|||||||
import Image from "@/components/Image"
|
import Image from "@/components/Image"
|
||||||
import LoginButton from "@/components/LoginButton"
|
import LoginButton from "@/components/LoginButton"
|
||||||
import Avatar from "@/components/MyPages/Avatar"
|
import Avatar from "@/components/MyPages/Avatar"
|
||||||
|
import SkeletonShimmer from "@/components/SkeletonShimmer"
|
||||||
import Link from "@/components/TempDesignSystem/Link"
|
import Link from "@/components/TempDesignSystem/Link"
|
||||||
import useLang from "@/hooks/useLang"
|
import useLang from "@/hooks/useLang"
|
||||||
import { trackClick } from "@/utils/tracking"
|
import { trackClick } from "@/utils/tracking"
|
||||||
@@ -112,16 +114,14 @@ export function MainMenu({
|
|||||||
>
|
>
|
||||||
<ul className={styles.linkRow}>
|
<ul className={styles.linkRow}>
|
||||||
{!isThreeStaticPagesPathnames && !!user ? (
|
{!isThreeStaticPagesPathnames && !!user ? (
|
||||||
<>
|
<li className={styles.mobileLinkRow}>
|
||||||
<li className={styles.mobileLinkRow}>
|
<Link
|
||||||
<Link
|
className={styles.mobileLinkButton}
|
||||||
className={styles.mobileLinkButton}
|
href={myPages[lang]}
|
||||||
href={myPages[lang]}
|
>
|
||||||
>
|
{intl.formatMessage({ id: "My pages" })}
|
||||||
{intl.formatMessage({ id: "My pages" })}
|
</Link>
|
||||||
</Link>
|
</li>
|
||||||
</li>
|
|
||||||
</>
|
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
<li>
|
<li>
|
||||||
@@ -190,7 +190,13 @@ export function MainMenu({
|
|||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
{languageSwitcher ? (
|
{languageSwitcher ? (
|
||||||
<li className={styles.mobileLi}>{languageSwitcher}</li>
|
<li className={styles.mobileLi}>
|
||||||
|
<Suspense
|
||||||
|
fallback={<SkeletonShimmer height="20px" width="10ch" />}
|
||||||
|
>
|
||||||
|
{languageSwitcher}
|
||||||
|
</Suspense>
|
||||||
|
</li>
|
||||||
) : null}
|
) : null}
|
||||||
{!!user ? (
|
{!!user ? (
|
||||||
<li className={`${styles.mobileLi} ${styles.logout}`}>
|
<li className={`${styles.mobileLi} ${styles.logout}`}>
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
|
import { Suspense } from "react"
|
||||||
|
|
||||||
import { logout } from "@/constants/routes/handleAuth"
|
import { logout } from "@/constants/routes/handleAuth"
|
||||||
import { overview } from "@/constants/routes/myPages"
|
import { overview } from "@/constants/routes/myPages"
|
||||||
import { getName } from "@/lib/trpc/memoizedRequests"
|
import { getName } from "@/lib/trpc/memoizedRequests"
|
||||||
|
|
||||||
import LoginButton from "@/components/LoginButton"
|
import LoginButton from "@/components/LoginButton"
|
||||||
|
import SkeletonShimmer from "@/components/SkeletonShimmer"
|
||||||
import Link from "@/components/TempDesignSystem/Link"
|
import Link from "@/components/TempDesignSystem/Link"
|
||||||
import { getIntl } from "@/i18n"
|
import { getIntl } from "@/i18n"
|
||||||
import { getLang } from "@/i18n/serverContext"
|
import { getLang } from "@/i18n/serverContext"
|
||||||
@@ -32,7 +35,13 @@ export default async function TopMenu({
|
|||||||
|
|
||||||
<ul className={styles.list}>
|
<ul className={styles.list}>
|
||||||
{languageSwitcher ? (
|
{languageSwitcher ? (
|
||||||
<li className={styles.langSwitcher}>{languageSwitcher}</li>
|
<li className={styles.langSwitcher}>
|
||||||
|
<Suspense
|
||||||
|
fallback={<SkeletonShimmer height="20px" width="10ch" />}
|
||||||
|
>
|
||||||
|
{languageSwitcher}
|
||||||
|
</Suspense>
|
||||||
|
</li>
|
||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
{links.map(({ link }, i) => (
|
{links.map(({ link }, i) => (
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { Suspense } from "react"
|
||||||
|
|
||||||
import { getFooter, getLanguageSwitcher } from "@/lib/trpc/memoizedRequests"
|
import { getFooter, getLanguageSwitcher } from "@/lib/trpc/memoizedRequests"
|
||||||
|
|
||||||
import { getIconByIconName } from "@/components/Icons/get-icon-by-icon-name"
|
import { getIconByIconName } from "@/components/Icons/get-icon-by-icon-name"
|
||||||
@@ -86,7 +88,9 @@ export default async function FooterDetails() {
|
|||||||
)}
|
)}
|
||||||
</nav>
|
</nav>
|
||||||
{languages?.urls ? (
|
{languages?.urls ? (
|
||||||
<LanguageSwitcher type="footer" urls={languages.urls} />
|
<Suspense fallback={<SkeletonShimmer height="20px" width="10ch" />}>
|
||||||
|
<LanguageSwitcher type="footer" urls={languages.urls} />
|
||||||
|
</Suspense>
|
||||||
) : null}
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user