How to test if the content of draftjs editor is empty?
The only idea that I have now is an object comparison against the object returned from this function : EditorState.createEmpty().getCurrentContent()
How to test if the content of draftjs editor is empty?
The only idea that I have now is an object comparison against the object returned from this function : EditorState.createEmpty().getCurrentContent()
Just use the hasText function on ContentState
:
editorState.getCurrentContent().hasText()
draftjs
and there doesn't seem to be a straight-forward way to check if editor state is empty. I think they left this as an implementation detail because it is not clearly understood what the meaning of empty
is, maybe because even if the editor state is empty
, it contains other info like cursor position, placeholder etc which may not be the exact kind of content we would like to check for. I could be wrong, let me know if this helps. –
Trossachs contentState.hasText() && contentState.getPlainText().length > 0
export const isEmptyDraftJs = (rawState) => {
if (!rawState || _.isEmpty(rawState)) { // filter undefined and {}
return true;
}
const contentState = convertFromRaw(rawState);
return !(contentState.hasText() && (contentState.getPlainText() !== ''));
};
I am not sure it is perfect but I use above code.
When you add just image, there is an space character so getPlainText()
can filter only image draftJS.
const text=editorState.getCurrentState().getPlainText()
return text===''
// All just you need is:
const contentState = editorState.getCurrentContent();
const rawContentState = convertToRaw(contentState);
const text = rawContentState.blocks[0].text.trim();
//See the full code below:
const [editorState, setEditorState] = useState(EditorState.createEmpty());
const [errorMessage, setErrorMessage] = useState('');
const handleSubmit = () => {
const contentState = editorState.getCurrentContent();
const rawContentState = convertToRaw(contentState);
const text = rawContentState.blocks[0].text.trim();
if (text === '') {
setErrorMessage('Please enter some content before submitting.');
} else {
// Proceed with submission logic
setErrorMessage('');
// Your submission logic goes here
}
};
© 2022 - 2024 — McMap. All rights reserved.