diff --git a/src/renderer/components/schedules/SchedulesView.tsx b/src/renderer/components/schedules/SchedulesView.tsx
index 4ee09057..3535cc28 100644
--- a/src/renderer/components/schedules/SchedulesView.tsx
+++ b/src/renderer/components/schedules/SchedulesView.tsx
@@ -1,4 +1,4 @@
-import React, { useCallback, useEffect, useMemo, useState } from 'react';
+import React, { lazy, Suspense, useCallback, useEffect, useMemo, useState } from 'react';
import { Button } from '@renderer/components/ui/button';
import { Input } from '@renderer/components/ui/input';
@@ -24,8 +24,11 @@ import {
} from 'lucide-react';
import { useShallow } from 'zustand/react/shallow';
-import { LaunchTeamDialog } from '../team/dialogs/LaunchTeamDialog';
import { ScheduleRunLogDialog } from '../team/schedule/ScheduleRunLogDialog';
+
+const LaunchTeamDialog = lazy(() =>
+ import('../team/dialogs/LaunchTeamDialog').then((m) => ({ default: m.LaunchTeamDialog }))
+);
import { ScheduleRunRow } from '../team/schedule/ScheduleRunRow';
import { ScheduleStatusBadge } from '../team/schedule/ScheduleStatusBadge';
@@ -562,13 +565,15 @@ export const SchedulesView = (): React.JSX.Element => {
{/* Create/Edit Dialog */}
-
+
+
+
);
};
diff --git a/src/renderer/components/sidebar/DateGroupedSessions.tsx b/src/renderer/components/sidebar/DateGroupedSessions.tsx
index 39827dcb..5efd93bf 100644
--- a/src/renderer/components/sidebar/DateGroupedSessions.tsx
+++ b/src/renderer/components/sidebar/DateGroupedSessions.tsx
@@ -202,7 +202,6 @@ export const DateGroupedSessions = memo((): React.JSX.Element => {
toggleShowHiddenSessions,
sidebarSelectedSessionIds,
sidebarMultiSelectActive,
- toggleSidebarSessionSelection,
clearSidebarSelection,
toggleSidebarMultiSelect,
hideMultipleSessions,
@@ -239,7 +238,6 @@ export const DateGroupedSessions = memo((): React.JSX.Element => {
toggleShowHiddenSessions: s.toggleShowHiddenSessions,
sidebarSelectedSessionIds: s.sidebarSelectedSessionIds,
sidebarMultiSelectActive: s.sidebarMultiSelectActive,
- toggleSidebarSessionSelection: s.toggleSidebarSessionSelection,
clearSidebarSelection: s.clearSidebarSelection,
toggleSidebarMultiSelect: s.toggleSidebarMultiSelect,
hideMultipleSessions: s.hideMultipleSessions,
@@ -1104,7 +1102,6 @@ export const DateGroupedSessions = memo((): React.JSX.Element => {
isHidden={item.isHidden}
multiSelectActive={sidebarMultiSelectActive}
isSelected={selectedSet.has(item.session.id)}
- onToggleSelect={() => toggleSidebarSessionSelection(item.session.id)}
/>
)}
diff --git a/src/renderer/components/sidebar/SessionItem.tsx b/src/renderer/components/sidebar/SessionItem.tsx
index 10477dc9..dbf534c4 100644
--- a/src/renderer/components/sidebar/SessionItem.tsx
+++ b/src/renderer/components/sidebar/SessionItem.tsx
@@ -30,7 +30,6 @@ interface SessionItemProps {
isHidden?: boolean;
multiSelectActive?: boolean;
isSelected?: boolean;
- onToggleSelect?: () => void;
}
/**
@@ -164,7 +163,6 @@ export const SessionItem = memo(
isHidden,
multiSelectActive,
isSelected,
- onToggleSelect,
}: Readonly): React.JSX.Element => {
const {
openTab,
@@ -174,6 +172,7 @@ export const SessionItem = memo(
splitPane,
togglePinSession,
toggleHideSession,
+ toggleSidebarSessionSelection,
} = useStore(
useShallow((s) => ({
openTab: s.openTab,
@@ -183,6 +182,7 @@ export const SessionItem = memo(
splitPane: s.splitPane,
togglePinSession: s.togglePinSession,
toggleHideSession: s.toggleHideSession,
+ toggleSidebarSessionSelection: s.toggleSidebarSessionSelection,
}))
);
@@ -192,8 +192,8 @@ export const SessionItem = memo(
if (!activeProjectId) return;
// In multi-select mode, clicks toggle selection
- if (multiSelectActive && onToggleSelect) {
- onToggleSelect();
+ if (multiSelectActive) {
+ toggleSidebarSessionSelection(session.id);
return;
}
@@ -291,7 +291,7 @@ export const SessionItem = memo(
onToggleSelect?.()}
+ onChange={() => toggleSidebarSessionSelection(session.id)}
onClick={(e) => e.stopPropagation()}
className="size-3.5 shrink-0 accent-blue-500"
/>
diff --git a/src/renderer/components/team/TeamDetailView.tsx b/src/renderer/components/team/TeamDetailView.tsx
index 99f44e83..d949b9b2 100644
--- a/src/renderer/components/team/TeamDetailView.tsx
+++ b/src/renderer/components/team/TeamDetailView.tsx
@@ -80,7 +80,7 @@ import { useShallow } from 'zustand/react/shallow';
import { AddMemberDialog } from './dialogs/AddMemberDialog';
import { CreateTaskDialog } from './dialogs/CreateTaskDialog';
import { EditTeamDialog } from './dialogs/EditTeamDialog';
-import { LaunchTeamDialog, type TeamLaunchDialogMode } from './dialogs/LaunchTeamDialog';
+import type { TeamLaunchDialogMode } from './dialogs/LaunchTeamDialog';
import { ReviewDialog } from './dialogs/ReviewDialog';
import { SendMessageDialog } from './dialogs/SendMessageDialog';
import { TaskDetailDialog } from './dialogs/TaskDetailDialog';
@@ -96,6 +96,9 @@ import type { AddMemberEntry } from './dialogs/AddMemberDialog';
import type { TeamMessagesPanelMode } from '@renderer/types/teamMessagesPanelMode';
import type { ComponentProps, CSSProperties } from 'react';
+const LaunchTeamDialog = lazy(() =>
+ import('./dialogs/LaunchTeamDialog').then((m) => ({ default: m.LaunchTeamDialog }))
+);
const ProjectEditorOverlay = lazy(() =>
import('./editor/ProjectEditorOverlay').then((m) => ({ default: m.ProjectEditorOverlay }))
);
@@ -2176,18 +2179,20 @@ export const TeamDetailView = memo(
-
+
+
+
>
);
}
@@ -2976,19 +2981,21 @@ export const TeamDetailView = memo(
-
+
+
+
+ import('./dialogs/CreateTeamDialog').then((m) => ({ default: m.CreateTeamDialog }))
+);
+const LaunchTeamDialog = lazy(() =>
+ import('./dialogs/LaunchTeamDialog').then((m) => ({ default: m.LaunchTeamDialog }))
+);
+
import type { TeamListFilterState } from './TeamListFilterPopover';
import type { TeamStatus } from '@renderer/utils/teamListStatus';
import type {
@@ -732,35 +737,39 @@ export const TeamListView = memo((): React.JSX.Element => {
}
const createDialogElement = (
- t.teamName)}
- provisioningTeamNames={provisioningTeamNames}
- activeTeams={activeTeams}
- initialData={copyData ?? undefined}
- defaultProjectPath={currentProjectPath}
- onClose={handleCreateDialogClose}
- onCreate={handleCreateSubmit}
- onOpenTeam={openTeamTab}
- />
+
+ t.teamName)}
+ provisioningTeamNames={provisioningTeamNames}
+ activeTeams={activeTeams}
+ initialData={copyData ?? undefined}
+ defaultProjectPath={currentProjectPath}
+ onClose={handleCreateDialogClose}
+ onCreate={handleCreateSubmit}
+ onOpenTeam={openTeamTab}
+ />
+
);
const launchDialogElement = (
- setLaunchDialogOpen(false)}
- onLaunch={handleLaunchSubmit}
- />
+
+ setLaunchDialogOpen(false)}
+ onLaunch={handleLaunchSubmit}
+ />
+
);
const renderHeader = (): React.JSX.Element => (
diff --git a/src/renderer/components/team/schedule/ScheduleSection.tsx b/src/renderer/components/team/schedule/ScheduleSection.tsx
index b8f44bd4..9de22a43 100644
--- a/src/renderer/components/team/schedule/ScheduleSection.tsx
+++ b/src/renderer/components/team/schedule/ScheduleSection.tsx
@@ -1,4 +1,4 @@
-import React, { useCallback, useEffect, useState } from 'react';
+import React, { lazy, Suspense, useCallback, useEffect, useState } from 'react';
import { Button } from '@renderer/components/ui/button';
import { Popover, PopoverContent, PopoverTrigger } from '@renderer/components/ui/popover';
@@ -18,9 +18,11 @@ import {
} from 'lucide-react';
import { useShallow } from 'zustand/react/shallow';
-import { LaunchTeamDialog } from '../dialogs/LaunchTeamDialog';
-
import { ScheduleEmptyState } from './ScheduleEmptyState';
+
+const LaunchTeamDialog = lazy(() =>
+ import('../dialogs/LaunchTeamDialog').then((m) => ({ default: m.LaunchTeamDialog }))
+);
import { ScheduleRunLogDialog } from './ScheduleRunLogDialog';
import { ScheduleRunRow } from './ScheduleRunRow';
import { ScheduleStatusBadge } from './ScheduleStatusBadge';
@@ -305,13 +307,15 @@ export const ScheduleSection = ({ teamName }: ScheduleSectionProps): React.JSX.E
)}
{/* Create/Edit Dialog */}
-
+
+
+
);
};