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 [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 (
|
||||||
<>
|
<>
|
||||||
|
Reference in New Issue
Block a user