diff --git a/frontend/src/components/scripts/ScriptGeneratorPanel.tsx b/frontend/src/components/scripts/ScriptGeneratorPanel.tsx deleted file mode 100644 index fd60b882..00000000 --- a/frontend/src/components/scripts/ScriptGeneratorPanel.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import { Terminal, Download, Loader2, AlertTriangle } from 'lucide-react' -import { useScriptGeneratorStore } from '@/store/scriptGeneratorStore' -import { usePermissions } from '@/hooks/usePermissions' -import { ScriptParameterForm } from './ScriptParameterForm' -import { ScriptPreview } from './ScriptPreview' - -export function ScriptGeneratorPanel() { - const selectedTemplate = useScriptGeneratorStore(s => s.selectedTemplate) - const isLoadingDetail = useScriptGeneratorStore(s => s.isLoadingDetail) - const generatedScript = useScriptGeneratorStore(s => s.generatedScript) - const generationWarnings = useScriptGeneratorStore(s => s.generationWarnings) - const isGenerating = useScriptGeneratorStore(s => s.isGenerating) - const generateError = useScriptGeneratorStore(s => s.generateError) - const generate = useScriptGeneratorStore(s => s.generate) - - const { isEngineer } = usePermissions() - const canGenerate = isEngineer - - // No template selected - if (!selectedTemplate && !isLoadingDetail) { - return ( -
- -

Select a template to get started

-
- ) - } - - // Loading template detail - if (isLoadingDetail) { - return ( -
- -
- ) - } - - if (!selectedTemplate) return null - - const handleDownload = () => { - if (!generatedScript) return - const blob = new Blob([generatedScript], { type: 'text/plain' }) - const url = URL.createObjectURL(blob) - const a = document.createElement('a') - a.href = url - a.download = `${selectedTemplate.slug}.ps1` - document.body.appendChild(a) - a.click() - document.body.removeChild(a) - URL.revokeObjectURL(url) - } - - return ( -
- {/* Header */} -
-

{selectedTemplate.name}

- {selectedTemplate.description && ( -

{selectedTemplate.description}

- )} -
- - {/* Parameter form */} - - - {/* Warnings */} - {generationWarnings.length > 0 && ( -
-
- - Warnings -
- {generationWarnings.map((w, i) => ( -

{w}

- ))} -
- )} - - {/* Preview */} - - - {/* Action bar */} -
- - - - - - - -
- - {/* Generate error */} - {generateError && ( -

{generateError}

- )} -
- ) -}