import { Button } from "@material-ui/core"; import { LoadKeyPair } from "./LoadKeyPair"; import { SaveKeyPair } from "./SaveKeyPair"; import React, { useState } from "react"; import { generateEncryptionKeyPair, KeyPair } from "../crypto"; import { makeStyles } from "@material-ui/core/styles"; import PasswordInput from "./PasswordInput"; const useStyles = makeStyles({ root: { textAlign: "center", display: "flex", alignItems: "center", flexDirection: "column", margin: "5px", }, generate: { margin: "5px" }, storage: { margin: "5px", }, loadSave: { display: "flex", flexDirection: "row", margin: "5px", }, loadSaveButton: { margin: "5px", }, }); export interface Props { encryptionKeyPair: KeyPair | undefined; setEncryptionKeyPair: (keyPair: KeyPair) => void; } export default function KeyPairHandling({ encryptionKeyPair, setEncryptionKeyPair, }: Props) { const classes = useStyles(); const [password, setPassword] = useState(); const generateKeyPair = () => { if (encryptionKeyPair) return; generateEncryptionKeyPair() .then((keyPair) => { setEncryptionKeyPair(keyPair); }) .catch((e) => { console.error("Failed to generate Key Pair", e); }); }; return (
setPassword(p)} />
setEncryptionKeyPair(keyPair)} disabled={!!encryptionKeyPair} password={password} />
); }