2025-03-12 13:43:11 -04:00
|
|
|
import React from 'react';
|
|
|
|
|
import { TextField, Typography, IconButton, Box } from '@mui/material';
|
|
|
|
|
import DeleteIcon from '@mui/icons-material/Delete'; // Import delete icon
|
2024-03-29 20:08:34 -04:00
|
|
|
|
|
|
|
|
interface EditorProps {
|
2024-09-17 18:56:13 -04:00
|
|
|
label: string;
|
2025-03-12 13:43:11 -04:00
|
|
|
values: string[];
|
|
|
|
|
onValuesChange: (values: string[]) => void;
|
2024-03-29 20:08:34 -04:00
|
|
|
}
|
|
|
|
|
|
2025-03-12 13:43:11 -04:00
|
|
|
const Editor: React.FC<EditorProps> = ({ label, values, onValuesChange }) => {
|
|
|
|
|
const handleChange = (index: number) => (event: React.ChangeEvent<HTMLInputElement>) => {
|
|
|
|
|
const newValues = [...values];
|
|
|
|
|
newValues[index] = event.target.value;
|
|
|
|
|
onValuesChange(newValues);
|
|
|
|
|
};
|
2024-03-29 20:08:34 -04:00
|
|
|
|
2025-03-12 13:43:11 -04:00
|
|
|
const handleDeleteQuestion = (index: number) => () => {
|
|
|
|
|
const newValues = values.filter((_, i) => i !== index); // Remove the question at the specified index
|
|
|
|
|
onValuesChange(newValues);
|
|
|
|
|
};
|
2024-03-29 20:08:34 -04:00
|
|
|
|
|
|
|
|
return (
|
2025-03-12 13:43:11 -04:00
|
|
|
<div>
|
|
|
|
|
{/* Label with increased margin */}
|
|
|
|
|
<Typography variant="h6" fontWeight="bold" style={{ marginBottom: '24px' }}>
|
|
|
|
|
{label}
|
|
|
|
|
</Typography>
|
|
|
|
|
|
|
|
|
|
{/* Map through each question */}
|
|
|
|
|
{values.map((value, index) => (
|
|
|
|
|
<Box key={index} style={{ marginBottom: '24px' }}>
|
|
|
|
|
{/* Bold "Question #" title */}
|
|
|
|
|
<Box display="flex" alignItems="center" justifyContent="space-between">
|
|
|
|
|
<Typography variant="subtitle1" fontWeight="bold" style={{ marginBottom: '8px' }}>
|
|
|
|
|
Question {index + 1}
|
|
|
|
|
</Typography>
|
|
|
|
|
|
|
|
|
|
{/* Delete button */}
|
|
|
|
|
<IconButton
|
|
|
|
|
onClick={handleDeleteQuestion(index)}
|
|
|
|
|
aria-label="delete"
|
|
|
|
|
sx={{ color: 'light-gray',
|
|
|
|
|
'&:hover': {
|
|
|
|
|
color: 'red'
|
|
|
|
|
},
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<DeleteIcon />
|
|
|
|
|
</IconButton>
|
|
|
|
|
</Box>
|
|
|
|
|
{/* TextField for the question */}
|
|
|
|
|
<TextField
|
|
|
|
|
value={value}
|
|
|
|
|
onChange={handleChange(index)}
|
|
|
|
|
fullWidth
|
|
|
|
|
multiline
|
|
|
|
|
minRows={4}
|
|
|
|
|
maxRows={Infinity}
|
|
|
|
|
variant="outlined"
|
|
|
|
|
style={{ overflow: 'auto'}}
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</Box>
|
|
|
|
|
))}
|
|
|
|
|
</div>
|
2024-03-29 20:08:34 -04:00
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
2025-03-12 13:43:11 -04:00
|
|
|
export default Editor;
|