feat(SW-1543): move auth check within component to be suspended

This commit is contained in:
Christian Andolf
2025-02-06 16:22:43 +01:00
parent ced8dd5d99
commit 69d57b73a2
4 changed files with 20 additions and 17 deletions

View File

@@ -1,3 +1,5 @@
import { getProfileSafely } from "@/lib/trpc/memoizedRequests"
import { SurpriseIcon } from "@/components/Icons"
import Image from "@/components/Image"
import Button from "@/components/TempDesignSystem/Button"
@@ -15,9 +17,14 @@ interface JoinScandicFriendsProps {
content: JoinScandicFriends
}
export default function JoinScandicFriends({
export default async function JoinScandicFriends({
content,
}: JoinScandicFriendsProps) {
const session = await getProfileSafely()
if (session) {
return null
}
const { show_header, show_usp, usp, primary_button } = content
return (

View File

@@ -1,3 +1,5 @@
import { Suspense } from "react"
import CardsGrid from "@/components/Blocks/CardsGrid"
import CarouselCards from "@/components/Blocks/CarouselCards"
import DynamicContent from "@/components/Blocks/DynamicContent"
@@ -106,7 +108,11 @@ export default function Blocks({ blocks }: BlocksProps) {
case BlocksEnums.block.FullWidthCampaign:
return <FullWidthCampaign content={block.full_width_campaign} />
case BlocksEnums.block.JoinScandicFriends:
return <JoinScandicFriends content={block.join_scandic_friends} />
return (
<Suspense>
<JoinScandicFriends content={block.join_scandic_friends} />
</Suspense>
)
default:
return null
}

View File

@@ -55,6 +55,10 @@
}
}
.section:empty {
display: none;
}
.section {
margin-left: auto;
margin-right: auto;

View File

@@ -23,7 +23,6 @@ import {
TrackingChannelEnum,
type TrackingSDKPageData,
} from "@/types/components/tracking"
import { BlocksEnums } from "@/types/enums/blocks"
import type {
GetStartPageData,
GetStartPageRefsSchema,
@@ -184,21 +183,8 @@ export const startPageQueryRouter = router({
siteVersion: "new-web",
}
const session = await ctx.auth()
return {
startPage: {
...startPage.data.start_page,
blocks: startPage.data.start_page.blocks.filter((block) => {
if (
block.typename === BlocksEnums.block.JoinScandicFriends &&
session
) {
return null
}
return block
}),
},
startPage: startPage.data.start_page,
tracking,
}
}),