Spaces:
Running
Running
File size: 1,381 Bytes
304e233 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import React from 'react';
interface VNCStreamProps {
vncUrl: string;
}
export const VNCStream: React.FC<VNCStreamProps> = ({ vncUrl }) => {
return (
<div style={{ flex: 1, minHeight: 0, display: 'flex', flexDirection: 'column', backgroundColor: 'white', borderRadius: '10px', boxShadow: '0 2px 8px rgba(0, 0, 0, 0.08)', border: '1px solid #e5e7eb', overflow: 'hidden', padding: '20px' }}>
<h3 className="text-lg font-semibold text-gray-800 mb-4">VNC Stream</h3>
<div style={{ flex: 1, minHeight: 0, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
{vncUrl ? (
<iframe
src={vncUrl}
style={{ width: '100%', height: '100%', border: 'none' }}
title="VNC Stream"
/>
) : (
<div className="text-gray-400 text-center p-8">
<svg className="w-16 h-16 mx-auto mb-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
</svg>
<p className="font-medium">No VNC stream available</p>
<p className="text-sm mt-1 text-gray-500">Stream will appear when agent starts</p>
</div>
)}
</div>
</div>
);
};
|