Quando faço alguma ação de transação, depósito etc, para de funcionar
import { Transacao } from "../types/Transacao.js";
import { TipoTransacao } from "../types/TipoTransacao.js";
import { atualizarSaldo, getSaldo } from "./saldo-component.js";
const elementoFormulario = document.querySelector(".block-nova-transacao form") as HTMLFormElement;
elementoFormulario.addEventListener("submit", function (event) {
event.preventDefault();
if (!elementoFormulario.checkValidity()) {
alert("Preencha todos os campos da transação!");
return;
}
const inputTipoTransacao = elementoFormulario.querySelector("#tipoTransacao") as HTMLSelectElement;
const inputValor = elementoFormulario.querySelector("#valor") as HTMLInputElement;
const inputData = elementoFormulario.querySelector("#data") as HTMLInputElement;
let tipoTransacao: TipoTransacao = inputTipoTransacao.value as TipoTransacao;
let valor: number = inputValor.valueAsNumber;
let data: Date = new Date(inputData.value);
let saldo: number = getSaldo();
if (tipoTransacao == "Depósito") {
saldo += valor;
} else if (tipoTransacao == TipoTransacao.TRANSFERENCIA || tipoTransacao == TipoTransacao.PAGAMENTO_BOLETO) {
saldo -= valor;
} else {
alert("Tipo de Transação é inválida!");
return;
}
atualizarSaldo(saldo);
const novaTransacao: Transacao = {
tipoTransacao: tipoTransacao,
valor: valor,
data: data,
};
console.log(novaTransacao);
elementoFormulario.reset();
});
import { formatarData, formatarMoeda } from "../utils/fomatters.js";
import { FormatoData } from "../types/FormatoData.js";
let saldo:number = 3000;
const elementoSaldo = document.querySelector(".saldo-valor .valor") as HTMLElement;
const elementoDataAcesso = document.querySelector(".block-saldo time") as HTMLElement;
if (!elementoDataAcesso != null) {
const dataAcesso: Date = new Date();
elementoDataAcesso.textContent = formatarData(dataAcesso, FormatoData.DIA_SEMANA_DIA_MES_ANO);
}
export function getSaldo(): number {
return saldo;
}
atualizarSaldo(saldo);
export function atualizarSaldo(novoSaldo: number): void {
saldo = novoSaldo;
if (elementoSaldo != null) {
elementoSaldo.textContent = formatarMoeda(saldo);
}
}
import { FormatoData } from "../types/FormatoData";
export function formatarMoeda (valor: number) : string {
return valor.toLocaleString("pt-br", {style: "currency", currency: "BRL"})
}
export function formatarData (data: Date, formato: FormatoData = FormatoData.PADRAO) : string {
if (formato === FormatoData.DIA_SEMANA_DIA_MES_ANO) {
return data.toLocaleString("pt-br", {
weekday: "long",
day: "2-digit",
month: "2-digit",
year: "numeric"
});
} else if (formato === FormatoData.DIA_MES ) {
return data.toLocaleDateString("pt-br" , {day: "2-digit", month: "2-digit"})
}
return data.toLocaleDateString("pt-br");
}
import "./components/nova-transacao-component";
import "./components/saldo-component";