import { FunctionComponent } from 'preact' import { useState, useRef, useEffect } from 'preact/hooks' export const ExtensionInfoCell: FunctionComponent<{ extensionName: string changeName: (newName: string) => void isThirdParty: boolean }> = ({ 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 )}
) }