EvalueTonSavoir/client/src/components/Editor/Editor.tsx

38 lines
1,009 B
TypeScript
Raw Normal View History

2024-03-29 20:08:34 -04:00
// Editor.tsx
import React, { useState, useRef } from 'react';
import './editor.css';
import { TextareaAutosize } from '@mui/material';
2024-03-29 20:08:34 -04:00
interface EditorProps {
label: string;
2024-03-29 20:08:34 -04:00
initialValue: string;
onEditorChange: (value: string) => void;
}
const Editor: React.FC<EditorProps> = ({ initialValue, onEditorChange, label }) => {
2024-03-29 20:08:34 -04:00
const [value, setValue] = useState(initialValue);
const editorRef = useRef<HTMLTextAreaElement | null>(null);
function handleEditorChange(event: React.ChangeEvent<HTMLTextAreaElement>) {
const text = event.target.value;
setValue(text);
onEditorChange(text || '');
}
return (
<label>
<h4>{label}</h4>
<TextareaAutosize
id="editor-textarea"
2024-03-29 20:08:34 -04:00
ref={editorRef}
onChange={handleEditorChange}
value={value}
className="editor"
minRows={5}
/>
</label>
2024-03-29 20:08:34 -04:00
);
};
export default Editor;