*/ namespace Adyen\Payment\Model\Ui; use Adyen\Payment\Helper\Data; use Magento\Vault\Api\Data\PaymentTokenInterface; use Magento\Vault\Model\Ui\TokenUiComponentInterface; use Magento\Vault\Model\Ui\TokenUiComponentProviderInterface; use Magento\Vault\Model\Ui\TokenUiComponentInterfaceFactory; use Magento\Framework\UrlInterface; class TokenGooglePayUiComponentProvider implements TokenUiComponentProviderInterface { /** * @var TokenUiComponentInterfaceFactory */ private $componentFactory; /** * @var Data */ private $adyenHelper; /** * @param TokenUiComponentInterfaceFactory $componentFactory * @param UrlInterface $urlBuilder */ public function __construct( TokenUiComponentInterfaceFactory $componentFactory, Data $adyenHelper ) { $this->componentFactory = $componentFactory; $this->adyenHelper = $adyenHelper; } /** * Get UI component for token * * @param PaymentTokenInterface $paymentToken * @return TokenUiComponentInterface */ public function getComponentForToken(PaymentTokenInterface $paymentToken) { $details = json_decode($paymentToken->getTokenDetails() ?: '{}', true); $details['icon'] = $this->adyenHelper->getVariantIcon($details['type']); $component = $this->componentFactory->create( [ 'config' => [ 'code' => AdyenGooglePayConfigProvider::GOOGLE_PAY_VAULT_CODE, TokenUiComponentProviderInterface::COMPONENT_DETAILS => $details, TokenUiComponentProviderInterface::COMPONENT_PUBLIC_HASH => $paymentToken->getPublicHash() ], 'name' => 'Adyen_Payment/js/view/payment/method-renderer/vault' ] ); return $component; } }