Splitted sidebar skeletons
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import { Suspense } from "react"
|
import { Suspense } from "react"
|
||||||
|
|
||||||
import Sidebar from "@/components/MyPages/Sidebar"
|
import Sidebar from "@/components/MyPages/Sidebar"
|
||||||
import SidebarSkeleton from "@/components/MyPages/Sidebar/SidebarSkeleton"
|
import SidebarNavigationSkeleton from "@/components/MyPages/Sidebar/SidebarNavigationSkeleton"
|
||||||
import Surprises from "@/components/MyPages/Surprises"
|
import Surprises from "@/components/MyPages/Surprises"
|
||||||
|
|
||||||
import styles from "./layout.module.css"
|
import styles from "./layout.module.css"
|
||||||
@@ -17,7 +17,7 @@ export default async function MyPagesLayout({
|
|||||||
<section className={styles.layout}>
|
<section className={styles.layout}>
|
||||||
{breadcrumbs}
|
{breadcrumbs}
|
||||||
<section className={styles.content}>
|
<section className={styles.content}>
|
||||||
<Suspense fallback={<SidebarSkeleton />}>
|
<Suspense fallback={<SidebarNavigationSkeleton />}>
|
||||||
<Sidebar />
|
<Sidebar />
|
||||||
</Suspense>
|
</Suspense>
|
||||||
{children}
|
{children}
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import { serverClient } from "@/lib/trpc/server"
|
|||||||
import Blocks from "@/components/Blocks"
|
import Blocks from "@/components/Blocks"
|
||||||
import Hero from "@/components/Hero"
|
import Hero from "@/components/Hero"
|
||||||
import MaxWidth from "@/components/MaxWidth"
|
import MaxWidth from "@/components/MaxWidth"
|
||||||
import SidebarSkeleton from "@/components/MyPages/Sidebar/SidebarSkeleton"
|
|
||||||
import Sidebar from "@/components/Sidebar"
|
import Sidebar from "@/components/Sidebar"
|
||||||
|
import SidebarSkeleton from "@/components/Sidebar/SidebarSkeleton"
|
||||||
import Preamble from "@/components/TempDesignSystem/Text/Preamble"
|
import Preamble from "@/components/TempDesignSystem/Text/Preamble"
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||||
import TrackingSDK from "@/components/TrackingSDK"
|
import TrackingSDK from "@/components/TrackingSDK"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import { Suspense } from "react"
|
|||||||
|
|
||||||
import Blocks from "@/components/Blocks"
|
import Blocks from "@/components/Blocks"
|
||||||
import Hero from "@/components/Hero"
|
import Hero from "@/components/Hero"
|
||||||
import SidebarSkeleton from "@/components/MyPages/Sidebar/SidebarSkeleton"
|
|
||||||
import Sidebar from "@/components/Sidebar"
|
import Sidebar from "@/components/Sidebar"
|
||||||
|
import SidebarSkeleton from "@/components/Sidebar/SidebarSkeleton"
|
||||||
import LinkChips from "@/components/TempDesignSystem/LinkChips"
|
import LinkChips from "@/components/TempDesignSystem/LinkChips"
|
||||||
import Preamble from "@/components/TempDesignSystem/Text/Preamble"
|
import Preamble from "@/components/TempDesignSystem/Text/Preamble"
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||||
|
|||||||
57
components/MyPages/Sidebar/SidebarNavigationSkeleton.tsx
Normal file
57
components/MyPages/Sidebar/SidebarNavigationSkeleton.tsx
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
import SkeletonShimmer from "@/components/SkeletonShimmer"
|
||||||
|
import Divider from "@/components/TempDesignSystem/Divider"
|
||||||
|
import Link from "@/components/TempDesignSystem/Link"
|
||||||
|
import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
|
||||||
|
|
||||||
|
import styles from "./sidebar.module.css"
|
||||||
|
|
||||||
|
export default function SidebarNavigationSkeleton() {
|
||||||
|
return (
|
||||||
|
<aside className={styles.sidebar}>
|
||||||
|
<nav className={styles.nav}>
|
||||||
|
<Subtitle type="two" color="baseTextHighContrast">
|
||||||
|
<SkeletonShimmer width={"10ch"} />
|
||||||
|
</Subtitle>
|
||||||
|
<Divider color="beige" />
|
||||||
|
<ul className={styles.list}>
|
||||||
|
<li>
|
||||||
|
<Link href="" size={"regular"} variant="sidebar">
|
||||||
|
<SkeletonShimmer width={"8ch"} />
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="" size={"regular"} variant="sidebar">
|
||||||
|
<SkeletonShimmer width={"10ch"} />
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="" size={"regular"} variant="sidebar">
|
||||||
|
<SkeletonShimmer width={"9ch"} />
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="" size={"regular"} variant="sidebar">
|
||||||
|
<SkeletonShimmer width={"12ch"} />
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<Divider color="beige" />
|
||||||
|
<li>
|
||||||
|
<Link href="" size={"regular"} variant="sidebar">
|
||||||
|
<SkeletonShimmer width={"24ch"} />
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="" size={"regular"} variant="sidebar">
|
||||||
|
<SkeletonShimmer width={"10ch"} />
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link href="" size={"regular"} variant="sidebar">
|
||||||
|
<SkeletonShimmer width={"8ch"} />
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</aside>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
import SkeletonShimmer from "@/components/SkeletonShimmer"
|
|
||||||
|
|
||||||
import styles from "./sidebar.module.css"
|
|
||||||
|
|
||||||
export default function SidebarSkeleton() {
|
|
||||||
return (
|
|
||||||
<aside className={styles.sidebar}>
|
|
||||||
<nav className={styles.nav}>
|
|
||||||
<SkeletonShimmer width={"100%"} height="500px" />
|
|
||||||
</nav>
|
|
||||||
</aside>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,11 @@
|
|||||||
|
import { Suspense } from "react"
|
||||||
|
|
||||||
import { getName } from "@/lib/trpc/memoizedRequests"
|
import { getName } from "@/lib/trpc/memoizedRequests"
|
||||||
|
|
||||||
import MyPagesSidebar from "@/components/MyPages/Sidebar"
|
import MyPagesSidebar from "@/components/MyPages/Sidebar"
|
||||||
|
|
||||||
|
import SidebarNavigationSkeleton from "../MyPages/Sidebar/SidebarNavigationSkeleton"
|
||||||
|
|
||||||
export default async function MyPagesNavigation() {
|
export default async function MyPagesNavigation() {
|
||||||
const user = await getName()
|
const user = await getName()
|
||||||
|
|
||||||
@@ -9,5 +13,9 @@ export default async function MyPagesNavigation() {
|
|||||||
if (!user) {
|
if (!user) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
return <MyPagesSidebar />
|
return (
|
||||||
|
<Suspense fallback={<SidebarNavigationSkeleton />}>
|
||||||
|
<MyPagesSidebar />
|
||||||
|
</Suspense>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
11
components/Sidebar/SidebarSkeleton.tsx
Normal file
11
components/Sidebar/SidebarSkeleton.tsx
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import SkeletonShimmer from "../SkeletonShimmer"
|
||||||
|
|
||||||
|
import styles from "./sidebar.module.css"
|
||||||
|
|
||||||
|
export default function SidebarSkeleton() {
|
||||||
|
return (
|
||||||
|
<aside className={styles.aside}>
|
||||||
|
<SkeletonShimmer width="100%" height="500px" />
|
||||||
|
</aside>
|
||||||
|
)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user