import { Modal, TextInput, Group, Button, Stack } from '@mantine/core'; import { useState, useEffect } from 'react'; interface CreateConfigModalProps { opened: boolean; onClose: () => void; onCreateConfig: (configName: string) => Promise; existingConfigNames: string[]; } export const CreateConfigModal = ({ opened, onClose, onCreateConfig, existingConfigNames, }: CreateConfigModalProps) => { const [newConfigName, setNewConfigName] = useState(''); const trimmedConfigName = newConfigName.trim(); const configNameExists = trimmedConfigName && existingConfigNames.includes(trimmedConfigName.toLowerCase()); const handleClose = () => { setNewConfigName(''); onClose(); }; const handleSubmit = async () => { const configName = trimmedConfigName; setNewConfigName(''); await onCreateConfig(configName); onClose(); }; useEffect(() => { if (opened) { setNewConfigName(''); } }, [opened]); return ( setNewConfigName(event.currentTarget.value)} data-autofocus error={ configNameExists ? 'A configuration with this name already exists' : undefined } /> ); };