fix: function props vanuit server component verplaatst naar client wrapper
This commit is contained in:
parent
088d318e51
commit
f2698d98d8
2 changed files with 58 additions and 23 deletions
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
||||||
49
components/sprint/sprint-backlog-client.tsx
Normal file
49
components/sprint/sprint-backlog-client.tsx
Normal 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={() => {}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue