import React, { useEffect, useState } from 'react'; import { SalesAsset, AssetType } from '../types'; import { X, Copy, Check, MessageSquare, Play, Maximize2 } from 'lucide-react'; interface AssetDetailModalProps { asset: SalesAsset | null; onClose: () => void; } const AssetDetailModal: React.FC = ({ asset, onClose }) => { const [copied, setCopied] = useState(false); useEffect(() => { const handleEsc = (e: KeyboardEvent) => { if (e.key === 'Escape') onClose(); }; window.addEventListener('keydown', handleEsc); return () => window.removeEventListener('keydown', handleEsc); }, [onClose]); if (!asset) return null; const handleCopyScript = () => { if (asset.script) { navigator.clipboard.writeText(asset.script); setCopied(true); setTimeout(() => setCopied(false), 2000); } }; return (
{/* Header (Absolute for Video/Image types to float over, Relative for others) */}
{/* Media Section */}
{asset.type === AssetType.VIDEO && ( )} {asset.type === AssetType.IMAGE && ( {asset.title} )} {asset.type === AssetType.STAT && (
{asset.statValue}
{asset.statLabel}
)} {asset.type === AssetType.TEXT && (

{asset.title}

{asset.tags.map(tag => ( {tag} ))}
)}
{/* Content Section */}
{/* Left: Info */}

{asset.title} {asset.type !== AssetType.TEXT && (
{asset.tags.map(tag => ( {tag} ))}
)}

{asset.content || asset.description}

{/* Additional Metadata if needed */}
Asset Type {asset.type}
Last Updated 2024.05.20
{/* Right: Sales Script (The "Key" feature) */}

Sales Pitch Script

{asset.script ? asset.script : "No specific script available for this asset. Use the description as a guide."}

Tip: 고객의 눈을 맞추고 천천히 강조하며 읽으세요.

{/* Footer Actions */}
); }; export default AssetDetailModal;