From a8425396e4a20f020b9d7f9b780a6337a915be9a Mon Sep 17 00:00:00 2001 From: Omer Gery <68545675+OmerGery@users.noreply.github.com> Date: Thu, 16 Nov 2023 09:51:25 +0200 Subject: [PATCH] Fix offline for users that dont have cards inserted (#792) * Update index.js * Update index.js * more generic * test id --------- Co-authored-by: EliFrankel --- examples/client/Locomotion/src/Components/CardRow/index.tsx | 6 ++++-- examples/client/Locomotion/src/pages/ActiveRide/index.js | 4 +++- .../client/Locomotion/src/pages/Payments/cardDetailUtils.ts | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/examples/client/Locomotion/src/Components/CardRow/index.tsx b/examples/client/Locomotion/src/Components/CardRow/index.tsx index 864fe9ac0..65aaab089 100644 --- a/examples/client/Locomotion/src/Components/CardRow/index.tsx +++ b/examples/client/Locomotion/src/Components/CardRow/index.tsx @@ -5,7 +5,7 @@ import { View, Text } from 'react-native'; import moment from 'moment'; import styled, { ThemeContext } from 'styled-components'; import { PaymentIcon } from 'react-native-payment-icons'; -import { paymentMethodToIconMap } from '../../pages/Payments/consts'; +import { PAYMENT_METHODS, paymentMethodToIconMap } from '../../pages/Payments/consts'; import Button from '../Button'; import { capitalizeFirstLetter, getLastFourForamttedShort } from '../../pages/Payments/cardDetailUtils'; import i18n from '../../I18n'; @@ -106,7 +106,9 @@ const CardRow = (paymentMethod: any) => { setIsCardExpired(isExpired); }, 100); }, [paymentMethod]); - const testID = paymentMethod.addNew ? `${paymentMethod.testIdPrefix || ''}AddPaymentMethod` : (`${paymentMethod.testIdPrefix || ''}ChoosePaymentMethod`); + const testID = paymentMethod.addNew + ? `${paymentMethod.testIdPrefix || ''}AddPaymentMethod` + : (`${paymentMethod.testIdPrefix || ''}ChoosePaymentMethod${paymentMethod.id === PAYMENT_METHODS.OFFLINE || paymentMethod.id === PAYMENT_METHODS.CASH ? `_${paymentMethod.id}` : ''}`); const getPaymentMethodIcon = () => { const { brand, id, lastFour } = paymentMethod; diff --git a/examples/client/Locomotion/src/pages/ActiveRide/index.js b/examples/client/Locomotion/src/pages/ActiveRide/index.js index 1dc6c8091..558577eba 100644 --- a/examples/client/Locomotion/src/pages/ActiveRide/index.js +++ b/examples/client/Locomotion/src/pages/ActiveRide/index.js @@ -9,6 +9,7 @@ import { import { Portal } from '@gorhom/portal'; import Config from 'react-native-config'; import { distance, point } from '@turf/turf'; +import { isCardPaymentMethod } from '../../lib/ride/utils'; import networkInfo from '../../services/networkInfo'; import AFToast from '../../Components/Toast'; import * as navigationService from '../../services/navigation'; @@ -242,7 +243,8 @@ const RidePage = ({ mapSettings, navigation }) => { isConfirmPickup initialLocation={requestStopPoints[0]} onButtonPress={(pickupLocation) => { - if (clientHasValidPaymentMethods() || ride.paymentMethodId === PAYMENT_METHODS.CASH) { + const { paymentMethodId } = ride; + if (clientHasValidPaymentMethods() || !isCardPaymentMethod({ id: paymentMethodId })) { requestRide(pickupLocation); } else { changeBsPage(BS_PAGES.NO_PAYMENT); diff --git a/examples/client/Locomotion/src/pages/Payments/cardDetailUtils.ts b/examples/client/Locomotion/src/pages/Payments/cardDetailUtils.ts index a38b708d0..a195e4146 100644 --- a/examples/client/Locomotion/src/pages/Payments/cardDetailUtils.ts +++ b/examples/client/Locomotion/src/pages/Payments/cardDetailUtils.ts @@ -1,3 +1,4 @@ +import { isCardPaymentMethod } from '../../lib/ride/utils'; import { PAYMENT_METHODS } from '../../lib/commonTypes'; export const capitalizeFirstLetter = (string: string) => string?.charAt(0).toUpperCase() + string?.slice(1); @@ -5,7 +6,7 @@ export const getLastFourForamttedShort = (lastFour: string) => `**** ${capitaliz export const getLastFourForamttedLong = (lastFour: string) => `**** **** **** ${capitalizeFirstLetter(lastFour)}`; export const getPaymentMethod = (paymentMethodId: string) => { - if ([PAYMENT_METHODS.CASH, PAYMENT_METHODS.OFFLINE].includes(paymentMethodId)) { + if (!isCardPaymentMethod({ id: paymentMethodId })) { return paymentMethodId; } return PAYMENT_METHODS.CARD;