Skip to content

Commit

Permalink
validate terms&conditions, make sure button is disabled if they are n…
Browse files Browse the repository at this point in the history
…ot checked
  • Loading branch information
RokPopov committed Sep 30, 2024
1 parent 4d4406a commit bfbdde7
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 2 deletions.
5 changes: 5 additions & 0 deletions Model/Ui/AdyenGenericConfigProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
use Magento\Framework\App\RequestInterface;
use Magento\Framework\UrlInterface;
use Magento\Store\Model\StoreManagerInterface;
use Magento\CheckoutAgreements\Model\AgreementsConfigProvider;

class AdyenGenericConfigProvider implements ConfigProviderInterface
{
Expand All @@ -28,6 +29,7 @@ class AdyenGenericConfigProvider implements ConfigProviderInterface
protected RequestInterface $request;
protected UrlInterface $url;
private Config $adyenConfigHelper;
private AgreementsConfigProvider $agreementsConfigProvider;
/**
* This data member will be passed to the js frontend. It will be used to map the method code (adyen_ideal) to the
* corresponding txVariant (ideal). The txVariant will then be used to instantiate the component
Expand All @@ -45,6 +47,7 @@ public function __construct(
StoreManagerInterface $storeManager,
RequestInterface $request,
UrlInterface $url,
AgreementsConfigProvider $agreementsConfigProvider,
array $txVariants = [],
array $customMethodRenderers = []
) {
Expand All @@ -53,6 +56,7 @@ public function __construct(
$this->storeManager = $storeManager;
$this->request = $request;
$this->url = $url;
$this->agreementsConfigProvider = $agreementsConfigProvider;
$this->txVariants = $txVariants;
$this->customMethodRenderers = $customMethodRenderers;
}
Expand Down Expand Up @@ -88,6 +92,7 @@ public function getConfig(): array
'checkout/onepage/success',
['_secure' => $this->request->isSecure()]
);
$config['payment']['adyen']['agreementsConfig'] = $this->agreementsConfigProvider->getConfig();

return $config;
}
Expand Down
3 changes: 3 additions & 0 deletions view/frontend/web/js/model/adyen-configuration.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ define(
getCustomerStreetLinesEnabled: function () {
return window.checkoutConfig.payment.customerStreetLinesEnabled;
},
getAgreementsConfig: function () {
return window.checkoutConfig.payment.adyen.agreementsConfig;
}
};
},
);
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,16 @@ define(
[
'Magento_Checkout/js/model/quote',
'Adyen_Payment/js/view/payment/method-renderer/adyen-pm-method',
'Adyen_Payment/js/model/adyen-configuration',
'Magento_Checkout/js/model/full-screen-loader',
'jquery'
],
function(
quote,
adyenPaymentMethod,
fullScreenLoader
adyenConfiguration,
fullScreenLoader,
$
) {
return adyenPaymentMethod.extend({
placeOrderButtonVisible: false,
Expand All @@ -27,6 +31,25 @@ define(
let baseComponentConfiguration = this._super();
let paypalConfiguration = Object.assign(baseComponentConfiguration, paymentMethodsExtraInfo[paymentMethod.type].configuration);
paypalConfiguration.showPayButton = true;
let agreementsConfig = adyenConfiguration.getAgreementsConfig();

if (null !== agreementsConfig) {
let self = this;

paypalConfiguration.onInit = function (data, actions) {
actions.disable()

$(document).off('change', '.checkout-agreements input').on('change', '.checkout-agreements input', function () {
self.updatePayPalButton(actions);
});
}

paypalConfiguration.onClick = function (data, actions) {
if(!self.validate()) {
console.error('Agreements configuration failed');
}
}
}

return paypalConfiguration
},
Expand All @@ -38,8 +61,18 @@ define(
handleOnFailure: function(response, component) {
this.isPlaceOrderAllowed(true);
fullScreenLoader.stopLoader();
if (response && response.error) {
console.error('Error details:', response.error);
}
component.handleReject(response);
},
})
updatePayPalButton: function (actions) {
if (this.validate()) {
actions.enable();
} else {
actions.disable();
}
},
})
}
);

0 comments on commit bfbdde7

Please sign in to comment.