diff --git a/src/renderer/components/team/TeamDetailView.tsx b/src/renderer/components/team/TeamDetailView.tsx
index a99dbec4..076e8d9f 100644
--- a/src/renderer/components/team/TeamDetailView.tsx
+++ b/src/renderer/components/team/TeamDetailView.tsx
@@ -3403,30 +3403,32 @@ export const TeamDetailView = memo(function TeamDetailView({
)}
- setRequestChangesTaskId(null)}
- onSubmit={(comment, taskRefs) => {
- if (!requestChangesTaskId) {
- return;
- }
- void (async () => {
- try {
- await updateKanban(teamName, requestChangesTaskId, {
- op: 'request_changes',
- comment,
- taskRefs,
- });
- setRequestChangesTaskId(null);
- } catch {
- // error state is handled in the store and shown in the view
+ {requestChangesTaskId !== null && (
+ setRequestChangesTaskId(null)}
+ onSubmit={(comment, taskRefs) => {
+ if (!requestChangesTaskId) {
+ return;
}
- })();
- }}
- />
+ void (async () => {
+ try {
+ await updateKanban(teamName, requestChangesTaskId, {
+ op: 'request_changes',
+ comment,
+ taskRefs,
+ });
+ setRequestChangesTaskId(null);
+ } catch {
+ // error state is handled in the store and shown in the view
+ }
+ })();
+ }}
+ />
+ )}
)}
- !isLeadMember(m))}
- leadMember={membersWithLiveBranches.find((m) => isLeadMember(m)) ?? null}
- resolvedMemberColorMap={resolvedMemberColorMap}
- isTeamAlive={data.isAlive && !isTeamProvisioning}
- isTeamProvisioning={isTeamProvisioning}
- projectPath={data.config.projectPath}
- onClose={() => setEditDialogOpen(false)}
- onChangeLeadRuntime={handleChangeLeadRuntime}
- onSaved={() => void selectTeam(teamName)}
- />
+ {editDialogOpen && (
+ !isLeadMember(m))}
+ leadMember={membersWithLiveBranches.find((m) => isLeadMember(m)) ?? null}
+ resolvedMemberColorMap={resolvedMemberColorMap}
+ isTeamAlive={data.isAlive && !isTeamProvisioning}
+ isTeamProvisioning={isTeamProvisioning}
+ projectPath={data.config.projectPath}
+ onClose={() => setEditDialogOpen(false)}
+ onChangeLeadRuntime={handleChangeLeadRuntime}
+ onSaved={() => void selectTeam(teamName)}
+ />
+ )}
- m.name)}
- existingMembers={membersWithLiveBranches}
- projectPath={data.config.projectPath}
- adding={addingMemberLoading}
- onClose={() => setAddMemberDialogOpen(false)}
- onAdd={(entries: AddMemberEntry[]) => {
- setAddingMemberLoading(true);
- void (async () => {
- try {
- for (const entry of entries) {
- await addMember(teamName, {
- name: entry.name,
- role: entry.role,
- workflow: entry.workflow,
- isolation: entry.isolation,
- providerId: entry.providerId,
- model: entry.model,
- effort: entry.effort,
- mcpPolicy: entry.mcpPolicy,
- });
+ {addMemberDialogOpen && (
+ m.name)}
+ existingMembers={membersWithLiveBranches}
+ projectPath={data.config.projectPath}
+ adding={addingMemberLoading}
+ onClose={() => setAddMemberDialogOpen(false)}
+ onAdd={(entries: AddMemberEntry[]) => {
+ setAddingMemberLoading(true);
+ void (async () => {
+ try {
+ for (const entry of entries) {
+ await addMember(teamName, {
+ name: entry.name,
+ role: entry.role,
+ workflow: entry.workflow,
+ isolation: entry.isolation,
+ providerId: entry.providerId,
+ model: entry.model,
+ effort: entry.effort,
+ mcpPolicy: entry.mcpPolicy,
+ });
+ }
+ setAddMemberDialogOpen(false);
+ } catch {
+ // error shown via store
+ } finally {
+ setAddingMemberLoading(false);
}
- setAddMemberDialogOpen(false);
- } catch {
- // error shown via store
- } finally {
- setAddingMemberLoading(false);
- }
- })();
- }}
- />
+ })();
+ }}
+ />
+ )}
-
+ {removeMemberConfirm !== null && (
+
+ )}
-
+ {deleteConfirmOpen && (
+
+ )}
{launchDialogOpen && (
- setTrashOpen(false)}
- onRestore={(taskId) => {
- void (async () => {
- try {
- await restoreTask(teamName, taskId);
- } catch {
- // error via store
- }
- })();
- }}
- />
+ {trashOpen && (
+ setTrashOpen(false)}
+ onRestore={(taskId) => {
+ void (async () => {
+ try {
+ await restoreTask(teamName, taskId);
+ } catch {
+ // error via store
+ }
+ })();
+ }}
+ />
+ )}
{reviewDialogState.open && (