@@ -3,6 +3,41 @@ import React, { Component } from 'react';
3
3
import falta1min from '../conteudo/audios-falta1min' ;
4
4
import fimdotempo from '../conteudo/audios-fimdotempo' ;
5
5
6
+ const ls1minkey = 'vaidartempo_1minaudios' ;
7
+ const lstimeupkey = 'vaidartempo_timeupaudios' ;
8
+
9
+ // Pega do LS o array de áudios ainda disponíveis para tocar. Se não existir, inclui todos os áudios.
10
+ const allAudios1Min = falta1min . map ( ( audio ) => audio . substring ( 26 ) . split ( '.' ) [ 0 ] ) ;
11
+ let audiosOf1minRemaining = JSON . parse ( localStorage . getItem ( ls1minkey ) ) || allAudios1Min ;
12
+ if ( audiosOf1minRemaining . length < 1 ) audiosOf1minRemaining = allAudios1Min ;
13
+
14
+ const allAudiosTimeup = fimdotempo . map ( ( audio ) => audio . substring ( 26 ) . split ( '.' ) [ 0 ] ) ;
15
+ let audiosOfTimeupRemaining = JSON . parse ( localStorage . getItem ( lstimeupkey ) ) || allAudiosTimeup ;
16
+ if ( audiosOfTimeupRemaining . length < 1 ) audiosOfTimeupRemaining = allAudiosTimeup ;
17
+
18
+ // Sorteia um número limitado as opções do tamanho dos arrays (pa = primeiro audio, sa = segundo audio)
19
+ const a1Random = Math . floor ( Math . random ( ) * audiosOf1minRemaining . length ) ;
20
+ const a2Random = Math . floor ( Math . random ( ) * audiosOfTimeupRemaining . length ) ;
21
+
22
+ const getAudio = ( audiosArray , audiosRemaining , audioPicked ) => {
23
+ const audioSearched = audiosRemaining [ audioPicked ] ;
24
+ const audioFile = audiosArray . filter ( ( a ) => a . includes ( audioSearched ) ) [ 0 ] ;
25
+ return audioFile ;
26
+ } ;
27
+
28
+ const saveToLocal = ( audiosRemaining , audioPicked , key ) => {
29
+ audiosRemaining . splice ( audioPicked , 1 ) ;
30
+ localStorage . setItem ( key , JSON . stringify ( audiosRemaining ) ) ;
31
+ }
32
+
33
+ // Pega o áudio sorteado
34
+ let a1Picked = getAudio ( falta1min , audiosOf1minRemaining , + a1Random )
35
+ let a2Picked = getAudio ( fimdotempo , audiosOfTimeupRemaining , + a2Random )
36
+
37
+ // Cria um áudio pra ele
38
+ const a1File = new Audio ( a1Picked ) ;
39
+ const a2File = new Audio ( a2Picked ) ;
40
+
6
41
export default class Timer extends Component {
7
42
state = {
8
43
minutos : 0 ,
@@ -15,18 +50,7 @@ export default class Timer extends Component {
15
50
16
51
componentDidMount ( ) {
17
52
const { minutos, segundos } = this . props ;
18
-
19
- // Sorteia um número limitado as opções do tamanho dos arrays (pa = primeiro audio, sa = segundo audio)
20
- const paRandom = Math . floor ( Math . random ( ) * falta1min . length ) ;
21
- const saRandom = Math . floor ( Math . random ( ) * fimdotempo . length ) ;
22
-
23
- // Pega o áudio sorteado
24
- const paSorteado = falta1min [ paRandom ] ;
25
- const saSorteado = fimdotempo [ saRandom ] ;
26
-
27
- // Cria um áudio pra ele
28
- const paFile = new Audio ( paSorteado ) ;
29
- const saFile = new Audio ( saSorteado ) ;
53
+
30
54
this . setState ( {
31
55
minutos,
32
56
segundos,
@@ -38,24 +62,22 @@ export default class Timer extends Component {
38
62
segundos : segundos - 1
39
63
} ) )
40
64
}
41
- if ( minutos === 1 && segundos === 20 ) {
42
- this . thankYou ( paSorteado , saSorteado ) ;
65
+ if ( minutos === 1 && segundos === 29 ) {
66
+ this . thankYou ( a1Picked , a2Picked ) ;
43
67
}
44
68
if ( minutos === 1 && segundos === 2 ) {
45
- paFile . play ( ) ;
69
+ a1File . play ( ) ;
70
+ saveToLocal ( audiosOf1minRemaining , + a1Random , ls1minkey ) ;
46
71
this . setState ( {
47
72
checkUserOne : true ,
48
73
} )
49
- if ( ! this . state . showUsers ) {
50
- console . log ( 'execute' )
51
- }
52
74
}
53
75
if ( minutos === 0 && segundos === 2 ) {
54
- saFile . play ( ) ;
76
+ a2File . play ( ) ;
77
+ saveToLocal ( audiosOfTimeupRemaining , + a2Random , lstimeupkey ) ;
55
78
this . setState ( {
56
79
checkUserTwo : true ,
57
80
} )
58
- window . alert ( 'Lembrar de colocar a aula pra gravar!' ) ;
59
81
}
60
82
if ( segundos === 0 ) {
61
83
if ( minutos === 0 ) {
0 commit comments