PageSourceSearch

https://www.cursosrme.net.br/wp-content/themes/rme_cursos/assets/js/perfil-check.js?ver=3965

js cursosrme.net.br collected 2026-09-29 13:17:27 UTC 3,101 bytes, 65 lines download raw bytes

1// Verifica campos obrigatórios do perfil após login e exibe aviso se houver pendências.
2// Quem decide ONDE isso roda é custom-theme-assets.php: apenas na página do curso ou
3// da aula, e só quando o curso NÃO está aberto para perfil incompleto. Em curso aberto
4// a cobrança é feita pelo formulário parcial antes da primeira aula.
5// A lista de campos vem de perfil.schema.js — não duplicar aqui.
6
7(function () {
8
9    function hasPendingFields(perfil) {
10        const missing = perfil_campos_faltando(perfil, perfil_schema.required);
11        if (missing.length) {
12            //console.log('[perfil-check] campos faltando:', missing);
13        }
14        return missing.length > 0;
15    }
16
17    // A variante (check verde sem CPF, exclamação laranja com CPF) é do helper do
18    // primeiro acesso; sem ele, abre na variante padrão do markup.
19    function showIncompleteModal(perfil) {
20        const helpers = window.RMEPrimeiroAcesso;
21        if (helpers && typeof helpers.exibir_modal_perfil === 'function') {
22            helpers.exibir_modal_perfil(perfil);
23            return;
24        }
25        const overlay = document.querySelector('.profile-incomplete-overlay');
26        if (overlay) overlay.classList.add('active');
27    }
28
29    // ─────────────────────────────────────────────────────────────────────────
30    // [DEBUG-MODAL] TEMPORÁRIO — remover antes de subir para produção.
31    // ?perfil_incompleto=true força a exibição do modal sem precisar zerar o
32    // perfil na API só para conferir o layout. Não valida login nem perfil.
33    // Para remover: apague este bloco e a chamada marcada com [DEBUG-MODAL].
34    function forcarModalDebug() {
35        if (window.location.search.indexOf('perfil_incompleto=true') === -1) return false;
36
37        console.warn('[perfil-check] modal forçado via querystring (debug)');
38        showIncompleteModal();
39
40        return true;
41    }
42    // ─────────────────────────────────────────────────────────────────────────
43
44    document.addEventListener('DOMContentLoaded', function () {
45        if (forcarModalDebug()) return; // [DEBUG-MODAL]
46
47        if (typeof firebase === 'undefined' || typeof vAPI_cursos === 'undefined') return;
48        if (typeof perfil_schema === 'undefined') return;
49
50        firebase.auth().onAuthStateChanged(function (user) {
51            if (!user) return;
52
53            user.getIdToken().then(function (accessToken) {
54                vAPI_cursos.get_perfil(accessToken).then(function (perfil) {
55                    if (hasPendingFields(perfil)) {
56                        showIncompleteModal(perfil);
57                    }
58                }).catch(function () {
59                    // Falha silenciosa: não exibir modal se a API estiver indisponível
60                });
61            });
62        });
63    });
64
65})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.