import React, { useState, useCallback, useMemo } from 'react'; import useLifecycle from 'lib/useLifecycle'; import { Anchor, Box, Text } from '@tlon/indigo-react'; import { useActivateFlow } from './ActivateFlow'; import ActivateView from './ActivateView'; import useRoller from 'lib/useRoller'; import { FadeableActivateHeader as ActivateHeader } from './ActivateHeader'; import { FadeableActivateButton as ActivateButton } from './ActivateButton'; import useFadeIn from './useFadeIn'; import PointPresenter from './PointPresenter'; import DangerBox from './DangerBox'; import View from 'components/View'; const MasterKeyTransfer = () => { const { acceptInvite } = useRoller(); const { derivedPatp, derivedPoint, derivedWallet, inviteWallet, } = useActivateFlow(); const [error, setError] = useState(); const claimPoint = useCallback(async () => { setError(undefined); try { await acceptInvite({ point: derivedPoint.value, to: derivedWallet.value.ownership.keys.address, manager: derivedWallet.value.management.keys.address, toWallet: derivedWallet.value, fromWallet: inviteWallet.value, }); } catch (error) { console.error(error); setError(error); } }, [derivedWallet, acceptInvite, derivedPoint.value, inviteWallet.value]); useFadeIn(); useLifecycle(() => { claimPoint(); }); const header = useMemo(() => { return ( Congratulations {derivedPatp.value}   is now yours } /> ); }, [derivedPatp.value]); const footer = useMemo(() => { return ( {error && {error.toString()}} window.open( 'https://github.com/urbit/port/releases/latest/download/Port.dmg' ) } disabled={error} success={true}> Download the Client for Mac or setup via command line ); }, [error]); return ( ); }; export default MasterKeyTransfer;