From bb2bfe406ff10a9ed89e4b94f98b5cf328bd2c7e Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Mon, 9 Oct 2023 02:46:52 -0400 Subject: [PATCH] refactor: update imports --- .../lume/LumeIdentity/components.tsx | 213 ++++++++++++------ 1 file changed, 145 insertions(+), 68 deletions(-) diff --git a/src/components/lume/LumeIdentity/components.tsx b/src/components/lume/LumeIdentity/components.tsx index fa41db8..6c26519 100644 --- a/src/components/lume/LumeIdentity/components.tsx +++ b/src/components/lume/LumeIdentity/components.tsx @@ -1,35 +1,51 @@ -import { makeSwitchable, useSwitchableComponent } from "../../SwitchableComponent"; +import { + makeSwitchable, + useSwitchableComponent, +} from "../../SwitchableComponent"; import { Button } from "../../ui/button"; import { Input } from "../../ui/input"; -import { CheckIcon, ClipboardCopyIcon, ExclamationTriangleIcon } from "@radix-ui/react-icons"; +import { + CheckIcon, + ClipboardCopyIcon, + ExclamationTriangleIcon, +} from "@radix-ui/react-icons"; import { AnimatePresence, m } from "framer-motion"; -import React from "react"; import { useLumeIndentity } from "./LumeIdentityContext"; +import { useMemo, useState } from "react"; // Extracted components const SubmitButtonComponent = () => { const { setVisibleComponent } = useSwitchableComponent(); return ( - - ) + ); }; const SeedPhraseInputComponent = () => { const { signIn } = useLumeIndentity(); return ( - { - e.preventDefault(); - const target = e.target as typeof e.target & { - elements: { - seedPhrase: { value: string }; - } - }; - const seedPhrase = target.elements.seedPhrase.value; - signIn(seedPhrase) - }}> - + { + e.preventDefault(); + const target = e.target as typeof e.target & { + elements: { + seedPhrase: { value: string }; + }; + }; + const seedPhrase = target.elements.seedPhrase.value; + signIn(seedPhrase); + }} + > + { transition={{ type: "just", delay: 0.1 }} className="h-12" > - @@ -47,36 +65,45 @@ const SeedPhraseInputComponent = () => { const SetupAccountKeyComponent = () => { const { setVisibleComponent } = useSwitchableComponent(); - const [width, setWidth] = React.useState(); + const [width, setWidth] = useState(); return ( setTimeout(() => setWidth(t!.getBoundingClientRect().width!), 0)} + style={{ maxWidth: width ?? "auto" }} + ref={(t) => + setTimeout(() => setWidth(t!.getBoundingClientRect().width!), 0) + } > - - ) + ); }; const SeedPhraseGenerationComponent = ({ phraseLength = 12 }) => { - const [buttonClickedState, setButtonClickedState] = React.useState<"idle" | "clicked">("idle"); - const [step, setStep] = React.useState(0); + const [buttonClickedState, setButtonClickedState] = useState< + "idle" | "clicked" + >("idle"); + const [step, setStep] = useState(0); const { signIn } = useLumeIndentity(); - const phrases = React.useMemo(() => { + const phrases = useMemo(() => { // TODO: Replace with actual BIP39 or whatever is used for phrase generation - return Array(phraseLength).fill("a phrase") + return Array(phraseLength).fill("a phrase"); }, [phraseLength]); - const key = React.useMemo(() => { + const key = useMemo(() => { return phrases.join(" "); }, [phrases]); @@ -84,62 +111,112 @@ const SeedPhraseGenerationComponent = ({ phraseLength = 12 }) => { navigator.clipboard.writeText(phrases.join(" ")); setButtonClickedState("clicked"); setTimeout(() => setButtonClickedState("idle"), 1000); - } + }; return (
- {step === 1 ? : null} + {step === 1 ? ( + + ) : null}
{phrases.map((phrase, index) => ( -
- {phrase} - {index + 1} +
+ + {phrase} + + + {index + 1} +
))} - {step === 1 ? - - Make sure to write this down for safe keeping. - : null} + {step === 1 ? ( + + + Make sure to write this down for safe keeping. + + ) : null} -
{step === 0 ? ( - ) : null} - {step === 1 ? - - : null} + {step === 1 ? ( + + + + ) : null}
- ) + ); }; -export const SubmitButton = makeSwitchable(SubmitButtonComponent, 'submit-button'); -export const SeedPhraseInput = makeSwitchable(SeedPhraseInputComponent, 'seed-phrase-input'); -export const SetupAccountKey = makeSwitchable(SetupAccountKeyComponent, 'setup-account-key'); -export const SeedPhraseGeneration = makeSwitchable(SeedPhraseGenerationComponent, 'seed-phrase-form'); \ No newline at end of file +export const SubmitButton = makeSwitchable( + SubmitButtonComponent, + "submit-button" +); +export const SeedPhraseInput = makeSwitchable( + SeedPhraseInputComponent, + "seed-phrase-input" +); +export const SetupAccountKey = makeSwitchable( + SetupAccountKeyComponent, + "setup-account-key" +); +export const SeedPhraseGeneration = makeSwitchable( + SeedPhraseGenerationComponent, + "seed-phrase-form" +);