-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.js
100 lines (82 loc) · 2.5 KB
/
main.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
const $addButton = document.querySelector('#addButton')
const $text = document.querySelector('#texto')
const $tasks = document.querySelector('#tasks')
let rec = undefined
class item {
constructor(itemName) {
this.createDiv(itemName)
}
createDiv(itemName) {
let taskItem = document.createElement('div')
taskItem.classList.add('task__item')
let input = document.createElement('input')
input.value = itemName
input.disabled = true
input.type = 'text'
let editButton = document.createElement('button')
editButton.classList.add('edit')
let iconPencil = document.createElement('i')
iconPencil.classList.add('fa')
iconPencil.classList.add('fa-edit')
editButton.appendChild(iconPencil)
let speakButton = document.createElement('button')
speakButton.classList.add('speak')
let iconSpeak = document.createElement('i')
iconSpeak.classList.add('fas')
iconSpeak.classList.add('fa-volume-up')
speakButton.appendChild(iconSpeak)
let deleteButton = document.createElement('button')
deleteButton.classList.add('delete')
let iconDelete = document.createElement('i')
iconDelete.classList.add('fas')
iconDelete.classList.add('fa-trash')
deleteButton.appendChild(iconDelete)
$tasks.appendChild(taskItem)
taskItem.appendChild(input)
taskItem.appendChild(editButton)
taskItem.appendChild(speakButton)
taskItem.appendChild(deleteButton)
editButton.addEventListener('click', () => this.edit(input))
input.addEventListener('blur', () => (input.disabled = true))
deleteButton.addEventListener('click', () => this.remove(taskItem))
speakButton.addEventListener('click', () => this.say(input.value))
}
edit(input) {
input.disabled = !input.disabled
input.focus()
}
remove(item) {
$tasks.removeChild(item)
}
say(text) {
speechSynthesis.speak(new SpeechSynthesisUtterance(text))
}
}
const iniciar = (e) => {
console.log(e)
for (i = e.resultIndex; i < e.results.length; i++) {
$text.value = e.results[i][0].transcript
}
}
if (!('webkitSpeechRecognition' in window)) {
alert('Ud. no puede usar la API')
} else {
rec = new webkitSpeechRecognition()
rec.lang = 'es-PE'
rec.continuous = true
rec.interim = true
rec.addEventListener('result', iniciar)
rec.start()
}
new item('Hacer tareas.')
new item('Crear una aplicación reactiva.')
new item('Crear un aplicación con reconocimiento de voz')
const addItem = () => {
if ($text.value === '') {
alert('Diga o escriba su tarea.')
} else {
new item($text.value)
$text.value = ''
}
}
$addButton.addEventListener('click', addItem)