mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-14 02:42:04 +08:00
feat: Implement phases 6 to 9 of the review cycle fix process, including discovery, batching, parallel planning, execution, and completion
- Added Phase 6: Fix Discovery & Batching with intelligent grouping and batching of findings. - Added Phase 7: Fix Parallel Planning to launch planning agents for concurrent analysis and aggregation of partial plans. - Added Phase 8: Fix Execution for stage-based execution of fixes with conservative test verification. - Added Phase 9: Fix Completion to aggregate results, generate summary reports, and handle session completion. - Introduced new frontend components: ResizeHandle for draggable resizing of sidebar panels and useResizablePanel hook for managing panel sizes with localStorage persistence. - Added PowerShell script for checking TypeScript errors in source code, excluding test files.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
// ========================================
|
||||
// Interaction Mode Toggle Component
|
||||
// ========================================
|
||||
// Pan/Selection mode toggle for the orchestrator canvas
|
||||
|
||||
import { useIntl } from 'react-intl';
|
||||
import { Hand, MousePointerClick } from 'lucide-react';
|
||||
import { cn } from '@/lib/utils';
|
||||
import { useFlowStore } from '@/stores';
|
||||
|
||||
interface InteractionModeToggleProps {
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
export function InteractionModeToggle({ disabled = false }: InteractionModeToggleProps) {
|
||||
const { formatMessage } = useIntl();
|
||||
const interactionMode = useFlowStore((state) => state.interactionMode);
|
||||
const toggleInteractionMode = useFlowStore((state) => state.toggleInteractionMode);
|
||||
|
||||
return (
|
||||
<div className={cn(
|
||||
'flex items-center gap-1 bg-card/90 backdrop-blur-sm border border-border rounded-lg p-1 shadow-sm',
|
||||
disabled && 'opacity-50 pointer-events-none'
|
||||
)}>
|
||||
<button
|
||||
onClick={() => { if (interactionMode !== 'pan') toggleInteractionMode(); }}
|
||||
className={cn(
|
||||
'flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium transition-colors',
|
||||
interactionMode === 'pan'
|
||||
? 'bg-primary text-primary-foreground'
|
||||
: 'text-muted-foreground hover:text-foreground hover:bg-muted'
|
||||
)}
|
||||
title={formatMessage({ id: 'orchestrator.canvas.panMode', defaultMessage: 'Pan mode (drag to move canvas)' })}
|
||||
>
|
||||
<Hand className="w-3.5 h-3.5" />
|
||||
</button>
|
||||
<button
|
||||
onClick={() => { if (interactionMode !== 'selection') toggleInteractionMode(); }}
|
||||
className={cn(
|
||||
'flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium transition-colors',
|
||||
interactionMode === 'selection'
|
||||
? 'bg-primary text-primary-foreground'
|
||||
: 'text-muted-foreground hover:text-foreground hover:bg-muted'
|
||||
)}
|
||||
title={formatMessage({ id: 'orchestrator.canvas.selectionMode', defaultMessage: 'Selection mode (drag to select nodes)' })}
|
||||
>
|
||||
<MousePointerClick className="w-3.5 h-3.5" />
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user