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 )}
); };