Ao clicar no botão de trocar a frase a requisição está sendo feita normalmente e a frase está sendo alterada, porém mesmo com a adição da chamada da função "atualizaTamanhoFrase()" ao final da função "trocaFraseAleatoria()", o número de palavras permanece o da frase incial e nenhum erro é exibido no console. Segue em anexo o código do main.js e o frase.js:
Main.js
$(document).ready(function(){
atualizaTamanhoFrase();
initContadores();
initCronometro();
$("#botao-reiniciar").click(reiniciaJogo);
initMarcadores();
});
var frase = $(".frase").text();
var tamanhoFrase = $("#tamanho-frase");
function atualizaTamanhoFrase(){
let numeroPalavras = frase.split(/\S+/).length - 1;
tamanhoFrase.text(numeroPalavras);
}
var campo = $(".campo-digitacao");
var contadorPalavras = $("#contador-palavras");
var contadorCaracteres = $("#contador-caracteres");
function initContadores() {
campo.on("input", function(){
let conteudo = campo.val();
let qtdPalavras = conteudo.split(/\S+/).length - 1;
contadorPalavras.text(qtdPalavras);
contadorCaracteres.text(conteudo.length);
});
}
function initMarcadores(){
let frase = $(".frase").text();
campo.on("input", function(){
let digitado = campo.val();
let comparavel = frase.substr(0, digitado.length);
if(digitado == comparavel){
campo.addClass("campo-correto");
campo.removeClass("campo-incorreto");
}else{
campo.addClass("campo-incorreto");
campo.removeClass("ccampo-correto");
}
});
}
function initCronometro() {
let tempoRestante = $("#tempo-digitacao").text();
campo.one("focus", function(){
$("#botao-reiniciar").attr("disabled",true);
let id = setInterval(function(){
tempoRestante --;
$("#tempo-digitacao").text(tempoRestante);
if(tempoRestante < 1){
clearInterval(id);
finalizaJogo();
}
}, 1000);
});
}
function finalizaJogo(){
campo.attr("disabled", true);
$("#botao-reiniciar").attr("disabled", false);
campo.toggleClass("campo-desativado");
inserePlacar();
}
var tempoInicial = $("#tempo-digitacao").text();
function reiniciaJogo() {
campo.attr("disabled", false);
campo.val("");
campo.toggleClass("campo-desativado");
campo.removeClass("campo-correto");
campo.removeClass("campo-incorreto");
contadorPalavras.text("0");
contadorCaracteres.text("0");
$("#tempo-digitacao").text(tempoInicial);
initCronometro();
}
Frase.js
$("#botao-frase").click(fraseAleatoria);
function fraseAleatoria(){
$.get("http://localhost:3000/frases", trocaFraseAleatoria);
}
function trocaFraseAleatoria(data){
let frase = $(".frase");
let numeroAleatorio = Math.floor(Math.random() * (data.length - 1));
frase.text(data[numeroAleatorio].texto);
atualizaTamanhoFrase();
}