import { useState } from 'react'; import { Folder, ExternalLink, Play, Maximize2, Lock, Copy, Check } from 'lucide-react'; export default function VpsManager({ details, orderId, onRefresh, onAlert }) { const [showTerminal, setShowTerminal] = useState(false); const [isEditingDomain, setIsEditingDomain] = useState(false); const [newDomain, setNewDomain] = useState(details.domain); const [isUpdating, setIsUpdating] = useState(false); const [sslStatus, setSslStatus] = useState(null); const [copiedField, setCopiedField] = useState(null); const isInternal = details.domain && details.domain.endsWith('.gise.be'); const fileManagerUrl = isInternal ? `https://file-${details.domain}` : `http://${details.domain}:8080`; const terminalUrl = isInternal ? `https://terminal-${details.domain}` : `http://${details.domain}:8081`; const handleCopy = (text, field) => { navigator.clipboard.writeText(text); setCopiedField(field); setTimeout(() => setCopiedField(null), 2000); }; const handleUpdateDomain = async () => { if (!newDomain || newDomain === details.domain) return; setIsUpdating(true); try { const response = await fetch('https://web.gise.be/custom_api/update_service_domain.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ order_id: orderId, new_domain: newDomain }) }); const data = await response.json(); if (data.status === 'success') { setIsEditingDomain(false); if (onRefresh) onRefresh(); onAlert("Succès", "Domaine VPS mis à jour !", "success"); } else onAlert("Erreur", data.error, "error"); } catch (err) { onAlert("Erreur", "Erreur de connexion avec l'API.", "error"); } finally { setIsUpdating(false); } }; const handleGenerateSSL = async () => { setSslStatus('loading'); try { const response = await fetch('https://web.gise.be/custom_api/generate_custom_ssl.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ domain: details.domain }) }); const data = await response.json(); if (data.status === 'success') { setSslStatus('success'); onAlert("SSL Activé", "Certificat SSL généré !", "success"); } else { setSslStatus('error'); onAlert("Erreur DNS", "Vérifiez votre pointage.", "error"); } } catch (e) { setSslStatus('error'); } }; return (
Domaine externe détecté.