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 (
{!showTerminal ? ( <>
{!isEditingDomain ? (
{details.domain}
) : (
setNewDomain(e.target.value.toLowerCase())} className="flex-1 bg-black border border-gray-700 rounded px-3 py-1.5 text-white font-mono text-sm focus:border-cyan-500 outline-none" disabled={isUpdating} />
)} {!isInternal && (

Domaine externe détecté.

)}
{/* ENCART DES IDENTIFIANTS */}
Accès Explorateur
User: root
Pass: NexusGise2026!
Accès Console / SSH
User: root
Pass: Défini à l'installation
{/* BOUTONS D'ACTIONS */}
) : (
TERMINAL ({details.domain})