// 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.paymentcarddetailsview 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.events.CardDetailsChangedEvent import com.olopaysdkreactnative.events.FocusClearedEvent import com.olopaysdkreactnative.events.FocusFieldEvent import com.olopaysdkreactnative.events.FocusReceivedEvent class PaymentCardDetailsViewManager : SimpleViewManager() { override fun getName(): String { return "PaymentCardDetailsView" } override fun createViewInstance(reactContext: ThemedReactContext): PaymentCardDetailsView { return PaymentCardDetailsView(reactContext) } override fun getExportedCustomDirectEventTypeConstants(): MutableMap? { return MapBuilder.of( CardDetailsChangedEvent.Name, MapBuilder.of("registrationName", CardDetailsChangedEvent.Name), FocusFieldEvent.Name, MapBuilder.of("registrationName", FocusFieldEvent.Name), FocusReceivedEvent.Name, MapBuilder.of("registrationName", FocusReceivedEvent.Name), FocusClearedEvent.Name, MapBuilder.of("registrationName", FocusClearedEvent.Name)) } @ReactProp(name = "isEnabled") fun setEnabled(view: PaymentCardDetailsView, enabled: Boolean?) { view.isEnabled = enabled ?: true } @ReactProp(name = "postalCodeEnabled") fun setPostalCodeEnabled(view: PaymentCardDetailsView, enabled: Boolean?) { view.setPostalCodeEnabled(enabled ?: true) } @ReactProp(name = "placeholders") fun setPlaceholders(view: PaymentCardDetailsView, placeholders: ReadableMap?) { if (placeholders == null) return view.setPlaceholders(placeholders) } @ReactProp(name="customErrorMessages") fun setCustomErrorMessages(view: PaymentCardDetailsView, customErrorMessages: ReadableMap?) { if(customErrorMessages == null) return view.setCustomErrorMessages(customErrorMessages) } @ReactProp(name="cardStyles") fun setCardStyles(view: PaymentCardDetailsView, cardStyles:ReadableMap?) { if(cardStyles == null) return view.setCardStyles(cardStyles) } }