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,26 +39,33 @@ function EditableTitle({ title, onSubmit, canUpdate }: Props) {
[originalValue] [originalValue]
); );
const handleSave = React.useCallback(async () => { const handleSave = React.useCallback(
setIsEditing(false); async (ev) => {
ev.preventDefault();
if (value === originalValue) { setIsEditing(false);
return;
}
if (document) { const trimmedValue = value.trim();
try { if (trimmedValue === originalValue || trimmedValue.length === 0) {
await onSubmit(value);
setOriginalValue(value);
} catch (error) {
setValue(originalValue); setValue(originalValue);
showToast(error.message, { return;
type: "error",
});
throw error;
} }
}
}, [originalValue, showToast, value, onSubmit]); if (document) {
try {
await onSubmit(trimmedValue);
setOriginalValue(trimmedValue);
} catch (error) {
setValue(originalValue);
showToast(error.message, {
type: "error",
});
throw error;
}
}
},
[originalValue, showToast, value, onSubmit]
);
return ( return (
<> <>