import React, { useState } from 'react'; import { Modal, TextInput, Button, Group, Box } from '@mantine/core'; import { useModalContext } from '../../../contexts/ModalContext'; interface CreateFileModalProps { onCreateFile: (fileName: string) => Promise; } const CreateFileModal: React.FC = ({ onCreateFile }) => { const [fileName, setFileName] = useState(''); const { newFileModalVisible, setNewFileModalVisible } = useModalContext(); const handleSubmit = async (): Promise => { if (fileName) { await onCreateFile(fileName.trim()); setFileName(''); setNewFileModalVisible(false); } }; const handleKeyDown = (event: React.KeyboardEvent): void => { if (event.key === 'Enter' && !event.shiftKey) { event.preventDefault(); void handleSubmit(); } }; return ( setNewFileModalVisible(false)} title="Create New File" centered size="sm" > setFileName(event.currentTarget.value)} onKeyDown={handleKeyDown} mb="md" w="100%" /> ); }; export default CreateFileModal;