fix: function props vanuit server component verplaatst naar client wrapper

This commit is contained in:
Janpeter Visser 2026-04-24 16:51:11 +02:00
parent 088d318e51
commit f2698d98d8
2 changed files with 58 additions and 23 deletions

View file

@ -3,8 +3,7 @@ import { cookies } from 'next/headers'
import { getIronSession } from 'iron-session' import { getIronSession } from 'iron-session'
import { SessionData, sessionOptions } from '@/lib/session' import { SessionData, sessionOptions } from '@/lib/session'
import { prisma } from '@/lib/prisma' import { prisma } from '@/lib/prisma'
import { SplitPane } from '@/components/split-pane/split-pane' import { SprintBacklogClient } from '@/components/sprint/sprint-backlog-client'
import { SprintBacklogLeft, SprintBacklogRight } from '@/components/sprint/sprint-backlog'
import { SprintHeader } from '@/components/sprint/sprint-header' import { SprintHeader } from '@/components/sprint/sprint-header'
import type { SprintStory, PbiWithStories } from '@/components/sprint/sprint-backlog' import type { SprintStory, PbiWithStories } from '@/components/sprint/sprint-backlog'
import Link from 'next/link' import Link from 'next/link'
@ -69,7 +68,7 @@ export default async function SprintBacklogPage({ params }: Props) {
})), })),
})) }))
const sprintStoryIds = new Set<string>(sprintStories.map((s: (typeof sprintStories)[number]) => s.id)) const sprintStoryIdList = sprintStories.map((s: (typeof sprintStories)[number]) => s.id)
const isDemo = session.isDemo ?? false const isDemo = session.isDemo ?? false
return ( return (
@ -83,26 +82,13 @@ export default async function SprintBacklogPage({ params }: Props) {
/> />
<div className="flex-1 overflow-hidden"> <div className="flex-1 overflow-hidden">
<SplitPane <SprintBacklogClient
storageKey={`sprint-${id}`} productId={id}
left={ sprintId={sprint.id}
<SprintBacklogLeft stories={sprintStoryItems}
sprintId={sprint.id} pbisWithStories={pbisWithStories}
stories={sprintStoryItems} sprintStoryIdList={sprintStoryIdList}
isDemo={isDemo} isDemo={isDemo}
selectedStoryId={null}
onSelectStory={() => {}}
/>
}
right={
<SprintBacklogRight
sprintId={sprint.id}
pbisWithStories={pbisWithStories}
sprintStoryIds={sprintStoryIds}
isDemo={isDemo}
onStoryAdded={() => {}}
/>
}
/> />
</div> </div>

View file

@ -0,0 +1,49 @@
'use client'
import { SplitPane } from '@/components/split-pane/split-pane'
import { SprintBacklogLeft, SprintBacklogRight } from './sprint-backlog'
import type { SprintStory, PbiWithStories } from './sprint-backlog'
interface SprintBacklogClientProps {
productId: string
sprintId: string
stories: SprintStory[]
pbisWithStories: PbiWithStories[]
sprintStoryIdList: string[]
isDemo: boolean
}
export function SprintBacklogClient({
productId,
sprintId,
stories,
pbisWithStories,
sprintStoryIdList,
isDemo,
}: SprintBacklogClientProps) {
const sprintStoryIds = new Set<string>(sprintStoryIdList)
return (
<SplitPane
storageKey={`sprint-${productId}`}
left={
<SprintBacklogLeft
sprintId={sprintId}
stories={stories}
isDemo={isDemo}
selectedStoryId={null}
onSelectStory={() => {}}
/>
}
right={
<SprintBacklogRight
sprintId={sprintId}
pbisWithStories={pbisWithStories}
sprintStoryIds={sprintStoryIds}
isDemo={isDemo}
onStoryAdded={() => {}}
/>
}
/>
)
}