UNPKG

@gigscom/embeds-js

Version:

prebuilt embeddable UI components on top of the Gigs API for the Web

64 lines (48 loc) 1.39 kB
import { Porting, PortingRequiredField } from '../types' export function wizardStep(porting: Porting) { if (requiresCarrierDetails(porting)) { return 'carrierDetails' as const } if (requiresHolderDetails(porting)) { return 'holderDetails' as const } if (requiresAddress(porting)) { return 'address' as const } if (requiresDonorProviderApproval(porting)) { return 'donorProviderApproval' as const } return null } function requiresCarrierDetails(porting: Porting) { if (requires(porting, 'accountPin') && !porting.accountPinExists) { return true } if (requires(porting, 'accountNumber') && !porting.accountNumber) { return true } return false } function requiresHolderDetails(porting: Porting) { if (requires(porting, 'firstName') && !porting.firstName) { return true } if (requires(porting, 'lastName') && !porting.lastName) { return true } if (requires(porting, 'birthday') && !porting.birthday) { return true } return false } function requiresAddress(porting: Porting) { return requires(porting, 'address') && !porting.address } function requiresDonorProviderApproval(porting: Porting) { return ( requires(porting, 'donorProviderApproval') && !porting.donorProviderApproval ) } function requires(porting: Porting, field: PortingRequiredField) { return porting.required.includes(field) }