From 1a5c0b2d01662ed9d0386b9477eb1b4e98ffd91d Mon Sep 17 00:00:00 2001 From: Madhura68 Date: Fri, 8 May 2026 01:47:22 +0200 Subject: [PATCH] feat: toon code + titel + status in sprint-switcher dropdown items Co-Authored-By: Claude Opus 4.7 (1M context) --- app/(app)/products/[id]/page.tsx | 15 ++++++++++----- components/shared/sprint-switcher.tsx | 16 +++++++++++++--- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/app/(app)/products/[id]/page.tsx b/app/(app)/products/[id]/page.tsx index 3ce0e49..a428514 100644 --- a/app/(app)/products/[id]/page.tsx +++ b/app/(app)/products/[id]/page.tsx @@ -39,7 +39,7 @@ export default async function ProductBacklogPage({ params, searchParams }: Props prisma.sprint.findMany({ where: { product_id: id }, orderBy: { created_at: 'desc' }, - select: { id: true, code: true, status: true }, + select: { id: true, code: true, sprint_goal: true, status: true }, }), prisma.user.findUnique({ where: { id: session.userId! }, select: { active_product_id: true } }), resolveActiveSprint(id), @@ -61,13 +61,18 @@ export default async function ProductBacklogPage({ params, searchParams }: Props const sprintItems = allSprints.map(s => ({ id: s.id, code: s.code, + sprint_goal: s.sprint_goal, status: sprintStatusToApi(s.status), })) - const activeSprintItem = resolvedActiveSprint + const activeSprintFromList = resolvedActiveSprint + ? allSprints.find(s => s.id === resolvedActiveSprint.id) + : null + const activeSprintItem = activeSprintFromList ? { - id: resolvedActiveSprint.id, - code: resolvedActiveSprint.code, - status: sprintStatusToApi(resolvedActiveSprint.status), + id: activeSprintFromList.id, + code: activeSprintFromList.code, + sprint_goal: activeSprintFromList.sprint_goal, + status: sprintStatusToApi(activeSprintFromList.status), } : null const isActiveProduct = user?.active_product_id === id diff --git a/components/shared/sprint-switcher.tsx b/components/shared/sprint-switcher.tsx index a4eb9a7..d000426 100644 --- a/components/shared/sprint-switcher.tsx +++ b/components/shared/sprint-switcher.tsx @@ -15,7 +15,7 @@ import { cn } from '@/lib/utils' import { setActiveSprintAction } from '@/actions/active-sprint' import type { SprintStatusApi } from '@/lib/task-status' -type SprintItem = { id: string; code: string; status: SprintStatusApi } +type SprintItem = { id: string; code: string; sprint_goal: string; status: SprintStatusApi } interface SprintSwitcherProps { productId: string @@ -95,16 +95,26 @@ export function SprintSwitcher({ )} - + {sprints.map(s => ( handleSwitchSprint(s.id)} className={cn( + 'flex items-center gap-2', s.id === activeSprint?.id && 'bg-primary-container text-primary-container-foreground font-medium', )} > - {s.code} + {s.code} + {s.sprint_goal} + + {buildingSet.has(s.id) ? 'BUILDING' : SPRINT_STATUS_LABEL[s.status]} + ))}