'use client'; import React, { useEffect } from 'react'; import { AnimatePresence, motion } from 'framer-motion'; import { X } from 'lucide-react'; import InfonetShell from './InfonetShell'; interface InfonetTerminalProps { isOpen: boolean; onClose: () => void; onOpenLiveGate?: (gate: string) => void; onOpenDeadDrop?: (peerId: string, options?: { showSas?: boolean }) => void; } export default function InfonetTerminal({ isOpen, onClose, onOpenLiveGate, onOpenDeadDrop, }: InfonetTerminalProps) { /* Close on Escape */ useEffect(() => { if (!isOpen) return; const handler = (e: KeyboardEvent) => { if (e.key === 'Escape') onClose(); }; window.addEventListener('keydown', handler); return () => window.removeEventListener('keydown', handler); }, [isOpen, onClose]); return ( {isOpen && ( {/* Window container */} {/* Title bar */}
Infonet Sovereign Shell v0.1.1
{/* Shell content — fills remaining space, scrolls internally */}
)} ); }