import { FunctionComponent, useState, useRef, useEffect } from 'react' type Props = { extensionName: string changeName: (newName: string) => void isThirdParty: boolean } const ExtensionInfoCell: FunctionComponent = ({ extensionName, changeName, isThirdParty }) => { const [isRenaming, setIsRenaming] = useState(false) const [newExtensionName, setNewExtensionName] = useState(extensionName) const renameable = isThirdParty const inputRef = useRef(null) useEffect(() => { if (isRenaming) { inputRef.current?.focus() } }, [inputRef, isRenaming]) const startRenaming = () => { setNewExtensionName(extensionName) setIsRenaming(true) } const cancelRename = () => { setNewExtensionName(extensionName) setIsRenaming(false) } const confirmRename = () => { if (!newExtensionName) { return } changeName(newExtensionName) setIsRenaming(false) } return (
setNewExtensionName((input as HTMLInputElement)?.value)} />
{isRenaming && ( <> Confirm
Cancel )} {renameable && !isRenaming && ( Rename )}
) } export default ExtensionInfoCell