Repository navigation
Expand file tree
/
Copy pathscript.js
More file actions
132 lines (113 loc) · 4.01 KB
/
Copy pathscript.js
File metadata and controls
132 lines (113 loc) · 4.01 KB
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
const html = document.querySelector('html')
const focoBt = document.querySelector('.app__card-button--foco')
const curtoBt = document.querySelector('.app__card-button--curto')
const longoBt = document.querySelector('.app__card-button--longo')
const iniciarBt = document.querySelector('.app__card-primary-button')
const botoes = document.querySelectorAll('.app__card-button')
const musicaFocoInput = document.querySelector('#alternar-musica')
const musica = new Audio('./sons/luna-rise-part-one.mp3')
const startPauseBt = document.querySelector('#start-pause')
let tempoDecorridoEmSegundos = 1500
let intervaloId = null
musica.loop = true
const iniciarOuPausarBt = document.querySelector('#start-pause span')
const tempoNaTela = document.querySelector('#timer')
const iconePlayPause = document.querySelector('.app__card-primary-button-icon')
const somBeep = new Audio('./sons/beep.mp3')
const somPlay = new Audio('./sons/play.wav')
const somPause = new Audio('./sons/pause.mp3')
const displayTempo = document.getElementById('timer')
const banner = document.querySelector('.app__image')
const titulo = document.querySelector('.app__title')
const tempoFoco = 1500;
const tempoCurto = 300;
const tempoLongo = 900;
musicaFocoInput.addEventListener('change', () => {
if(musica.paused) {
musica.play()
}
else {
musica.pause()
}
})
focoBt.addEventListener('click', () => {
tempoDecorridoEmSegundos = tempoFoco
alterarContexto('foco')
focoBt.classList.add('active')
})
curtoBt.addEventListener('click', () => {
tempoDecorridoEmSegundos = tempoCurto
alterarContexto('descanso-curto')
curtoBt.classList.add('active')
})
longoBt.addEventListener('click', () => {
tempoDecorridoEmSegundos = tempoLongo
alterarContexto('descanso-longo')
longoBt.classList.add('active')
})
function alterarContexto(contexto) {
mostrarTempo()
botoes.forEach(function(contexto){
contexto.classList.remove('active')
})
html.setAttribute('data-contexto', contexto)
banner.setAttribute('src', `./imagens/${contexto}.png`)
switch (contexto) {
case "foco":
titulo.innerHTML = `
Otimize sua produtividade,<br>
<strong class="app__title-strong">mergulhe no que importa.</strong>
`
break;
case "descanso-curto":
titulo.innerHTML = `
Que tal dar uma respirada?<br>
<strong class="app__title-strong">Faça uma pausa curta.</strong>
`
break;
case "descanso-longo":
titulo.innerHTML = `
Hora de voltar a superfície.<br>
<strong class="app__title-strong">Faça uma pausa longa.</strong>
`
break;
default:
break;
}
}
const contagemRegressiva = () => {
if(tempoDecorridoEmSegundos <= 0) {
somBeep.play()
alert('Tempo finalizado')
zerar()
return
}
tempoDecorridoEmSegundos -= 1
mostrarTempo()
console.log('temporizador: ' + tempoDecorridoEmSegundos)
console.log('Id: ' + intervaloId)
}
startPauseBt.addEventListener('click', iniciarOuPausar)
function iniciarOuPausar() {
if(intervaloId) {
somPause.play()
zerar()
return
}
somPlay.play()
iconePlayPause.setAttribute('src', './imagens/pause.png')
iniciarOuPausarBt.textContent = "Pausar"
intervaloId = setInterval(contagemRegressiva, 1000)
}
function zerar() {
clearInterval(intervaloId)
iniciarOuPausarBt.textContent = "Começar"
iconePlayPause.setAttribute('src', './imagens/play_arrow.png')
intervaloId = null
}
function mostrarTempo() {
const tempo = new Date(tempoDecorridoEmSegundos * 1000)
const tempoFormatado = tempo.toLocaleTimeString('pt-br', {minute: '2-digit', second: '2-digit'})
tempoNaTela.innerHTML = `${tempoFormatado}`
}
mostrarTempo()