fix: Editing title in sidebar allows removal of title (#2364)
This commit is contained in:
@ -14,6 +14,7 @@ function EditableTitle({ title, onSubmit, canUpdate }: Props) {
|
||||
const [originalValue, setOriginalValue] = React.useState(title);
|
||||
const [value, setValue] = React.useState(title);
|
||||
const { showToast } = useToasts();
|
||||
|
||||
React.useEffect(() => {
|
||||
setValue(title);
|
||||
}, [title]);
|
||||
@ -38,17 +39,22 @@ function EditableTitle({ title, onSubmit, canUpdate }: Props) {
|
||||
[originalValue]
|
||||
);
|
||||
|
||||
const handleSave = React.useCallback(async () => {
|
||||
const handleSave = React.useCallback(
|
||||
async (ev) => {
|
||||
ev.preventDefault();
|
||||
|
||||
setIsEditing(false);
|
||||
|
||||
if (value === originalValue) {
|
||||
const trimmedValue = value.trim();
|
||||
if (trimmedValue === originalValue || trimmedValue.length === 0) {
|
||||
setValue(originalValue);
|
||||
return;
|
||||
}
|
||||
|
||||
if (document) {
|
||||
try {
|
||||
await onSubmit(value);
|
||||
setOriginalValue(value);
|
||||
await onSubmit(trimmedValue);
|
||||
setOriginalValue(trimmedValue);
|
||||
} catch (error) {
|
||||
setValue(originalValue);
|
||||
showToast(error.message, {
|
||||
@ -57,7 +63,9 @@ function EditableTitle({ title, onSubmit, canUpdate }: Props) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}, [originalValue, showToast, value, onSubmit]);
|
||||
},
|
||||
[originalValue, showToast, value, onSubmit]
|
||||
);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
Reference in New Issue
Block a user