fix: Editing title in sidebar allows removal of title (#2364)

This commit is contained in:
Saumya Pandey
2021-07-26 00:17:39 +05:30
committed by GitHub
parent f61f9703f3
commit c9bd3bbf45

View File

@ -14,6 +14,7 @@ function EditableTitle({ title, onSubmit, canUpdate }: Props) {
const [originalValue, setOriginalValue] = React.useState(title); const [originalValue, setOriginalValue] = React.useState(title);
const [value, setValue] = React.useState(title); const [value, setValue] = React.useState(title);
const { showToast } = useToasts(); const { showToast } = useToasts();
React.useEffect(() => { React.useEffect(() => {
setValue(title); setValue(title);
}, [title]); }, [title]);
@ -38,17 +39,22 @@ function EditableTitle({ title, onSubmit, canUpdate }: Props) {
[originalValue] [originalValue]
); );
const handleSave = React.useCallback(async () => { const handleSave = React.useCallback(
async (ev) => {
ev.preventDefault();
setIsEditing(false); setIsEditing(false);
if (value === originalValue) { const trimmedValue = value.trim();
if (trimmedValue === originalValue || trimmedValue.length === 0) {
setValue(originalValue);
return; return;
} }
if (document) { if (document) {
try { try {
await onSubmit(value); await onSubmit(trimmedValue);
setOriginalValue(value); setOriginalValue(trimmedValue);
} catch (error) { } catch (error) {
setValue(originalValue); setValue(originalValue);
showToast(error.message, { showToast(error.message, {
@ -57,7 +63,9 @@ function EditableTitle({ title, onSubmit, canUpdate }: Props) {
throw error; throw error;
} }
} }
}, [originalValue, showToast, value, onSubmit]); },
[originalValue, showToast, value, onSubmit]
);
return ( return (
<> <>