perf(renderer): isolate kanban log activity updates

This commit is contained in:
777genius 2026-05-31 04:53:40 +03:00
parent 583bb5f26a
commit 0924a35682

View file

@ -916,6 +916,7 @@ type TeamMemberDetailDialogBridgeProps = Omit<
ComponentProps<typeof MemberDetailDialog>, ComponentProps<typeof MemberDetailDialog>,
'leadActivity' | 'spawnEntry' | 'runtimeEntry' 'leadActivity' | 'spawnEntry' | 'runtimeEntry'
>; >;
type TeamKanbanBoardBridgeProps = Omit<ComponentProps<typeof KanbanBoard>, 'activeTaskLogActivity'>;
type TeamSidebarRailBridgeProps = Omit< type TeamSidebarRailBridgeProps = Omit<
ComponentProps<typeof TeamSidebarRail>, ComponentProps<typeof TeamSidebarRail>,
'messagesPanelProps' 'messagesPanelProps'
@ -1682,6 +1683,17 @@ const TeamMemberDetailDialogBridge = memo(function TeamMemberDetailDialogBridge(
); );
}); });
const TeamKanbanBoardBridge = memo(function TeamKanbanBoardBridge({
teamName,
...props
}: TeamKanbanBoardBridgeProps): React.JSX.Element {
const activeTaskLogActivity = useStore((s) => s.activeTaskLogActivityByTeam[teamName]);
return (
<KanbanBoard {...props} teamName={teamName} activeTaskLogActivity={activeTaskLogActivity} />
);
});
export const TeamDetailView = memo(function TeamDetailView({ export const TeamDetailView = memo(function TeamDetailView({
teamName, teamName,
isActive = true, isActive = true,
@ -1859,7 +1871,6 @@ export const TeamDetailView = memo(function TeamDetailView({
restoreTask, restoreTask,
fetchDeletedTasks, fetchDeletedTasks,
deletedTasks, deletedTasks,
activeTaskLogActivity,
launchParams, launchParams,
messagesPanelMode, messagesPanelMode,
messagesPanelWidth, messagesPanelWidth,
@ -1918,7 +1929,6 @@ export const TeamDetailView = memo(function TeamDetailView({
restoreTask: s.restoreTask, restoreTask: s.restoreTask,
fetchDeletedTasks: s.fetchDeletedTasks, fetchDeletedTasks: s.fetchDeletedTasks,
deletedTasks: s.deletedTasks, deletedTasks: s.deletedTasks,
activeTaskLogActivity: teamName ? s.activeTaskLogActivityByTeam[teamName] : undefined,
launchParams: teamName ? s.launchParamsByTeam[teamName] : undefined, launchParams: teamName ? s.launchParamsByTeam[teamName] : undefined,
messagesPanelMode: s.messagesPanelMode, messagesPanelMode: s.messagesPanelMode,
messagesPanelWidth: s.messagesPanelWidth, messagesPanelWidth: s.messagesPanelWidth,
@ -3461,7 +3471,7 @@ export const TeamDetailView = memo(function TeamDetailView({
</Button> </Button>
} }
> >
<KanbanBoard <TeamKanbanBoardBridge
tasks={kanbanDisplayTasks} tasks={kanbanDisplayTasks}
teamName={teamName} teamName={teamName}
kanbanState={data.kanbanState} kanbanState={data.kanbanState}
@ -3470,7 +3480,6 @@ export const TeamDetailView = memo(function TeamDetailView({
sessions={teamSessions} sessions={teamSessions}
leadSessionId={data.config.leadSessionId} leadSessionId={data.config.leadSessionId}
members={activeMembers} members={activeMembers}
activeTaskLogActivity={activeTaskLogActivity}
forceShowAllTasks={isKanbanSearchActive} forceShowAllTasks={isKanbanSearchActive}
onFilterChange={setKanbanFilter} onFilterChange={setKanbanFilter}
onSortChange={setKanbanSort} onSortChange={setKanbanSort}