import { FunctionComponent } from 'preact' import { useState, useRef, useEffect } from 'preact/hooks' export const RenameExtension: FunctionComponent<{ extensionName: string changeName: (newName: string) => void }> = ({ extensionName, changeName }) => { const [isRenaming, setIsRenaming] = useState(false) const [newExtensionName, setNewExtensionName] = useState(extensionName) 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 ) : ( Rename )}
) }