You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.2 KiB
65 lines
2.2 KiB
// @flow
|
|
|
|
import React from 'react'
|
|
import { getDeviceModel } from '@ledgerhq/devices'
|
|
|
|
import Box from 'components/base/Box'
|
|
import TrackPage from 'analytics/TrackPage'
|
|
import type { DeviceModelId } from 'reducers/onboarding'
|
|
|
|
import GrowScroll from 'components/base/GrowScroll'
|
|
import { Title, FixedTopContainer } from '../../helperComponents'
|
|
import OnboardingFooter from '../../OnboardingFooter'
|
|
import SelectPINnano from './SelectPINnano'
|
|
import SelectPINblue from './SelectPINblue'
|
|
import SelectPINnanoX from './SelectPINnanoX'
|
|
import SelectPINrestoreNano from './SelectPINrestoreNano'
|
|
import SelectPINRestoreNanoX from './SelectPINRestoreNanoX'
|
|
import SelectPINrestoreBlue from './SelectPINrestoreBlue'
|
|
import type { StepProps } from '../..'
|
|
|
|
const SelectPin = ({ modelId, restore = false }: { modelId: DeviceModelId, restore?: boolean }) => {
|
|
switch (modelId) {
|
|
case 'nanoX':
|
|
return restore ? <SelectPINRestoreNanoX /> : <SelectPINnanoX />
|
|
case 'blue':
|
|
return restore ? <SelectPINrestoreBlue /> : <SelectPINblue />
|
|
default:
|
|
return restore ? <SelectPINrestoreNano /> : <SelectPINnano />
|
|
}
|
|
}
|
|
|
|
export default (props: StepProps) => {
|
|
const { nextStep, prevStep, t, onboarding } = props
|
|
|
|
const model = getDeviceModel(onboarding.deviceModelId)
|
|
|
|
return (
|
|
<FixedTopContainer>
|
|
<GrowScroll pb={7}>
|
|
<TrackPage
|
|
category="Onboarding"
|
|
name="Choose PIN"
|
|
flowType={onboarding.flowType}
|
|
deviceType={model.productName}
|
|
/>
|
|
{onboarding.flowType === 'restoreDevice' ? (
|
|
<Box grow alignItems="center">
|
|
<Title>{t('onboarding.selectPIN.restore.title')}</Title>
|
|
<Box align="center" mt={7}>
|
|
<SelectPin modelId={onboarding.deviceModelId} restore />
|
|
</Box>
|
|
</Box>
|
|
) : (
|
|
<Box grow alignItems="center">
|
|
<Title>{t('onboarding.selectPIN.initialize.title')}</Title>
|
|
<Box align="center" mt={7}>
|
|
<SelectPin modelId={onboarding.deviceModelId} />
|
|
</Box>
|
|
</Box>
|
|
)}
|
|
</GrowScroll>
|
|
<OnboardingFooter horizontal flow={2} t={t} nextStep={nextStep} prevStep={prevStep} />
|
|
</FixedTopContainer>
|
|
)
|
|
}
|
|
|