import React, { useState, useEffect } from 'react'; import { FolderPlus, FilePenLine, Trash2, X, AlertTriangle } from 'lucide-react'; // --- Create Folder Modal --- interface CreateFolderModalProps { isOpen: boolean; onClose: () => void; onConfirm: (name: string) => void; } export const CreateFolderModal: React.FC = ({ isOpen, onClose, onConfirm }) => { const [folderName, setFolderName] = useState('새 폴더'); useEffect(() => { if (isOpen) { setFolderName('새 폴더'); // Auto focus hack setTimeout(() => document.getElementById('new-folder-input')?.focus(), 50); } }, [isOpen]); if (!isOpen) return null; return (

디렉토리 생성

setFolderName(e.target.value)} onKeyDown={(e) => e.key === 'Enter' && onConfirm(folderName)} className="w-full bg-white border border-slate-300 rounded px-3 py-2 text-sm text-slate-800 focus:border-blue-500 focus:outline-none" />
); }; // --- Rename Modal --- interface RenameModalProps { isOpen: boolean; currentName: string; onClose: () => void; onConfirm: (newName: string) => void; } export const RenameModal: React.FC = ({ isOpen, currentName, onClose, onConfirm }) => { const [newName, setNewName] = useState(''); useEffect(() => { if (isOpen) { setNewName(currentName); setTimeout(() => document.getElementById('rename-input')?.focus(), 50); } }, [isOpen, currentName]); if (!isOpen) return null; return (

이름 변경/이동

{currentName}
setNewName(e.target.value)} onKeyDown={(e) => e.key === 'Enter' && onConfirm(newName)} className="w-full bg-white border border-slate-300 rounded px-3 py-2 text-sm text-slate-800 focus:border-blue-500 focus:outline-none" />
); }; // --- Delete Modal --- interface DeleteModalProps { isOpen: boolean; fileCount: number; fileNames: string[]; onClose: () => void; onConfirm: () => void; } export const DeleteModal: React.FC = ({ isOpen, fileCount, fileNames, onClose, onConfirm }) => { if (!isOpen) return null; return (

파일 삭제

정말로 다음 {fileCount}개 항목을 삭제하시겠습니까?

    {fileNames.map((name, i) => (
  • {name}
  • ))}

이 작업은 되돌릴 수 없습니다.

); };