// Copyright © 2022 Olo Inc. All rights reserved. // This software is made available under the Olo Pay SDK License (See LICENSE.md file) package com.olopaysdkreactnative.paymentcardcvvview import com.facebook.react.bridge.ReadableMap import com.facebook.react.common.MapBuilder import com.facebook.react.uimanager.SimpleViewManager import com.facebook.react.uimanager.ThemedReactContext import com.facebook.react.uimanager.annotations.ReactProp import com.olopaysdkreactnative.paymentcardcvvview.events.CvvDetailsChangedEvent import com.olopaysdkreactnative.paymentcardcvvview.events.CvvFocusClearedEvent import com.olopaysdkreactnative.paymentcardcvvview.events.CvvFocusReceivedEvent class PaymentCardCvvViewManager : SimpleViewManager() { override fun getName(): String { return "PaymentCardCvvView" } override fun createViewInstance(reactContext: ThemedReactContext): PaymentCardCvvView { return PaymentCardCvvView(reactContext) } override fun getExportedCustomDirectEventTypeConstants(): MutableMap? { return MapBuilder.of( CvvDetailsChangedEvent.Name, MapBuilder.of("registrationName", CvvDetailsChangedEvent.Name), CvvFocusReceivedEvent.Name, MapBuilder.of("registrationName", CvvFocusReceivedEvent.Name), CvvFocusClearedEvent.Name, MapBuilder.of("registrationName", CvvFocusClearedEvent.Name)) } @ReactProp(name = "isEnabled") fun setEnabled(view: PaymentCardCvvView, enabled: Boolean?) { view.isEnabled = enabled ?: true } @ReactProp(name = "placeholder") fun setPlaceholder(view: PaymentCardCvvView, placeholder: String?) { if(placeholder == null) return view.setPlaceholder(placeholder) } @ReactProp(name="customErrorMessages") fun setCustomErrorMessages(view: PaymentCardCvvView, customErrorMessages: ReadableMap?) { if(customErrorMessages == null) { return } view.setCustomErrorMessages(customErrorMessages) } @ReactProp(name="cvvStyles") fun setCvvStyles(view: PaymentCardCvvView, cardStyles: ReadableMap?) { if(cardStyles == null) { return } view.setCvvStyles(cardStyles) } }