|
|
@@ -1,4 +1,4 @@
|
|
|
-import { ArrowLeft, Save, Play, Plus, LayoutGrid, History, Pin, X, Cog, Loader2, ChevronDown, Pencil } from 'lucide-react'
|
|
|
+import { ArrowLeft, Save, Play, Pause, Plus, LayoutGrid, History, Pin, X, Cog, Loader2, ChevronDown, Pencil } from 'lucide-react'
|
|
|
import { useState, useRef, useEffect, useCallback } from 'react'
|
|
|
import type { ExecutionDetail } from '../../api/workflows'
|
|
|
|
|
|
@@ -18,9 +18,12 @@ interface EditorHeaderProps {
|
|
|
pinnedExecution: ExecutionDetail | null
|
|
|
showExecutionPanel: boolean
|
|
|
hasExecutionData: boolean
|
|
|
+ isActive: boolean
|
|
|
+ isTogglingActive: boolean
|
|
|
triggers: TriggerNode[]
|
|
|
onNavigateBack: () => void
|
|
|
onSave: () => void
|
|
|
+ onToggleActive: () => void
|
|
|
onExecute: () => void
|
|
|
onExecuteTrigger: (triggerNodeId: string) => void
|
|
|
onAddNode: () => void
|
|
|
@@ -42,9 +45,12 @@ export function EditorHeader({
|
|
|
pinnedExecution,
|
|
|
showExecutionPanel,
|
|
|
hasExecutionData,
|
|
|
+ isActive,
|
|
|
+ isTogglingActive,
|
|
|
triggers,
|
|
|
onNavigateBack,
|
|
|
onSave,
|
|
|
+ onToggleActive,
|
|
|
onExecute,
|
|
|
onExecuteTrigger,
|
|
|
onAddNode,
|
|
|
@@ -211,6 +217,27 @@ export function EditorHeader({
|
|
|
<Cog className="w-4 h-4" />
|
|
|
Settings
|
|
|
</button>
|
|
|
+ <button
|
|
|
+ onClick={onToggleActive}
|
|
|
+ disabled={isTogglingActive}
|
|
|
+ title={isActive
|
|
|
+ ? 'Stop running this workflow on its schedule'
|
|
|
+ : 'Run this workflow on its schedule'}
|
|
|
+ className={`flex items-center gap-2 px-3 py-1.5 rounded-lg disabled:opacity-50 ${
|
|
|
+ isActive
|
|
|
+ ? 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400 hover:bg-green-200 dark:hover:bg-green-900/50'
|
|
|
+ : 'bg-gray-100 dark:bg-slate-700 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-slate-600'
|
|
|
+ }`}
|
|
|
+ >
|
|
|
+ {isTogglingActive ? (
|
|
|
+ <Loader2 className="w-4 h-4 animate-spin" />
|
|
|
+ ) : isActive ? (
|
|
|
+ <Pause className="w-4 h-4" />
|
|
|
+ ) : (
|
|
|
+ <Play className="w-4 h-4" />
|
|
|
+ )}
|
|
|
+ {isActive ? 'Deactivate' : 'Activate'}
|
|
|
+ </button>
|
|
|
<button
|
|
|
onClick={onSave}
|
|
|
disabled={!hasChanges || isSaving}
|