@@ -4,6 +4,7 @@ open Utils
44@react.component
55let make = (~cvcProps : CardUtils .cvcProps , ~paymentType : CardThemeType .mode ) => {
66 let {config , localeString } = Recoil .useRecoilValueFromAtom (configAtom )
7+ let emitter = SubscriptionEventHooks .useSubscriptionEventEmitter ()
78 let {innerLayout } = config .appearance
89 let keys = Recoil .useRecoilValueFromAtom (keys )
910 let customPodUri = Recoil .useRecoilValueFromAtom (customPodUri )
@@ -21,6 +22,7 @@ let make = (~cvcProps: CardUtils.cvcProps, ~paymentType: CardThemeType.mode) =>
2122 setCvcError ,
2223 } = cvcProps
2324 let isCvcEmpty = cvcNumber === ""
25+ let isCvcComplete = cvcNumber -> String .length >= 3
2426 let compressedLayoutStyleForCvcError =
2527 innerLayout === Compressed && cvcError -> String .length > 0 ? "!border-l-0" : ""
2628
@@ -133,20 +135,25 @@ let make = (~cvcProps: CardUtils.cvcProps, ~paymentType: CardThemeType.mode) =>
133135 )
134136 }, (cvcNumber , keys , paymentType , loggerState , customPodUri , redirectionFlags , localeString ))
135137
136- React .useEffect0 (() => {
137- messageParentWindow ([
138- ( "ready" , true -> JSON . Encode . bool ) ,
139- ( " elementType" , CardThemeType .getPaymentModeToString (paymentType ) -> JSON . Encode . string ),
140- ] )
138+ React .useEffect (() => {
139+ SubscriptionEventHooks . emitReady (
140+ ~ iframeId = keys . iframeId ,
141+ ~ elementType = CardThemeType .getPaymentModeToString (paymentType ),
142+ )
141143 None
142- })
144+ }, ( keys . iframeId , paymentType ) )
143145
144146 React .useEffect (() => {
145147 let cvcInfoDict = [("isCvcEmpty" , isCvcEmpty -> JSON .Encode .bool )]-> Dict .fromArray
146148 Utils .messageParentWindow ([("cvcInfo" , cvcInfoDict -> JSON .Encode .object )])
147149 None
148150 }, [isCvcEmpty ])
149151
152+ React .useEffect (() => {
153+ emitter .emitCvcStatus (~iframeId = keys .iframeId , ~isCvcEmpty , ~isCvcComplete )
154+ None
155+ }, (isCvcEmpty , isCvcComplete , keys .iframeId ))
156+
150157 <PaymentInputField
151158 fieldName = localeString .cvcTextLabel
152159 isValid = isCVCValid
0 commit comments