CashuForm.tsx raw

   1  import React from "react";
   2  import { useNavigate } from "react-router";
   3  import Container from "src/components/Container";
   4  import ExternalLink from "src/components/ExternalLink";
   5  import TwoColumnLayoutHeader from "src/components/TwoColumnLayoutHeader";
   6  import { Button } from "src/components/ui/button";
   7  import { Input } from "src/components/ui/input";
   8  import { Label } from "src/components/ui/label";
   9  import useSetupStore from "src/state/SetupStore";
  10  
  11  export function CashuForm() {
  12    const setupStore = useSetupStore();
  13    const navigate = useNavigate();
  14    const [cashuMintUrl, setCashuMintUrl] = React.useState(
  15      "https://mint.minibits.cash/Bitcoin"
  16    );
  17  
  18    function onSubmit(e: React.FormEvent) {
  19      e.preventDefault();
  20      handleSubmit({ cashuMintUrl });
  21    }
  22  
  23    async function handleSubmit(data: object) {
  24      setupStore.updateNodeInfo({
  25        backendType: "CASHU",
  26        ...data,
  27      });
  28      navigate("/setup/security");
  29    }
  30  
  31    return (
  32      <Container>
  33        <TwoColumnLayoutHeader
  34          title="Configure Cashu Mint"
  35          pageTitle="Configure Cashu Mint"
  36          description="Fill out wallet details to finish setup."
  37        />
  38        <form className="w-full grid gap-5 mt-6" onSubmit={onSubmit}>
  39          <div className="grid gap-1.5">
  40            <Label
  41              htmlFor="cashu-mint-url"
  42              className="flex flex-row justify-between"
  43            >
  44              <span>Cashu Mint URL</span>{" "}
  45              <ExternalLink
  46                to="https://bitcoinmints.com"
  47                className="underline hover:no-underline text-xs font-normal"
  48              >
  49                Find a mint
  50              </ExternalLink>
  51            </Label>
  52            <Input
  53              name="cashu-mint-url"
  54              onChange={(e) => setCashuMintUrl(e.target.value)}
  55              value={cashuMintUrl}
  56              id="cashu-mint-url"
  57            />
  58          </div>
  59          <Button>Next</Button>
  60        </form>
  61      </Container>
  62    );
  63  }
  64