gapp-payment-method-flow
Version:
Mobile Gapp flow for Payment Method
105 lines (99 loc) • 2.76 kB
text/typescript
import type { AxiosInstance } from 'axios';
export type TDataLoadType =
| 'json-stab'
| 'network-service'
| 'network-service-config';
export type TValueOut = {
loading: boolean;
paymentMethod: {
id?: number | string;
text?: string;
value?: number | string | boolean;
[x: string]: any;
};
cardDetails: {
cardNumber?: string;
mm?: string;
yy?: string;
cvv?: string;
paymentTokenId?: null | string;
state?: string;
isSavedCard?: boolean;
};
errorResponse: {
[x: string]: any;
};
savedCard: {
id?: number | string;
name?: string;
card_number?: string;
promo?: string | never;
value?: {
cardNumber?: string;
cvv?: string;
mm?: string;
name?: string;
yy?: string;
};
};
savedCards?: {
id?: number | string;
name?: string;
card_number?: string;
promo?: string | never;
value?: {
cardNumber?: string;
cvv?: string;
mm?: string;
name?: string;
yy?: string;
};
}[];
defaultCardId?: number | string;
};
export type TDataOut = (args: any) => void;
export interface IModel {
dataLoad: {
/**list of payment method data. Applicable for dataloadType=`json-stab` */
data?: any;
/**baseurl for getAll endpoint. Applicable for dataloadType=`network-service-config` */
baseUrl?: string;
/**set axios instance. Applicable for dataloadType=`network-service` */
axios?: AxiosInstance;
axiosCardValidate?: AxiosInstance;
/**list of endpoints. Applicable for dataloadType=`network-service` or `network-service-config` */
endpoints?: {
getAll: string;
};
/**Applicable for dataloadType=`network-service` or `network-service-config` */
validateCardUrl?: string;
cardValidationToken?: string;
[x: string]: any;
};
dataIn: {
/**choices what dataLoad should be apply */
dataLoadType: TDataLoadType;
/**activating server request to validate card form. */
isCardValidate?: boolean;
/**function that reconstruct payment method list. should return list. */
constructData?: (args: Array<any>, args2?: Array<any>) => Array<any>;
/**initialRouteName for StackNavigator */
initialRouteName?: string;
/**modify mini-app and gapp. able to use with the combination of Stack */
screens?: {
stackName?: string;
stackOptions?: {
[x: string]: any;
};
dataLoad?: any;
dataIn?: any;
dataOut?: TDataOut;
[x: string]: any;
}[];
[x: string]: any;
};
dataOut: TDataOut;
}
export interface TPaymentMethodGAppFlow extends IModel {
children: any;
}