react-native-priv-sdk
Version:
Official MyCover.ai SDK. Supercharge your product with MyCover AI Insurance offerings. Create embedded insurance offerings or full white label insurance applications that excite your customers.
610 lines (560 loc) • 19.9 kB
text/typescript
// @ts-nocheck
import globalObject from '../store/globalObject';
import { type GlobalStore } from '../store/globalStore';
export enum SdkOptions {
buy = 'buy',
renew = 'renew',
manage = 'manage',
claim = 'claim',
}
export function getBounceTextName(step: any): [string, string] {
switch (step) {
case CarVerificationStep.frontSidePreCapture:
case CarVerificationStep.frontSideCapture:
case CarVerificationStep.frontSideVerify:
case CarVerificationStep.frontSideFailed:
return ['Ensure to capture the ', 'bumper and windshield'];
case CarVerificationStep.chasisNumberPreCapture:
case CarVerificationStep.chasisNumberCapture:
case CarVerificationStep.chasisNumberVerify:
case CarVerificationStep.chasisNumberFailed:
return ['Check ', "driver's side door"];
case CarVerificationStep.leftSidePreCapture:
case CarVerificationStep.leftSideCapture:
case CarVerificationStep.leftSideVerify:
case CarVerificationStep.leftSideFailed:
return ['Snap from the ', "driver's side"];
case CarVerificationStep.backSidePreCapture:
case CarVerificationStep.backSideCapture:
case CarVerificationStep.backSideVerify:
case CarVerificationStep.backSideFailed:
case CarVerificationStep.rightSidePreCapture:
case CarVerificationStep.rightSideCapture:
case CarVerificationStep.rightSideVerify:
case CarVerificationStep.rightSideFailed:
return ['Snap from the ', "passenger's side"];
default:
return ['', ''];
}
}
export function getEndpointName(step: any): string {
switch (step) {
case CarVerificationStep.frontSidePreCapture:
case CarVerificationStep.frontSideCapture:
case CarVerificationStep.frontSideVerify:
case CarVerificationStep.frontSideFailed:
case PhoneVerificationStep.phoneFrontPreCapture:
case PhoneVerificationStep.phoneFrontCapture:
case PhoneVerificationStep.phoneFrontVerify:
return 'front';
case CarVerificationStep.chasisNumberPreCapture:
case CarVerificationStep.chasisNumberCapture:
case CarVerificationStep.chasisNumberVerify:
case CarVerificationStep.chasisNumberFailed:
return 'vin';
case CarVerificationStep.leftSidePreCapture:
case CarVerificationStep.leftSideCapture:
case CarVerificationStep.leftSideVerify:
case CarVerificationStep.leftSideFailed:
return 'left';
case CarVerificationStep.backSidePreCapture:
case CarVerificationStep.backSideCapture:
case CarVerificationStep.backSideVerify:
case CarVerificationStep.backSideFailed:
return 'rear';
case CarVerificationStep.rightSidePreCapture:
case CarVerificationStep.rightSideCapture:
case CarVerificationStep.rightSideVerify:
case CarVerificationStep.rightSideFailed:
return 'right';
case CarVerificationStep.dashboardPreCapture:
case CarVerificationStep.dashboardCapture:
case CarVerificationStep.dashboardVerify:
case CarVerificationStep.dashboardFailed:
return 'dashboard';
case CarVerificationStep.interiorPreCapture:
case CarVerificationStep.interiorCapture:
case CarVerificationStep.interiorVerify:
case CarVerificationStep.interiorFailed:
return 'interior';
case PhoneVerificationStep.phoneSidePreCapture:
case PhoneVerificationStep.phoneSideCapture:
case PhoneVerificationStep.phoneSideVerify:
return 'side';
case PhoneVerificationStep.phoneBackPreCapture:
case PhoneVerificationStep.phoneBackCapture:
case PhoneVerificationStep.phoneBackVerify:
return 'back';
case PhoneVerificationStep.phoneSettingsPreCapture:
case PhoneVerificationStep.phoneSettingsCapture:
case PhoneVerificationStep.phoneSettingsVerify:
return 'settings';
default:
return 'Unknown';
}
}
export function getSideName(step: any): string {
switch (step) {
case CarVerificationStep.frontSidePreCapture:
case CarVerificationStep.frontSideCapture:
case CarVerificationStep.frontSideVerify:
case CarVerificationStep.frontSideFailed:
case PhoneVerificationStep.phoneFrontPreCapture:
case PhoneVerificationStep.phoneFrontCapture:
case PhoneVerificationStep.phoneFrontVerify:
return 'Front';
case PhoneVerificationStep.phoneBackPreCapture:
case PhoneVerificationStep.phoneBackCapture:
case PhoneVerificationStep.phoneBackVerify:
return 'Back';
case PhoneVerificationStep.phoneSettingsPreCapture:
case PhoneVerificationStep.phoneSettingsCapture:
case PhoneVerificationStep.phoneSettingsVerify:
return 'Internal Properties';
case PhoneVerificationStep.phoneSidePreCapture:
case PhoneVerificationStep.phoneSideCapture:
case PhoneVerificationStep.phoneSideVerify:
return 'Side';
case CarVerificationStep.chasisNumberPreCapture:
case CarVerificationStep.chasisNumberCapture:
case CarVerificationStep.chasisNumberVerify:
case CarVerificationStep.chasisNumberFailed:
return 'Chassis Number';
case CarVerificationStep.leftSidePreCapture:
case CarVerificationStep.leftSideCapture:
case CarVerificationStep.leftSideVerify:
case CarVerificationStep.leftSideFailed:
return 'Left';
case CarVerificationStep.backSidePreCapture:
case CarVerificationStep.backSideCapture:
case CarVerificationStep.backSideVerify:
case CarVerificationStep.backSideFailed:
return 'Back';
case CarVerificationStep.rightSidePreCapture:
case CarVerificationStep.rightSideCapture:
case CarVerificationStep.rightSideVerify:
case CarVerificationStep.rightSideFailed:
return 'Right';
case CarVerificationStep.dashboardPreCapture:
case CarVerificationStep.dashboardCapture:
case CarVerificationStep.dashboardVerify:
case CarVerificationStep.dashboardFailed:
return 'Dashboard';
case CarVerificationStep.interiorPreCapture:
case CarVerificationStep.interiorCapture:
case CarVerificationStep.interiorVerify:
case CarVerificationStep.interiorFailed:
return 'Interior';
case CarVerificationStep.verificationCompleted:
return 'Completed';
default:
return 'Unknown';
}
}
export function getInspectionSummaryName(
step: string,
inspectionType: InspectionType = InspectionType.vehicle
): string {
switch (step) {
case 'front':
return inspectionType === InspectionType.gadget
? 'Front Image'
: 'Front side';
case 'back':
return inspectionType === InspectionType.gadget
? 'Back Image'
: 'Back side';
case 'vin':
return 'Chassis';
case 'left':
return 'Left side';
case 'rear':
return inspectionType === InspectionType.gadget
? 'Back Image'
: 'Back side';
case 'right':
return 'Right side';
case 'dashboard':
return 'Dashboard';
case 'interior':
return 'Interior';
case 'side':
return 'Side Image';
case 'settings':
return 'Serial Number';
default:
return 'Unknown';
}
}
export function getSideImage(step: any, global: GlobalStore): SideImage {
switch (step) {
case CarVerificationStep.frontSidePreCapture:
case CarVerificationStep.frontSideCapture:
case CarVerificationStep.frontSideVerify:
case CarVerificationStep.frontSideFailed:
return SideImage.front;
case CarVerificationStep.chasisNumberPreCapture:
case CarVerificationStep.chasisNumberCapture:
case CarVerificationStep.chasisNumberVerify:
case CarVerificationStep.chasisNumberFailed:
return SideImage.chassisNumber;
case CarVerificationStep.leftSidePreCapture:
case CarVerificationStep.leftSideCapture:
case CarVerificationStep.leftSideVerify:
case CarVerificationStep.leftSideFailed:
return SideImage.left;
case CarVerificationStep.backSidePreCapture:
case CarVerificationStep.backSideCapture:
case CarVerificationStep.backSideVerify:
case CarVerificationStep.backSideFailed:
return SideImage.back;
case CarVerificationStep.rightSidePreCapture:
case CarVerificationStep.rightSideCapture:
case CarVerificationStep.rightSideVerify:
case CarVerificationStep.rightSideFailed:
return SideImage.right;
case CarVerificationStep.dashboardPreCapture:
case CarVerificationStep.dashboardCapture:
case CarVerificationStep.dashboardVerify:
case CarVerificationStep.dashboardFailed:
return SideImage.dashboard;
case CarVerificationStep.interiorPreCapture:
case CarVerificationStep.interiorCapture:
case CarVerificationStep.interiorVerify:
case CarVerificationStep.interiorFailed:
return SideImage.interior;
case PhoneVerificationStep.phoneFrontPreCapture:
case PhoneVerificationStep.phoneFrontCapture:
case PhoneVerificationStep.phoneFrontVerify:
return globalObject.gadgetType == GadgetType.laptop
? SideImage.laptopFront
: SideImage.phoneFrontImg;
case PhoneVerificationStep.phoneBackPreCapture:
case PhoneVerificationStep.phoneBackCapture:
case PhoneVerificationStep.phoneBackVerify:
return globalObject.gadgetType == GadgetType.laptop
? SideImage.laptopBackImg
: SideImage.phoneBackImg;
case PhoneVerificationStep.phoneSidePreCapture:
case PhoneVerificationStep.phoneSideCapture:
case PhoneVerificationStep.phoneSideVerify:
return globalObject.gadgetType == GadgetType.laptop
? SideImage.laptopOtherImg
: SideImage.phoneSideImg;
case PhoneVerificationStep.phoneSettingsPreCapture:
case PhoneVerificationStep.phoneSettingsCapture:
case PhoneVerificationStep.phoneSettingsVerify:
return globalObject.gadgetType == GadgetType.laptop
? SideImage.laptopSettingsImg
: SideImage.phoneSettingsImg;
case CarVerificationStep.verificationCompleted:
return SideImage.leftSample;
default:
return SideImage.leftSample;
}
}
// Verification stages and phone verification enums
export enum VerificationStage {
unknown = 'unknown',
preCapture = 'preCapture',
capture = 'capture',
verify = 'verify',
failed = 'failed',
loading = 'loading',
}
export enum PhoneVerificationStep {
phoneFrontPreCapture = 'phoneFrontPreCapture',
phoneFrontCapture = 'phoneFrontCapture',
phoneFrontVerify = 'phoneFrontVerify',
phoneBackPreCapture = 'phoneBackPreCapture',
phoneBackCapture = 'phoneBackCapture',
phoneBackVerify = 'phoneBackVerify',
phoneSettingsPreCapture = 'phoneSettingsPreCapture',
phoneSettingsCapture = 'phoneSettingsCapture',
phoneSettingsVerify = 'phoneSettingsVerify',
phoneSidePreCapture = 'phoneSidePreCapture',
phoneSideCapture = 'phoneSideCapture',
phoneSideVerify = 'phoneSideVerify',
verificationLoading = 'verificationLoading',
verificationCompleted = 'verificationCompleted',
}
export enum CarVerificationStep {
frontSidePreCapture = 'frontSidePreCapture',
frontSideCapture = 'frontSideCapture',
frontSideVerify = 'frontSideVerify',
frontSideFailed = 'frontSideFailed',
chasisNumberPreCapture = 'chasisNumberPreCapture',
chasisNumberCapture = 'chasisNumberCapture',
chasisNumberVerify = 'chasisNumberVerify',
chasisNumberFailed = 'chasisNumberFailed',
leftSidePreCapture = 'leftSidePreCapture',
leftSideCapture = 'leftSideCapture',
leftSideVerify = 'leftSideVerify',
leftSideFailed = 'leftSideFailed',
backSidePreCapture = 'backSidePreCapture',
backSideCapture = 'backSideCapture',
backSideVerify = 'backSideVerify',
backSideFailed = 'backSideFailed',
rightSidePreCapture = 'rightSidePreCapture',
rightSideCapture = 'rightSideCapture',
rightSideVerify = 'rightSideVerify',
rightSideFailed = 'rightSideFailed',
dashboardPreCapture = 'dashboardPreCapture',
dashboardCapture = 'dashboardCapture',
dashboardVerify = 'dashboardVerify',
dashboardFailed = 'dashboardFailed',
interiorPreCapture = 'interiorPreCapture',
interiorCapture = 'interiorCapture',
interiorVerify = 'interiorVerify',
interiorFailed = 'interiorFailed',
verificationLoading = 'verificationLoading',
verificationCompleted = 'verificationCompleted',
}
export enum PageViewContent {
firstAutoPage = 'firstAutoPage',
secondAutoPage = 'secondAutoPage',
thirdAutoPage = 'thirdAutoPage',
fourthAutoPage = 'fourthAutoPage',
displayPlainColor = 'displayPlainColor',
displayGreenColor = 'displayGreenColor',
displayTextAndList = 'displayTextAndList',
}
export enum SideImage {
front = 'firstAutofrontPage',
chassisNumber = 'chassisNumber',
left = 'left',
back = 'back',
right = 'right',
dashboard = 'dashboard',
interior = 'interior',
laptopFront = 'laptopFront',
phoneFrontImg = 'phoneFrontImg',
laptopBackImg = 'laptopBackImg',
phoneBackImg = 'phoneBackImg',
laptopOtherImg = 'laptopOtherImg',
phoneSideImg = 'phoneSideImg',
laptopSettingsImg = 'laptopSettingsImg',
phoneSettingsImg = 'phoneSettingsImg',
leftSample = 'leftSample',
}
export enum PaymentOption {
wallet = 'wallet',
gateway = 'gateway',
}
export class PaymentOptionHelper {
static getName(option: PaymentOption): string {
switch (option) {
case PaymentOption.wallet:
return 'wallet';
case PaymentOption.gateway:
return 'gateway';
default:
return '';
}
}
}
export enum PaymentMethod {
transfer = 'transfer',
ussd = 'ussd',
}
export class PaymentMethodHelper {
static getName(method: PaymentMethod): string {
switch (method) {
case PaymentMethod.transfer:
return 'bank transfer';
case PaymentMethod.ussd:
return 'ussd';
default:
return '';
}
}
}
export enum ToastStatus {
success = 'success',
pending = 'pending',
failed = 'failed',
}
export enum SdkResponseStatus {
success = 'success',
failed = 'failed',
}
export enum TransactionType {
continuePurchase = 'continuePurchase',
purchase = 'purchase',
inspection = 'inspection',
claim = 'claim',
}
export enum SdkLayout {
grid = 'grid',
list = 'list',
}
export enum InspectionType {
vehicle = 'vehicle',
gadget = 'gadget',
home = 'home',
}
export enum GadgetType {
phone = 'phone',
laptop = 'laptop',
other = 'other',
}
export enum ProductCategory {
package = 'package',
gadget = 'gadget',
life = 'life',
creditLife = 'creditLife',
auto = 'auto',
health = 'health',
content = 'content',
travel = 'travel',
}
export enum ClaimStatus {
pending = 'pending',
inspectionSubmitted = 'inspectionSubmitted',
approved = 'approved',
declined = 'declined',
repairEstimateSubmitted = 'repairEstimateSubmitted',
offerSent = 'offerSent',
offerAccepted = 'offerAccepted',
offerRejected = 'offerRejected',
paid = 'paid',
settled = 'settled',
}
export enum ClaimType {
gadget = 'gadget',
auto = 'auto',
travel = 'travel',
}
export enum ClaimSubmissionStep {
claimLodged = 'claimLodged',
repairEstimate = 'repairEstimate',
offerAccepted = 'offerAccepted',
offerRejected = 'offerRejected',
thirdPartyClaimLodged = 'thirdPartyClaimLodged',
thirdPartyInspected = 'thirdPartyInspected',
travelDocSubmitted = 'travelDocSubmitted',
submitAutoPoliceReport = 'submitAutoPoliceReport',
submitGadgetPoliceReport = 'submitGadgetPoliceReport',
}
export enum TravelIncidentType {
medicalExpenses = 'medicalExpenses',
lossOfTravelDocument = 'lossOfTravelDocument',
baggageLoss = 'baggageLoss',
baggageDelay = 'baggageDelay',
personalMoneyLoss = 'personalMoneyLoss',
missedDepartureOrConnection = 'missedDepartureOrConnection',
travelDelay = 'travelDelay',
legalExpensesAndBailBond = 'legalExpensesAndBailBond',
}
// Utility functions for enums
export function getClaimStatusDescription(type: ClaimStatus): string {
switch (type) {
case ClaimStatus.pending:
return 'Pending';
case ClaimStatus.inspectionSubmitted:
return 'Inspection Submitted';
case ClaimStatus.approved:
return 'Approved';
case ClaimStatus.declined:
return 'Declined';
case ClaimStatus.repairEstimateSubmitted:
return 'Repair Estimate Submitted';
case ClaimStatus.offerSent:
return 'Offer Sent';
case ClaimStatus.offerAccepted:
return 'Offer Accepted';
case ClaimStatus.offerRejected:
return 'Offer Rejected';
case ClaimStatus.paid:
return 'Paid';
case ClaimStatus.settled:
return 'Settled';
default:
return 'Unknown';
}
}
export function getProductCategoryText(category: ProductCategory): string {
switch (category) {
case ProductCategory.package:
return 'package';
case ProductCategory.gadget:
return 'gadget';
case ProductCategory.life:
return 'life';
default:
return 'unknown';
}
}
export function getGadgetType(gadgetType: string): GadgetType {
switch (gadgetType) {
case 'laptop':
return GadgetType.laptop;
case 'phone':
return GadgetType.phone;
default:
return GadgetType.other;
}
}
// Function to get the verification stage based on the step
export function getVerificationStage(step: any) {
switch (step) {
// case CarVerificationStep.frontSidePreCapture:
// case CarVerificationStep.chasisNumberPreCapture:
// case CarVerificationStep.leftSidePreCapture:
// case CarVerificationStep.rightSidePreCapture:
// case CarVerificationStep.dashboardPreCapture:
case CarVerificationStep.frontSidePreCapture:
case CarVerificationStep.chasisNumberPreCapture:
case CarVerificationStep.leftSidePreCapture:
case CarVerificationStep.backSidePreCapture:
case CarVerificationStep.rightSidePreCapture:
case CarVerificationStep.dashboardPreCapture:
case CarVerificationStep.interiorPreCapture:
case PhoneVerificationStep.phoneFrontPreCapture:
case PhoneVerificationStep.phoneBackPreCapture:
case PhoneVerificationStep.phoneSettingsPreCapture:
case PhoneVerificationStep.phoneSidePreCapture:
return VerificationStage.preCapture;
// case CarVerificationStep.frontSideCapture:
// case CarVerificationStep.chasisNumberCapture:
// case CarVerificationStep.leftSideCapture:
// case CarVerificationStep.rightSideCapture:
// case CarVerificationStep.dashboardCapture:
case CarVerificationStep.frontSideCapture:
case CarVerificationStep.chasisNumberCapture:
case CarVerificationStep.leftSideCapture:
case CarVerificationStep.backSideCapture:
case CarVerificationStep.rightSideCapture:
case CarVerificationStep.dashboardCapture:
case CarVerificationStep.interiorCapture:
case PhoneVerificationStep.phoneFrontCapture:
case PhoneVerificationStep.phoneBackCapture:
case PhoneVerificationStep.phoneSettingsCapture:
case PhoneVerificationStep.phoneSideCapture:
return VerificationStage.capture;
case CarVerificationStep.frontSideVerify:
case CarVerificationStep.chasisNumberVerify:
case CarVerificationStep.leftSideVerify:
case CarVerificationStep.backSideVerify:
case CarVerificationStep.rightSideVerify:
case CarVerificationStep.dashboardVerify:
case CarVerificationStep.interiorVerify:
case PhoneVerificationStep.phoneFrontVerify:
case PhoneVerificationStep.phoneBackVerify:
case PhoneVerificationStep.phoneSettingsVerify:
case PhoneVerificationStep.phoneSideVerify:
return VerificationStage.verify;
case CarVerificationStep.frontSideFailed:
case CarVerificationStep.chasisNumberFailed:
case CarVerificationStep.leftSideFailed:
case CarVerificationStep.backSideFailed:
case CarVerificationStep.rightSideFailed:
case CarVerificationStep.dashboardFailed:
case CarVerificationStep.interiorFailed:
return VerificationStage.failed;
case PhoneVerificationStep.verificationLoading:
return VerificationStage.loading;
default:
return VerificationStage.unknown;
}
}