-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcopyOfIndex.js
74 lines (60 loc) · 2.33 KB
/
copyOfIndex.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
/**** Importing Firebase Need ****/
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-app.js"
import { getDatabase, ref, push, onValue, remove } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-database.js"
import { animation } from './animation.js'
const appSettings = { databaseURL: "https://beargroceries-default-rtdb.firebaseio.com/" };
const app = initializeApp(appSettings);
const database = getDatabase(app);
const shoppingListInDB = ref(database, "shoppingList");
/**** Front End Element Selection ****/
const inputFieldEl = document.getElementById("input-field");
const addButtonEl = document.getElementById("add-button");
const shoppingListEl = document.getElementById("shopping-list");
const errorEl = document.getElementById('error');
// Event Listener For "Add To Cart" Btn.
addButtonEl.addEventListener("click", function() {
let inputValue = inputFieldEl.value;
if (inputValue != ''){
push(shoppingListInDB, inputValue);
clearInputFieldEl();
errorEl.classList.remove('active');
}else{
errorEl.classList.add('active');
}
})
//DB Function to update items inside database to the front end
onValue(shoppingListInDB, function(snapshot){
if(snapshot.exists()){
//Object.entries -> grabs both object key & values converting them into an array.
let shoppingListItems = Object.entries(snapshot.val());
clearShoppingList();
for(let i = 0; i < shoppingListItems.length; i++){
let currentItem = shoppingListItems[i];
appendItemToShoppingListEl(currentItem);
}
}else{
shoppingListEl.innerHTML = "No items here... yet" ;
}
animation()
})
// Clears the shopping list
function clearShoppingList(){
shoppingListEl.innerHTML = '';
}
// Clears the input element
function clearInputFieldEl() {
inputFieldEl.value = "";
}
// Add input values to the list
function appendItemToShoppingListEl(item) {
let itemID = item[0];
let itemValue = item[1];
let newEl = document.createElement('li');
newEl.textContent = itemValue;
newEl.classList.add('items');
newEl.addEventListener('click', function(){
let exactLocationOfItemInDB = ref(database, `shoppingList/${itemID}`);
remove(exactLocationOfItemInDB);
})
shoppingListEl.append(newEl);
}