2020-04-02 08:38:00 +03:00
|
|
|
class Renderer {
|
2020-04-30 15:28:48 +03:00
|
|
|
constructor(creditCardRenderer, defaultConfig) {
|
2020-04-10 10:34:49 +03:00
|
|
|
this.defaultConfig = defaultConfig;
|
2020-04-30 15:28:48 +03:00
|
|
|
this.creditCardRenderer = creditCardRenderer;
|
2020-04-10 10:34:49 +03:00
|
|
|
}
|
|
|
|
|
2020-04-30 15:28:48 +03:00
|
|
|
render(wrapper, hostedFieldsWrapper, contextConfig) {
|
2020-04-09 12:57:21 +03:00
|
|
|
if (this.isAlreadyRendered(wrapper)) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2020-04-10 10:34:49 +03:00
|
|
|
const style = this.defaultConfig.button.style;
|
|
|
|
paypal.Buttons({
|
|
|
|
style,
|
|
|
|
...contextConfig,
|
|
|
|
}).render(wrapper);
|
2020-04-30 15:28:48 +03:00
|
|
|
|
|
|
|
this.creditCardRenderer.render(hostedFieldsWrapper, contextConfig);
|
|
|
|
}
|
2020-04-02 08:38:00 +03:00
|
|
|
|
2020-04-09 12:57:21 +03:00
|
|
|
isAlreadyRendered(wrapper) {
|
|
|
|
return document.querySelector(wrapper).hasChildNodes();
|
|
|
|
}
|
|
|
|
|
2020-04-09 12:23:44 +03:00
|
|
|
hideButtons(element) {
|
2020-04-30 15:44:15 +03:00
|
|
|
const domElement = document.querySelector(element);
|
|
|
|
if (! domElement ) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
domElement.style.display = 'none';
|
|
|
|
return true;
|
2020-04-02 08:38:00 +03:00
|
|
|
}
|
|
|
|
|
2020-04-09 12:23:44 +03:00
|
|
|
showButtons(element) {
|
2020-04-30 15:44:15 +03:00
|
|
|
const domElement = document.querySelector(element);
|
|
|
|
if (! domElement ) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
domElement.style.display = 'block';
|
|
|
|
return true;
|
2020-04-02 08:38:00 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default Renderer;
|