diff --git a/src/renderer/components/team/TeamDetailView.tsx b/src/renderer/components/team/TeamDetailView.tsx index 4804eb03..e6d930bf 100644 --- a/src/renderer/components/team/TeamDetailView.tsx +++ b/src/renderer/components/team/TeamDetailView.tsx @@ -1635,11 +1635,12 @@ export const TeamDetailView = memo(function TeamDetailView({ const activeMembers = useStableActiveMembers(membersWithLiveBranches); + const kanbanSearchQuery = kanbanSearch.trim(); + const isKanbanSearchActive = kanbanSearchQuery.length > 0; const kanbanDisplayTasks = useMemo(() => { - const query = kanbanSearch.trim(); - if (!query) return filteredTasks; - return filterKanbanTasks(filteredTasks, query); - }, [filteredTasks, kanbanSearch]); + if (!kanbanSearchQuery) return filteredTasks; + return filterKanbanTasks(filteredTasks, kanbanSearchQuery); + }, [filteredTasks, kanbanSearchQuery]); const activeTeammateCount = useMemo( () => activeMembers.filter((m) => !isLeadMember(m)).length, @@ -2498,7 +2499,7 @@ export const TeamDetailView = memo(function TeamDetailView({ icon={} badge={filteredTasks.length} defaultOpen - forceOpen={kanbanSearch.trim().length > 0} + forceOpen={isKanbanSearchActive} action={ + ) : null; + if (enableTaskSorting) { - const itemIds = columnTasks.map((t) => t.id); + const itemIds = visibleTasks.map((t) => t.id); return ( <> - {columnTasks.map((task) => ( + {visibleTasks.map((task) => ( ))} + {showMoreButton} {addButton} ); } return ( <> - {columnTasks.map((task) => ( + {visibleTasks.map((task) => ( ))} + {showMoreButton} {addButton} ); }, [ enableTaskSorting, + handleScrollToTask, hasReviewers, kanbanState, memberColorMap, @@ -527,10 +642,11 @@ export const KanbanBoard = memo(function KanbanBoard({ onMoveBackToDone, onRequestChanges, onRequestReview, - onScrollToTask, onStartTask, onTaskClick, onViewChanges, + renderableColumnTasks, + revealNextTasks, taskMap, teamName, ] @@ -623,13 +739,21 @@ export const KanbanBoard = memo(function KanbanBoard({ bodyBg: accent.bodyBg, content: renderCards(column.id, columnTasks), showAddButton: columnSupportsAddButton(column.id, onAddTask), - skeletonCards: columnTasks.map((task) => ({ + skeletonCards: renderableColumnTasks(column.id, columnTasks).map((task) => ({ key: task.id, height: estimateGridSkeletonCardHeight(task, column.id, kanbanState, hasReviewers), })), }; }), - [visibleColumns, groupedOrdered, renderCards, onAddTask, kanbanState, hasReviewers] + [ + visibleColumns, + groupedOrdered, + renderCards, + onAddTask, + renderableColumnTasks, + kanbanState, + hasReviewers, + ] ); const boardContent = (