formWidget.jsx
33 lines
| 1 | import renderDonationForm from '@givewp/src/DonationForms/Blocks/DonationFormBlock/resources/app/renderDonationForm'; |
| 2 | |
| 3 | /** |
| 4 | * @since 4.7.1 |
| 5 | */ |
| 6 | export default class GiveFormWidget extends elementorModules.frontend.handlers.Base { |
| 7 | render() { |
| 8 | const roots = document.querySelectorAll(`[data-id="${this.getID()}"] .root-data-givewp-embed`); |
| 9 | |
| 10 | roots?.forEach((root) => { |
| 11 | renderDonationForm(root); |
| 12 | }); |
| 13 | } |
| 14 | |
| 15 | onInit() { |
| 16 | this.render(); |
| 17 | } |
| 18 | } |
| 19 | |
| 20 | /** |
| 21 | * Register JS Handler |
| 22 | * |
| 23 | * When Elementor frontend was initiated, and the widget is ready, register the widet |
| 24 | * JS handler. |
| 25 | */ |
| 26 | window.addEventListener('elementor/frontend/init', () => { |
| 27 | const addHandler = ($element) => { |
| 28 | elementorFrontend.elementsHandler.addHandler(GiveFormWidget, {$element}); |
| 29 | }; |
| 30 | |
| 31 | elementorFrontend.hooks.addAction('frontend/element_ready/Give Form.default', addHandler); |
| 32 | }); |
| 33 |