export function initFeedback()

in static/js/page/dokka-template/feedback.js [28:92]


export function initFeedback() {
    const feedback = document.querySelector('.feedback');

    if (feedback) {
        feedback.querySelector('[data-test="feedback-yes"]').addEventListener('click', function(e) {
            e.preventDefault();
            closePopup();
            showThanks();
        });

        feedback.querySelector('[data-test="feedback-no"]').addEventListener('click', function(e) {
            e.preventDefault();
            document.querySelector('.app-feedback-popup').classList.remove('app-feedback-popup_close');
        });
    }

    const form = document.querySelector('.app-feedback-popup form');

    if (form) {
        const fields = form.elements;

        form.querySelector('[data-test="feedback-close"]').addEventListener('click', function(e) {
            e.preventDefault();
            closePopup();
        });

        form.addEventListener('input', function() {
            const emailValid = fields.email.value === '' || fields.email.validity.valid;

            toggleEmail(emailValid);
            toggleSubmit(fields.content.value !== '' && emailValid);
        });

        form.addEventListener('submit', function(e) {
            e.preventDefault();

            const content= document.getElementById('content');
            const articleId = content && content.getAttribute('pageids');
            const titleNode = document.querySelector('h1.cover');
            const title = titleNode && titleNode.textContent;

            window.fetch('https://forms-service.jetbrains.com/feedback', {
                method: 'POST',
                mode: 'cors',
                credentials: 'omit',
                headers: {
                    'content-type': 'application/json',
                },
                body: JSON.stringify({
                    content: fields.content.value || '',
                    name: fields.name.value || '',
                    email: fields.email.value || '',
                    url: document.location.href || '',
                    articleId: articleId || 'core-api',
                    title: title || 'Core API: Untitled',
                    privacyConsentType: ["mkt.general.jb-intention"],
                    formId: 'youtrack-feedback'
                })
            });

            showThanks();
            closePopup();
        });
    }
}