Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ const makePaperWalletOnboardingRestoreEvent = <E extends string>(eventSuffix: E)

const multiWalletActions = {
create: {
CHOSE_BLOCKCHAIN_CLICK: makeMultiWalletCreateEvent('select a blockchain | next | click'),
CHOOSE_RECOVERY_MODE_MNEMONIC_CLICK: makePaperWalletOnboardingCreateEvent('choose mode | recovery phrase | click'),
CHOOSE_RECOVERY_MODE_PAPER_CLICK: makePaperWalletOnboardingCreateEvent('choose mode | paper wallet | click'),
CHOOSE_RECOVERY_MODE_NEXT_CLICK: makePaperWalletOnboardingCreateEvent('choose mode | next | click'),
Expand Down Expand Up @@ -52,6 +53,7 @@ const multiWalletActions = {
},
restore: {
WALLET_SETUP_PAGEVIEW: makePaperWalletOnboardingCreateEvent('step: wallet info | pageview'),
CHOSE_BLOCKCHAIN_CLICK: makeMultiWalletRestoreEvent('select a blockchain | next | click'),
CHOOSE_RECOVERY_MODE_MNEMONIC_CLICK: makePaperWalletOnboardingRestoreEvent('choose mode | recovery phrase | click'),
CHOOSE_RECOVERY_MODE_PAPER_CLICK: makePaperWalletOnboardingRestoreEvent('choose mode | paper wallet | click'),
CHOOSE_RECOVERY_MODE_NEXT_CLICK: makePaperWalletOnboardingRestoreEvent('choose mode | next | click'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ const onboardingActions = {
PIN_EXTENSION_CLICK: makeOnboardingEvent('lace main view | pin the wallet extension | click')
},
create: {
CHOSE_BLOCKCHAIN_CLICK: makeOnboardingCreateEvent('select a blockchain | next | click'),
CHOOSE_RECOVERY_MODE_MNEMONIC_CLICK: makePaperWalletOnboardingCreateEvent('choose mode | recovery phrase | click'),
CHOOSE_RECOVERY_MODE_PAPER_CLICK: makePaperWalletOnboardingCreateEvent('choose mode | paper wallet | click'),
CHOOSE_RECOVERY_MODE_NEXT_CLICK: makePaperWalletOnboardingCreateEvent('choose mode | next | click'),
Expand Down Expand Up @@ -63,6 +64,7 @@ const onboardingActions = {
},
restore: {
WALLET_SETUP_PAGEVIEW: makePaperWalletOnboardingCreateEvent('step: wallet info | pageview'),
CHOSE_BLOCKCHAIN_CLICK: makeOnboardingRestoreEvent('select a blockchain | next | click'),
CHOOSE_RECOVERY_MODE_MNEMONIC_CLICK: makePaperWalletOnboardingRestoreEvent('choose mode | recovery phrase | click'),
CHOOSE_RECOVERY_MODE_PAPER_CLICK: makePaperWalletOnboardingRestoreEvent('choose mode | paper wallet | click'),
CHOOSE_RECOVERY_MODE_NEXT_CLICK: makePaperWalletOnboardingRestoreEvent('choose mode | next | click'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export type CreateFlowActions = Record<
| 'RECOVERY_PHRASE_COPY_READ_MORE_CLICK'
| 'RECOVERY_PHRASE_PASTE_READ_MORE_CLICK'
| 'WALLET_ADDED'
| 'CHOSE_BLOCKCHAIN_CLICK'
| 'CHOOSE_RECOVERY_MODE_MNEMONIC_CLICK'
| 'CHOOSE_RECOVERY_MODE_PAPER_CLICK'
| 'CHOOSE_RECOVERY_MODE_NEXT_CLICK'
Expand All @@ -24,6 +25,7 @@ export type CreateFlowActions = Record<
>;
export type RestoreFlowActions = Record<
| 'WALLET_SETUP_PAGEVIEW'
| 'CHOSE_BLOCKCHAIN_CLICK'
| 'CHOOSE_RECOVERY_MODE_MNEMONIC_CLICK'
| 'CHOOSE_RECOVERY_MODE_PAPER_CLICK'
| 'CHOOSE_RECOVERY_MODE_NEXT_CLICK'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,46 @@ import { WalletSetupSelectBlockchain } from '@lace/core';
import { useCreateWallet } from '../context';
import { BitcoinImportMessageDialog } from '../../../wallet-setup/components/BitcoinImportMessageDialog';
import { usePostHogClientContext } from '@providers/PostHogClientProvider';
import { logger } from '@lace/common';
import { useWalletOnboarding } from '../../walletOnboardingContext';
import { useAnalyticsContext } from '@providers/AnalyticsProvider';

export const SelectBlockchain = (): ReactElement => {
const posthog = usePostHogClientContext();
const { back, next, selectedBlockchain, setSelectedBlockchain } = useCreateWallet();
const [isBitcoinDialogOpen, setIsBitcoinDialogOpen] = useState(false);
const bitcoinWalletsEnabled = posthog?.isFeatureFlagEnabled('bitcoin-wallets');
const analytics = useAnalyticsContext();
const { postHogActions } = useWalletOnboarding();

// eslint-disable-next-line consistent-return
const handleNext = () => {
const doNext = async () => {
await next();
await analytics.sendEventToPostHog(postHogActions.create.CHOSE_BLOCKCHAIN_CLICK, {
blockchain: selectedBlockchain
});
};

if (selectedBlockchain === 'Bitcoin') {
if (isBitcoinDialogOpen) setIsBitcoinDialogOpen(false);
else return setIsBitcoinDialogOpen(true);
}

doNext().catch((error) => logger.error('Error in next selecting blockchain', error));
};

return (
<>
<WalletSetupSelectBlockchain
back={back}
next={selectedBlockchain === 'Bitcoin' ? () => setIsBitcoinDialogOpen(true) : next}
next={handleNext}
selectedBlockchain={selectedBlockchain}
setSelectedBlockchain={setSelectedBlockchain}
showBitcoinOption={bitcoinWalletsEnabled}
/>
<BitcoinImportMessageDialog
onConfirm={() => {
setIsBitcoinDialogOpen(false);
void next();
}}
onConfirm={handleNext}
onCancel={() => setIsBitcoinDialogOpen(false)}
open={isBitcoinDialogOpen}
setOpen={setIsBitcoinDialogOpen}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,46 @@ import { WalletSetupSelectBlockchain } from '@lace/core';
import { useRestoreWallet } from '../context';
import { BitcoinImportMessageDialog } from '../../../wallet-setup/components/BitcoinImportMessageDialog';
import { usePostHogClientContext } from '@providers/PostHogClientProvider';
import { logger } from '@lace/common';
import { useWalletOnboarding } from '../../walletOnboardingContext';
import { useAnalyticsContext } from '@providers/AnalyticsProvider';

export const SelectBlockchain = (): ReactElement => {
const posthog = usePostHogClientContext();
const { back, next, selectedBlockchain, setSelectedBlockchain } = useRestoreWallet();
const [isBitcoinDialogOpen, setIsBitcoinDialogOpen] = useState(false);
const bitcoinWalletsEnabled = posthog?.isFeatureFlagEnabled('bitcoin-wallets');
const analytics = useAnalyticsContext();
const { postHogActions } = useWalletOnboarding();

// eslint-disable-next-line consistent-return
const handleNext = () => {
const doNext = async () => {
await next();
await analytics.sendEventToPostHog(postHogActions.restore.CHOSE_BLOCKCHAIN_CLICK, {
blockchain: selectedBlockchain
});
};

if (selectedBlockchain === 'Bitcoin') {
if (isBitcoinDialogOpen) setIsBitcoinDialogOpen(false);
else return setIsBitcoinDialogOpen(true);
}

doNext().catch((error) => logger.error('Error in next selecting blockchain', error));
};

return (
<>
<WalletSetupSelectBlockchain
back={back}
next={selectedBlockchain === 'Bitcoin' ? () => setIsBitcoinDialogOpen(true) : next}
next={handleNext}
selectedBlockchain={selectedBlockchain}
setSelectedBlockchain={setSelectedBlockchain}
showBitcoinOption={bitcoinWalletsEnabled}
/>
<BitcoinImportMessageDialog
onConfirm={() => {
setIsBitcoinDialogOpen(false);
void next();
}}
onConfirm={handleNext}
onCancel={() => setIsBitcoinDialogOpen(false)}
open={isBitcoinDialogOpen}
setOpen={setIsBitcoinDialogOpen}
Expand Down
Loading