HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/netwerkbrabant.komma.pro/resources/assets/js/site/mollieFormHandler.js
import { isset } from "../global/helpers";

/* ==========================================================================
    Mollie Form handler

    This handler hides the form and shows a create payment message
 ========================================================================== */

import ScrollToHandler from "./scrollToHandler";

const MollieFormHandler = {

    mollieForms: [],
    mollieLoadingMessage: null,
    scrollToMollieLoading: 400,

    init : function()
    {
        // Get the form inputs
        MollieFormHandler.mollieForms = document.querySelectorAll('.mollie-form');
        MollieFormHandler.mollieLoadingMessage = document.querySelector('.mollie-loading');


        const mollieFormsLength = MollieFormHandler.mollieForms.length;
        for(let i = 0; i < mollieFormsLength; i++){
            MollieFormHandler.interveneSubmit(MollieFormHandler.mollieForms[i]);
        }
    },

    interveneSubmit: function(mollieForm)
    {
        // Check that the form is really a form
        if(mollieForm.tagName === 'FORM'){
            mollieForm.addEventListener('submit', function(event){
                event.preventDefault();

                // Disable the form
                mollieForm.classList.add('is-disabled');

                // Show loading message if append to the view
                if(isset(MollieFormHandler.mollieLoadingMessage)){
                    MollieFormHandler.mollieLoadingMessage.classList.add('is-visible');

                    ScrollToHandler.duration = MollieFormHandler.scrollToMollieLoading;
                    ScrollToHandler.prepareScrollTo(MollieFormHandler.mollieLoadingMessage.id, false);
                }

                setTimeout(function () {

                    // Submit the form as normal
                    mollieForm.submit();

                // Wait till the mollie loading screen is positioned
                }, MollieFormHandler.scrollToMollieLoading);

            });
        }

    },
};

export default MollieFormHandler;