-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
112 lines (89 loc) · 3.81 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// importar funções da livraria do code.org para serem usadas na aplicação
import {
onEvent, setContent
} from './lib/code.org.js';
import {
imprimeExtrato
} from './gui.js';
// definir abaixo quais as variáveis que serão usadas
// perguntar ao usuário quanto ele possui na carteira
let carteira = prompt("QUANTO VOCÊ POSSUI NA CARTEIRA?");
// perguntar ao usuario quanto ele quer economizar
const ECONOMIA = prompt("QUANTO VOCÊ QUER ECONOMIZAR?");
// a variavel extrato irá emitir uma listagem do que foi gasto
// ela deve iniciar vazia para elencar os gastos executaods
let extrato = "";
// definir o valor que cada item custa
const COMIDA = 18.00;
const BRINQUEDO = 13.00;
const CIRCO = 15.00;
// criar variavel de extrato que será alimentada conforme os gastos forem acontecendo
let extractList = []
// incluir o valor informado para gastos na carteira
document.querySelector("#wallet").innerHTML = carteira;
// cada vez que o botão for clicado ele deve:
onEvent("comida", "click", () => { // Arrow function - mesmo que usar "function() {"
carteira -= COMIDA; // reduzir o valor que foi declarado na variável
alert("Você gastou R$" + COMIDA + " com comida!"); // informar ao usuário que ouve uma transação
extrato += "R$" + COMIDA + " gastos com comida \n"; // armazenar em extrato o que está sendo gasto
atualizaCarteiraEalertaUsuario();
atualizaListaComida();
});
onEvent("brinquedo", "click", () => {
carteira -= BRINQUEDO;
alert("Você gastou R$" + BRINQUEDO + " com brinquedo!");
extrato += "R$" + BRINQUEDO + " gastos com brinquedo \n";
atualizaCarteiraEalertaUsuario();
atualizaListaBrinquedo();
});
onEvent("circo", "click", () => {
carteira -= CIRCO;
alert("Você gastou R$" + CIRCO + " com circo!");
extrato += "R$" + CIRCO + " gastos com circo \n";
atualizaCarteiraEalertaUsuario();
atualizaListaCirco();
});
// quando clicar no botão EXTRATO ele vai abrir uma caixa de alerta listando os gastos e informando quando tem de saldo e qual o valor definido como economia.
onEvent("go-extrato", "click", () => {
// alert(extrato + "\n" + "Seu saldo atual é de R$" + carteira + ".\n" + "Sua meta de gastos era de R$" + ECONOMIA);
let listHTML = imprimeExtrato(extractList);
setContent(listHTML, "lista-de-gastos");
var div = document.getElementById("lista-de-gastos");
div.style.display = "block";
})
// criar a variavel que altera o background do BODY para vermelho
const walletColorRed = () => {
document.querySelector("body").style.background = "linear-gradient(to left, #660000, #990000, #ff0000)";
}
function atualizaListaBrinquedo() {
let transaction = {
nome: "Brinquedo",
valor: 13.00,
data: new Date()
};
extractList.push(transaction);
}
function atualizaListaComida() {
let transaction = {
nome: "Comida",
valor: 18.00,
data: new Date()
};
extractList.push(transaction);
}
function atualizaListaCirco() {
let transaction = {
nome: "Circo",
valor: 15.00,
data: new Date()
};
extractList.push(transaction);
}
// função criada automaticamente pelo atalho da lampada e escolhendo a opção "extract function in mode escope" (Ele pega as linhas de código repetidas e cria uma nova função)
function atualizaCarteiraEalertaUsuario() {
document.querySelector("#wallet").innerHTML = carteira; // apresentar o valor restante em cateria deduzido do gasto
if (carteira <= ECONOMIA) { // se o valor em carteira for inferior que a economia pretendida ele vai avisar com a msg e mudar o fundo da tela para vermelho
walletColorRed(); // altera a cor do fundo para vermelho, quando o valor atinge o limite de gastos
alert("ATENÇAO! Você atingiu seu limite de gastos"); // mostra alerta de que o gasto foi atingido
}
}