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