import * as React from 'react'; import { GreenPage } from '../types'; import { Icon } from './ui/Icon'; import { useTranslation } from '../hooks/useI18n'; interface PageManagementModalProps { pages: GreenPage[]; activePageId: string; onSelectPage: (id: string) => void; onCreatePage: (name: string) => void; onUpdatePage: (id: string, newName: string) => void; onClose: () => void; } const PageManagementModal: React.FC = ({ pages, activePageId, onSelectPage, onCreatePage, onUpdatePage, onClose }) => { const { t } = useTranslation(); const [isCreating, setIsCreating] = React.useState(false); const [newPageName, setNewPageName] = React.useState(''); const [editingPageId, setEditingPageId] = React.useState(null); const [editingPageName, setEditingPageName] = React.useState(''); const handleCreate = () => { if (newPageName.trim()) { onCreatePage(newPageName.trim()); setNewPageName(''); setIsCreating(false); } }; const handleEdit = (page: GreenPage) => { setEditingPageId(page.id); setEditingPageName(page.name); }; const handleCancelEdit = () => { setEditingPageId(null); setEditingPageName(''); }; const handleSaveEdit = () => { if (editingPageId && editingPageName.trim()) { onUpdatePage(editingPageId, editingPageName.trim()); handleCancelEdit(); } }; return (
e.stopPropagation()}>

{t('modal.pages.title')}

{pages.map(page => { if (editingPageId === page.id) { return (
setEditingPageName(e.target.value)} onKeyPress={e => e.key === 'Enter' && handleSaveEdit()} className="w-full bg-white dark:bg-gray-800 p-2 rounded-md border border-gray-300 dark:border-gray-600 text-gray-900 dark:text-white" />
); } return (
{page.id === activePageId && (
)}
) })} {!isCreating ? ( ) : (
setNewPageName(e.target.value)} onKeyPress={e => e.key === 'Enter' && handleCreate()} placeholder={`${t('name')}...`} className="w-full bg-white dark:bg-gray-800 p-3 rounded-md border border-gray-300 dark:border-gray-600 text-gray-900 dark:text-white" />
)}
); }; export default PageManagementModal;