@@ -27,6 +27,8 @@ let useCardForm = (~logger, ~paymentType) => {
2727 let expiryRef = React .useRef (Nullable .null )
2828 let cvcRef = React .useRef (Nullable .null )
2929 let zipRef = React .useRef (Nullable .null )
30+ let isCoBadgedCardDetectedOnce = React .useRef (false )
31+ let prevCardBrandRef = React .useRef ("" )
3032
3133 let (isCardValid , setIsCardValid ) = React .useState (_ => None )
3234 let (isExpiryValid , setIsExpiryValid ) = React .useState (_ => None )
@@ -84,10 +86,13 @@ let useCardForm = (~logger, ~paymentType) => {
8486 }, [showPaymentMethodsScreen ])
8587
8688 React .useEffect (() => {
87- setCvcNumber (_ => "" )
88- setCardExpiry (_ => "" )
89- setIsExpiryValid (_ => None )
90- setIsCVCValid (_ => None )
89+ if ! isCoBadgedCardDetectedOnce .current {
90+ setCvcNumber (_ => "" )
91+ setCardExpiry (_ => "" )
92+ setIsExpiryValid (_ => None )
93+ setIsCVCValid (_ => None )
94+ }
95+ prevCardBrandRef .current = cardBrand
9196 None
9297 }, [cardBrand ])
9398
@@ -120,7 +125,7 @@ let useCardForm = (~logger, ~paymentType) => {
120125 setDisplayPincode (_ => false )
121126 }
122127 setCardNumber (_ => card )
123- if card -> String .length == 0 {
128+ if card -> String .length == 0 && prevCardBrandRef . current !== "" {
124129 setCvcNumber (_ => "" )
125130 setCardExpiry (_ => "" )
126131 setIsExpiryValid (_ => None )
@@ -293,7 +298,7 @@ let useCardForm = (~logger, ~paymentType) => {
293298 }, [cardNumber ])
294299
295300 let icon = React .useMemo (() => {
296- <CardSchemeComponent cardNumber paymentType cardBrand setCardBrand />
301+ <CardSchemeComponent cardNumber paymentType cardBrand setCardBrand isCoBadgedCardDetectedOnce />
297302 }, (cardType , paymentType , cardBrand , cardNumber ))
298303
299304 let cardProps : CardUtils .cardProps = {
0 commit comments