Files
address-verification-app/src/common/Constants.ts
2023-04-04 01:14:08 +05:30

233 lines
16 KiB
TypeScript

import { Permission, PermissionsAndroid } from 'react-native';
import { ApiKeys, API_URLS } from "../components/utlis/apiHelper";
import { CaseStatuses } from "../screens/allCases/interface";
export const APP_NAME = 'collections-agent-app';
export enum CONDITIONAL_OPERATORS {
EQUALS = 'EQUALS',
LESS_THAN_EQUAL_TO = 'LESS_THAN_EQUAL_TO',
IN_RANGE = 'IN_RANGE',
}
export enum FILTER_TYPES {
DATE = 'DATE',
STRING = 'STRING',
RANGE = 'RANGE',
}
export enum SELECTION_TYPES {
SINGLE = 'SINGLE',
MULTIPLE = 'MULTIPLE',
}
export const RANGE_FILTER_SEPARATOR = '-';
export interface Option {
label: string;
value: any;
}
export enum FirestoreUpdateTypes {
ADDED = 'added',
MODIFIED = 'modified',
REMOVED = 'removed',
}
export const ClickstreamAPIToMonitor = {
[API_URLS[ApiKeys.GENERATE_OTP]]: 'AV_LOGIN_SCREEN_SEND_OTP_API',
[API_URLS[ApiKeys.VERIFY_OTP]]: 'AV_OTP_SCREEN_VERIFY_OTP_API',
[API_URLS[ApiKeys.LOGOUT]]: 'AV_PROFILE_PAGE_LOGOUT_API',
[API_URLS[ApiKeys.FEEDBACK]]: 'AV_FORM_SUBMIT_API',
[API_URLS[ApiKeys.PINNED_CASES]]: 'AV_PINNED_CASES_API',
[API_URLS[ApiKeys.FILTERS]]: 'AV_FILTERS_API',
[API_URLS[ApiKeys.JANUS]]: 'AV_JANUS_API',
[API_URLS[ApiKeys.GENERATE_PAYMENT_LINK]]: 'AV_GENERATE_PAYMENT_LINK_API',
[API_URLS[ApiKeys.ADDRESSES_GEOLOCATION]]: 'AV_ADDRESSES_GEOLOCATION_API',
[API_URLS[ApiKeys.NEW_ADDRESS]]: 'AV_NEW_ADDRESS_API',
[API_URLS[ApiKeys.GET_SIGNED_URL]]: 'AV_GET_SIGNED_URL_API',
[API_URLS[ApiKeys.CASE_UNIFIED_DETAILS]]: 'AV_CASE_UNIFIED_DETAILS_API',
[API_URLS[ApiKeys.EMI_SCHEDULES]]: 'AV_EMI_SCHEDULES_API',
[API_URLS[ApiKeys.PAST_FEEDBACK]]: 'AV_PAST_FEEDBACK_API',
};
export const CLICKSTREAM_EVENT_NAMES = {
// GENERIC
AV_NATIVE_BACK_PRESSED : {name: 'FA_NATIVE_BACK_PRESSED', description: 'Native back button pressed'},
AV_NATIVE_HOME_PRESSED : {name: 'FA_NATIVE_HOME_PRESSED', description: 'Native home button pressed'},
AV_APP_FOREGROUND : {name: 'FA_APP_FOREGROUND', description: 'App has come to foreground'},
AV_APP_BACKGROUND : {name: 'FA_APP_BACKGROUND', description: 'App went to background'},
AV_ERROR_PAGE_LOADED : {name: 'ERROR_PAGE_LOADED', description: 'Error page loaded'},
AV_NETWORK_STATUS_CHANGE: {name: 'FA_NETWORK_STATUS_CHANGE', description: 'Offline/online status change'},
FA_ADD_TO_VISIT_PLAN_CTA: { name: 'FA_ADD_TO_VISIT_PLAN_CTA', description: 'Cases pinned' },
FA_REMOVE_FROM_VISIT_PLAN_CTA: { name: 'FA_REMOVE_FROM_VISIT_PLAN_CTA', description: 'Cases unpinned' },
FA_VISIT_PLAN_UPDATED: { name: 'FA_VISIT_PLAN_UPDATED', description: 'Updated cases pinned' },
// Login screen
AV_LOGIN_SCREEN_LOAD: {name:'FA_LOGIN_SCREEN_LOAD', description: 'Login page loaded'},
AV_LOGIN_SCREEN_NUMBER_INPUT: {name:'FA_LOGIN_SCREEN_NUMBER_INPUT', description: 'User entered 10 digits'},
AV_LOGIN_SCREEN_SEND_OTP_CLICKED: {name:'FA_LOGIN_SCREEN_SEND_OTP_CLICKED', description: 'Send OTP CTA clicked'},
AV_LOGIN_SCREEN_SEND_OTP_API_SUCCESS: {name:'FA_LOGIN_SCREEN_SEND_OTP_API_SUCCESS', description: 'Send OTP API successful'},
AV_LOGIN_SCREEN_SEND_OTP_API_FAILED: {name:'FA_LOGIN_SCREEN_SEND_OTP_API_FAILED', description: 'Send OTP API failed'},
// OTP screen
AV_OTP_SCREEN_LOAD: {name:'FA_OTP_SCREEN_LOAD', description: 'OTP screen loaded'},
AV_OTP_SCREEN_OTP_INPUT: {name:'FA_OTP_SCREEN_OTP_INPUT', description: 'User entered 4 digit OTP'},
AV_OTP_SCREEN_VERIFY_OTP_CLICKED: {name:'FA_OTP_SCREEN_VERIFY_OTP_CLICKED', description: 'Verify OTP CTA Clicked'},
AV_OTP_SCREEN_BACK_BUTTON_CLICKED: {name:'FA_OTP_SCREEN_BACK_BUTTON_CLICKED', description: 'OTP Screen back CTA clicked'},
AV_OTP_SCREEN_VERIFY_OTP_API_SUCCESS: {name:'FA_OTP_SCREEN_VERIFY_OTP_API_SUCCESS', description: 'OTP verify API successful'},
AV_OTP_SCREEN_VERIFY_OTP_API_FAILED: {name:'FA_OTP_SCREEN_VERIFY_OTP_API_FAILED', description: 'OTP verify API failed'},
// Case list
AV_CASE_LIST_LOAD : {name: 'FA_CASE_LIST_LOAD', description: 'Cases list loaded'},
AV_CASE_LIST_CASE_CLICKED : {name: 'FA_CASE_LIST_CASE_CLICKED', description: 'Case clicked'},
AV_CASE_LIST_PULLED_TO_REFRESH : {name: 'FA_CASE_LIST_PULLED_TO_REFRESH', description: 'Case list pulled to refresh'},
AV_CASE_LIST_TODO_ITEM_SELECTED : {name: 'FA_CASE_LIST_TODO_ITEM_SELECTED', description: 'Case list todo item selected'},
AV_CASE_LIST_TODO_ITEM_UNSELECTED : {name: 'FA_CASE_LIST_TODO_ITEM_UNSELECTED', description: 'Case list todo iten unselected'},
AV_CASE_LIST_CASE_SELECTED : {name: 'FA_CASE_LIST_CASE_SELECTED', description: 'Other cases selected'},
AV_CASE_LIST_CASE_UNSELECTED : {name: 'FA_CASE_LIST_CASE_UNSELECTED', description: 'Other cases unselected'},
AV_CASE_LIST_PROCEED_BUTTON_CLICKED : {name: 'FA_CASE_LIST_PROCEED_BUTTON_CLICKED', description: 'Case list proceed CTA clicked'},
AV_CASE_LIST_REMOVE_BUTTON_CLICKED : {name: 'FA_CASE_LIST_REMOVE_BUTTON_CLICKED', description: 'Case list remove CTA clicked'},
AV_CASE_LIST_REMOVE_API_SUCCESS : {name: 'FA_CASE_LIST_REMOVE_API_SUCCESS', description: 'Remove todolist API successful'},
AV_CASE_LIST_REMOVE_API_FAILED: {name: 'FA_CASE_LIST_REMOVE_API_FAILED', description: 'Remove todolist API failed'},
AV_CASE_LIST_FILTER_BUTTON_CLICKED : {name: 'FA_CASE_LIST_FILTER_BUTTON_CLICKED', description: 'Case list filter CTA clicked'},
AV_CASE_LIST_SEARCH_QUERY_CHANGED : {name: 'FA_CASE_LIST_SEARCH_QUERY_CHANGED', description: 'Search filter query changed'},
AV_CASE_LIST_TAB_CHANGED : {name: 'FA_CASE_LIST_TAB_CHANGED', description: 'Case list tab changed'},
AV_CASE_LIST_AGENT_PROFILE_CLICKED : {name: 'FA_CASE_LIST_AGENT_PROFILE_CLICKED', description: 'Case list agent profile CTA clicked'},
// TODO LIST
AV_TODO_LIST_LOAD : {name: 'FA_TODO_LIST_LOAD', description: 'Todo list confirmation screen loaded'},
AV_TODO_LIST_CASE_DELETED : {name: 'FA_TODO_LIST_CASE_DELETED', description: 'Todo list case deleted'},
AV_TODO_LIST_SUBMIT_CLICKED : {name: 'FA_TODO_LIST_SUBMIT_CLICKED', description: 'Submit CTA clicked'},
AV_TODO_LIST_SUBMIT_SUCCESS : {name: 'FA_TODO_LIST_SUBMIT_SUCCESS', description: 'Todo list submit API successful'},
AV_TODO_LIST_SUBMIT_FAILED : {name: 'FA_TODO_LIST_SUBMIT_FAILED', description: 'Todo list submit API failed'},
AV_TODO_LIST_BACK_CLICKED : {name: 'FA_TODO_LIST_BACK_CLICKED', description: 'Back CTA clicked'},
//Filters
AV_FILTERS_PAGE_LOAD : {name: 'FA_FILTERS_PAGE_LOAD', description: 'Filters screen loaded'},
AV_FILTERS_TAB_CLICKED : {name: 'FA_FILTERS_TAB_CLICKED', description: 'Filter tab clicked'},
AV_FILTERS_OPTIONS_SELECTED : {name: 'FA_FILTERS_OPTIONS_SELECTED', description: 'Filter options selected'},
AV_FILTERS_CLOSE_CLICKED : {name: 'FA_FILTERS_CLOSE_CLICKED', description: 'Filters close CTA clicked'},
AV_FILTERS_APPLY_CLICKED : {name: 'FA_FILTERS_APPLY_CLICKED', description: 'Filters apply CTA clicked'},
AV_FILTERS_CLEAR_CLICKED : {name: 'FA_FILTERS_CLEAR_CLICKED', description: 'Filters clear CTA clicked'},
AV_FILTERS_OPTION_SEARCH : {name: 'FA_FILTERS_OPTION_SEARCH', description: 'Filters options search query'},
//Case Details
AV_CASE_DETAILS_PAGE_LOADED : {name: 'FA_CASE_DETAILS_PAGE_LOADED', description: 'Case details page loaded'},
AV_CASE_DETAILS_PULL_TO_REFRESH : {name: 'FA_CASE_DETAILS_PULL_TO_REFRESH', description: 'Case details page pulled to refresh'},
AV_CASE_DETAILS_CALL_CUSTOMER_CLICKED : {name: 'FA_CASE_DETAILS_CALL_CUSTOMER_CLICKED', description: 'Call customer CTA clicked'},
AV_CASE_DETAILS_OPEN_MAPS_CLICKED : {name: 'FA_CASE_DETAILS_OPEN_MAPS_CLICKED', description: 'Open map CTA clicked'},
AV_CASE_DETAILS_ADD_FEEDBACK_CLICKED : {name: 'FA_CASE_DETAILS_ADD_FEEDBACK_CLICKED', description: 'Add feedback CTA clicked'},
//CALLING BOTTOM SHEET
AV_CALLING_BOTTOMSHEET_LOADED : {name: 'FA_CALLING_BOTTOMSHEET_LOADED', description: 'Calling bottomsheet loaded'},
AV_CALLING_BOTTOMSHEET_CLOSE_CLICKED : {name: 'FA_CALLING_BOTTOMSHEET_CLOSE_CLICKED' , description: 'Close bottomsheet CTA clicked'},
AV_CALLING_BOTTOMSHEET_CALL_VIA_PHONE_CLICKED : {name: 'FA_CALLING_BOTTOMSHEET_CALL_VIA_PHONE_CLICKED', description: 'Call via phone CTA clicked'},
AV_CALLING_BOTTOMSHEET_CALL_VIA_WHATSAPP_CLICKED : {name: 'FA_CALLING_BOTTOMSHEET_CALL_VIA_WHATSAPP_CLICKED', description: 'Call via whatsapp CTA clicked'},
AV_CALLING_BOTTOMSHEET_BEFORE_INTENT_EVENT : {name: 'FA_CALLING_BOTTOMSHEET_BEFORE_INTENT_EVENT' , description: 'Call bottomsheet before intent event'},
//PROFILE PAGE
AV_PROFILE_PAGE_LOADED : {name: 'FA_PROFILE_PAGE_LOADED', description: 'Profile page loaded'},
AV_PROFILE_PAGE_LOGOUT_BUTTON_CLICKED : {name: 'FA_PROFILE_PAGE_LOGOUT_BUTTON_CLICKED', description: 'Logout CTA clicked'},
AV_PROFILE_PAGE_LOGOUT_CONFIRMATION_OPEN : {name: 'FA_PROFILE_PAGE_LOGOUT_CONFIRMATION_OPEN', description: 'Logout confirmation dialog open'},
AV_PROFILE_PAGE_LOGOUT_CONFIRMATION_CLOSED : {name: 'FA_PROFILE_PAGE_LOGOUT_CONFIRMATION_CLOSED', description: 'Logout confirmation dialog closed'},
AV_PROFILE_PAGE_LOGOUT_CONFIRMATION_CLICKED : {name: 'FA_PROFILE_PAGE_LOGOUT_CONFIRMATION_CLICKED', description: 'Logout confirmation clicked'},
AV_PROFILE_PAGE_LOGOUT_API_SUCCESS : {name: 'FA_PROFILE_PAGE_LOGOUT_API_SUCCESS', description: 'Logout API successful'},
AV_PROFILE_PAGE_LOGOUT_API_FAILED : {name: 'FA_PROFILE_PAGE_LOGOUT_API_FAILED', description: 'Logout API failed'},
//FORMS
AV_FORM_LOADED : {name: 'FA_FORM_LOADED', description: 'Form loaded'},
AV_FORM_CLOSE_CLICKED : {name: 'FA_FORM_CLOSE_CLICKED', description: 'Form close CTA clicked'},
AV_FORM_ELEMENT_CHANGED : {name: 'FA_FORM_ELEMENT_CHANGED', description: 'Form element answer changed'},
AV_FORM_NEXT_BUTTON_CLICKED : {name: 'FA_FORM_NEXT_BUTTON_CLICKED', description: 'Form next CTA clicked'},
AV_FORM_BACK_BUTTON_CLICKED : {name: 'FA_FORM_BACK_BUTTON_CLICKED', description: 'Form back CTA clicked'},
AV_FORM_SUMMARY_PAGE_LOADED : {name: 'FA_FORM_SUMMARY_PAGE_LOADED', description: 'Form summary page loaded'},
AV_FORM_SUBMIT_BUTTON_CLICKED : {name: 'FA_FORM_SUBMIT_BUTTON_CLICKED', description: 'Form submit journey CTA clicked'},
AV_FORM_SUBMIT_API_SUCCESS : {name: 'FA_FORM_SUBMIT_API_SUCCESS', description: 'Form submit API successful'},
AV_FORM_SUBMIT_API_FAILED : {name: 'FA_FORM_SUBMIT_API_FAILED', description: 'Form submit API failed'},
// COLLECTIONS
ADDRESSES_CLICKED: {name: 'ADDRESSES_CLICKED', description: 'ADDRESSES_CLICKED'},
ADDRESSES_FAILED : {name: 'ADDRESSES_FAILED', description: 'ADDRESSES_FAILED'},
FA_CASE_DETAILS_INDIVIDUAL_FEEDBACK_CLICKED : {name: 'FA_CASE_DETAILS_INDIVIDUAL_FEEDBACK_CLICKED', description: 'FA_CASE_DETAILS_INDIVIDUAL_FEEDBACK_CLICKED'},
FA_CASE_DETAILS_INDIVIDUAL_FEEDBACK_FAILED : {name: 'FA_CASE_DETAILS_INDIVIDUAL_FEEDBACK_FAILED', description: 'FA_CASE_DETAILS_INDIVIDUAL_FEEDBACK_FAILED'},
FA_COLLECT_MONEY_CLICKED : {name: 'FA_COLLECT_MONEY_CLICKED', description: 'FA_COLLECT_MONEY_CLICKED'},
FA_COLLECT_MONEY_FAILED : {name: 'FA_COLLECT_MONEY_FAILED', description: 'FA_COLLECT_MONEY_FAILED'},
FA_COLLECT_MONEY_NUMBER_CHANGED: {name: 'FA_COLLECT_MONEY_NUMBER_CHANGED', description: 'FA_COLLECT_MONEY_NUMBER_CHANGED'},
FA_COPY_LAN_CLICKED : {name: 'FA_COPY_LAN_CLICKED', description: 'FA_COPY_LAN_CLICKED'},
FA_COPY_LINK_CLICKED: {name: 'FA_COPY_LINK_CLICKED', description: 'FA_COPY_LINK_CLICKED'},
FA_COPY_LINK_FAILED: {name: 'FA_COPY_LINK_FAILED', description: 'FA_COPY_LINK_FAILED'},
FA_PAST_FEEDBACKS_FEEDBACK_CLICKED: {name: 'FA_PAST_FEEDBACKS_FEEDBACK_CLICKED', description: 'FA_PAST_FEEDBACKS_FEEDBACK_CLICKED'},
FA_PAST_FEEDBACKS_FEEDBACK_FAILED : {name: 'FA_PAST_FEEDBACKS_FEEDBACK_FAILED', description: 'FA_PAST_FEEDBACKS_FEEDBACK_FAILED'},
FA_SEND_PAYMENT_LINK: {name: 'FA_SEND_PAYMENT_LINK', description: 'FA_SEND_PAYMENT_LINK'},
FA_SEND_PAYMENT_LINK_FAILED: {name: 'FA_SEND_PAYMENT_LINK_FAILED', description: 'FA_SEND_PAYMENT_LINK_FAILED'},
FA_SEND_PAYMENT_LINK_FAILED_LIMIT_REACHED: {name: 'FA_SEND_PAYMENT_LINK_FAILED_LIMIT_REACHED', description: 'FA_SEND_PAYMENT_LINK_FAILED_LIMIT_REACHED'},
FA_TOTAL_OUTSTANDING_BREAKUP_CLICKED: {name: 'FA_TOTAL_OUTSTANDING_BREAKUP_CLICKED', description: 'FA_TOTAL_OUTSTANDING_BREAKUP_CLICKED'},
FA_VIEW_ADDRESSES_CLICKED: {name: 'FA_VIEW_ADDRESSES_CLICKED', description: 'FA_VIEW_ADDRESSES_CLICKED'},
FA_VIEW_ADDRESSES_FAILED: {name: 'FA_VIEW_ADDRESSES_FAILED', description: 'FA_VIEW_ADDRESSES_FAILED'},
FA_VIEW_EMI_SCHEDULE_CLICKED: {name: 'FA_VIEW_EMI_SCHEDULE_CLICKED', description: 'FA_VIEW_EMI_SCHEDULE_CLICKED'},
FA_VIEW_EMI_SCHEDULE_FAILED: {name: 'FA_VIEW_EMI_SCHEDULE_FAILED', description: 'FA_VIEW_EMI_SCHEDULE_FAILED'},
FA_VIEW_MAP_GEO_CLICKED: {name: 'FA_VIEW_MAP_GEO_CLICKED', description: 'FA_VIEW_MAP_GEO_CLICKED'},
FA_VIEW_MORE: {name: 'FA_VIEW_MORE', description: 'FA_VIEW_MORE'},
FA_VIEW_PAST_FEEDBACKS_CLICKED: {name: 'FA_VIEW_PAST_FEEDBACKS_CLICKED', description: 'FA_VIEW_PAST_FEEDBACKS_CLICKED'},
FA_VIEW_PAST_FEEDBACKS_FAILED: {name: 'FA_VIEW_PAST_FEEDBACKS_FAILED', description: 'FA_VIEW_PAST_FEEDBACKS_FAILED'},
FA_VIEW_PAST_FEEDBACK_NEXT_PAGE_CLICKED: {name: 'FA_VIEW_PAST_FEEDBACK_NEXT_PAGE_CLICKED', description: 'FA_VIEW_PAST_FEEDBACK_NEXT_PAGE_CLICKED'},
FA_VIEW_PAST_FEEDBACK_PREV_PAGE_CLICKED: {name: 'FA_VIEW_PAST_FEEDBACK_PREV_PAGE_CLICKED', description: 'FA_VIEW_PAST_FEEDBACK_PREV_PAGE_CLICKED'},
FA_VIEW_PAST_FEEDBACK_NAVIGATION_PAGE_FAILED: {name: 'FA_VIEW_PAST_FEEDBACK_PREV_PAGE_FAILED', description: 'FA_VIEW_PAST_FEEDBACK_PREV_PAGE_FAILED'},
FA_VIEW_PHOTO_CLICKED: {name: 'FA_VIEW_PHOTO_CLICKED', description: 'FA_VIEW_PHOTO_CLICKED'},
FA_UNIFIED_ENTITY_REQUESTED: {name: 'FA_UNIFIED_ENTITY_REQUESTED', description: 'FA_UNIFIED_ENTITY_REQUESTED'},
FA_UNIFIED_ENTITY_REQUEST_SUCCESS: {name: 'FA_UNIFIED_ENTITY_REQUEST_SUCCESS', description: 'FA_UNIFIED_ENTITY_REQUEST_SUCCESS'},
FA_UNIFIED_ENTITY_REQUEST_FAILED: {name: 'FA_UNIFIED_ENTITY_REQUEST_FAILED', description: 'FA_UNIFIED_ENTITY_REQUEST_FAILED'}
} as const;
export enum MimeType {
'image/jpeg' = 'image/jpeg',
'image/png' = 'image/png'
}
export const ClosedCaseStatusList = [CaseStatuses.CLOSED, CaseStatuses.FORCE_CLOSED, CaseStatuses.EXPIRED];
export const getPrefixBase64Image = (contentType: MimeType) => {
return `data:${contentType};base64,}`;
}
export const PrefixJpegBase64Image = getPrefixBase64Image(MimeType["image/jpeg"]);
export const HEADER_HEIGHT_MAX = 112 + 50;
export const HEADER_HEIGHT_MIN = 70 + 50;
export const HEADER_SCROLL_DISTANCE = (HEADER_HEIGHT_MAX - HEADER_HEIGHT_MIN) * 2;
export const LocalStorageKeys = {
LOAN_ID_TO_VALUE: 'loanIdToValue',
GLOBAL_DOCUMENT_MAP: 'globalDocumentMap',
}
export const SourceTextFocused = new Set([
'Primary Contact',
'Secondary Contact',
]);
export enum TemplateRoutePrefix {
'AV'="av/",
'CC' = "cc/"
}
export const WhatsAppText = '';
export const PermissionsToCheck: Permission[] = [
PermissionsAndroid.PERMISSIONS.CAMERA,
PermissionsAndroid.PERMISSIONS.READ_CONTACTS,
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
PermissionsAndroid.PERMISSIONS.READ_SMS,
PermissionsAndroid.PERMISSIONS.READ_CALL_LOG,
PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,
PermissionsAndroid.PERMISSIONS.READ_CALENDAR,
PermissionsAndroid.PERMISSIONS.GET_ACCOUNTS,
PermissionsAndroid.PERMISSIONS.CALL_PHONE,
PermissionsAndroid.PERMISSIONS.READ_PHONE_STATE,
PermissionsAndroid.PERMISSIONS.SEND_SMS,
PermissionsAndroid.PERMISSIONS.RECEIVE_WAP_PUSH,
];