diff --git a/libs/remix-ui/workspace/src/lib/components/file-label.tsx b/libs/remix-ui/workspace/src/lib/components/file-label.tsx index 04f98b8fb8..e06dbe32fa 100644 --- a/libs/remix-ui/workspace/src/lib/components/file-label.tsx +++ b/libs/remix-ui/workspace/src/lib/components/file-label.tsx @@ -1,5 +1,5 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars -import React, { useEffect, useRef } from 'react' +import React, { useEffect, useRef, useState } from 'react' import { FileType } from '../types' export interface FileLabelProps { @@ -17,6 +17,7 @@ export const FileLabel = (props: FileLabelProps) => { const { file, focusEdit, editModeOff } = props const isEditable = focusEdit.element === file.path const labelRef = useRef(null) + const [defaultValue, setDefaultValue] = useState(null) useEffect(() => { if (isEditable) { @@ -26,16 +27,22 @@ export const FileLabel = (props: FileLabelProps) => { } }, [isEditable]) + useEffect(() => { + setDefaultValue(labelRef.current.innerText) + }, [labelRef.current]) + const handleEditInput = (event: React.KeyboardEvent) => { if (event.which === 13) { event.preventDefault() editModeOff(labelRef.current.innerText) + labelRef.current.innerText = defaultValue } } const handleEditBlur = (event: React.SyntheticEvent) => { event.stopPropagation() editModeOff(labelRef.current.innerText) + labelRef.current.innerText = defaultValue } return ( diff --git a/libs/remix-ui/workspace/src/lib/utils/index.ts b/libs/remix-ui/workspace/src/lib/utils/index.ts index a39a4be7b4..0dd70b14bc 100644 --- a/libs/remix-ui/workspace/src/lib/utils/index.ts +++ b/libs/remix-ui/workspace/src/lib/utils/index.ts @@ -1,3 +1,5 @@ +import { MenuItems } from '../types' + export const contextMenuActions: MenuItems = [{ id: 'newFile', name: 'New File',