// 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.digitalwalletbutton import com.facebook.react.bridge.ReadableMap import com.facebook.react.module.annotations.ReactModule import com.facebook.react.uimanager.SimpleViewManager import com.facebook.react.uimanager.ThemedReactContext import com.facebook.react.uimanager.ViewManagerDelegate import com.facebook.react.viewmanagers.DigitalWalletButtonManagerDelegate import com.facebook.react.viewmanagers.DigitalWalletButtonManagerInterface import com.olopaysdkreactnative.digitalwalletbutton.events.DigitalWalletButtonClickedEvent @ReactModule(name = DigitalWalletButtonManager.NAME) class DigitalWalletButtonManager : SimpleViewManager(), DigitalWalletButtonManagerInterface { private val mDelegate: ViewManagerDelegate = DigitalWalletButtonManagerDelegate(this) override fun getDelegate(): ViewManagerDelegate = mDelegate companion object { const val NAME = "DigitalWalletButton" } override fun getName(): String { return NAME } override fun createViewInstance(reactContext: ThemedReactContext): DigitalWalletButton { return DigitalWalletButton(reactContext) } override fun getExportedCustomDirectEventTypeConstants(): MutableMap? { return mutableMapOf( DigitalWalletButtonClickedEvent.NAME to mapOf( "registrationName" to DigitalWalletButtonClickedEvent.NAME ) ) } override fun setIsEnabled(view: DigitalWalletButton, value: Boolean) { view.isEnabled = value } override fun setGooglePayConfig(view: DigitalWalletButton, value: ReadableMap?) { view.updateConfig(value) } override fun setApplePayConfig(view: DigitalWalletButton, value: ReadableMap?) { // Apple Pay is not supported on Android, this is a no-op } }