diff --git a/packages/frontend/component/src/components/rename-modal/index.tsx b/packages/frontend/component/src/components/rename-modal/index.tsx index 6ebbf44414..80cbc74d7f 100644 --- a/packages/frontend/component/src/components/rename-modal/index.tsx +++ b/packages/frontend/component/src/components/rename-modal/index.tsx @@ -1,4 +1,5 @@ -import { useCallback, useState } from 'react'; +import type { KeyboardEvent } from 'react'; +import { useCallback, useEffect, useState } from 'react'; import Input from '../../ui/input'; import { Menu } from '../../ui/menu'; @@ -15,10 +16,24 @@ export const RenameModal = ({ currentName: string; }) => { const [value, setValue] = useState(currentName); + const handleRename = useCallback(() => { onRename(value); onOpenChange(false); }, [onOpenChange, onRename, value]); + + const onKeyDown = useCallback( + (e: KeyboardEvent) => { + if (e.key !== 'Escape') return; + if (currentName !== value) setValue(currentName); + onOpenChange(false); + }, + [currentName, value, onOpenChange] + ); + + // Synchronize when the title is changed in the page header or title. + useEffect(() => setValue(currentName), [currentName]); + return ( diff --git a/packages/frontend/core/src/components/pure/workspace-slider-bar/components/operation-item.tsx b/packages/frontend/core/src/components/pure/workspace-slider-bar/components/operation-item.tsx index 5ad1710420..33dee8c86d 100644 --- a/packages/frontend/core/src/components/pure/workspace-slider-bar/components/operation-item.tsx +++ b/packages/frontend/core/src/components/pure/workspace-slider-bar/components/operation-item.tsx @@ -118,7 +118,7 @@ export const OperationItems = ({ : []), { - element: , + element: , }, { icon: (