import React, {useState, useEffect} from 'react'; import PropTypes from 'prop-types'; import Modal from '@ui/Modal'; const AddFormatTestModal = ({ isOpen, onClose, onAdd, tests, editTest = null }) => { const [input, setInput] = useState(''); const [expected, setExpected] = useState(true); // Reset form when opening modal, handling both new and edit cases useEffect(() => { if (isOpen) { if (editTest) { setInput(editTest.input); setExpected(editTest.expected); } else { setInput(''); setExpected(true); } } }, [isOpen, editTest]); const handleSubmit = () => { const getNextTestId = testArray => { if (!testArray || testArray.length === 0) return 1; return Math.max(...testArray.map(test => test.id)) + 1; }; const testData = { id: editTest ? editTest.id : getNextTestId(tests), input, expected, passes: false, lastRun: null, conditionResults: [] // This will be populated when the test is run }; onAdd(testData); handleClose(); }; const handleClose = () => { setInput(''); setExpected(true); onClose(); }; return ( }>
setInput(e.target.value)} className='w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 placeholder-gray-500 dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent' placeholder='Enter release title to test...' autoFocus />
); }; AddFormatTestModal.propTypes = { isOpen: PropTypes.bool.isRequired, onClose: PropTypes.func.isRequired, onAdd: PropTypes.func.isRequired, tests: PropTypes.array.isRequired, editTest: PropTypes.shape({ id: PropTypes.number.isRequired, input: PropTypes.string.isRequired, expected: PropTypes.bool.isRequired }) }; export default AddFormatTestModal;