-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
135 lines (120 loc) · 3.8 KB
/
script.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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
const quoteContainer = document.getElementById('quote-container')
const quoteText = document.getElementById('quote')
const authorText = document.getElementById('author')
const twitterBtn = document.getElementById('twitter')
const newQuoteBtn = document.getElementById('new-quote')
const loader = document.getElementById('loader')
let apiQuotes = []
// Loading Spinner Show
function showLoadingSpinner() {
loader.hidden = false
quoteContainer.hidden = true
}
// Remove Loading Spinner
function removeLoadingSpinner() {
quoteContainer.hidden = false
loader.hidden = true
}
// Show New Quote
function newQuote() {
showLoadingSpinner()
// Pick a random quote from apiQuotes array
const quote = apiQuotes[Math.floor(Math.random() * apiQuotes.length)]
// check if author field is blank and replace it with 'Unknown'
if (!quote.author) {
authorText.textContent = 'Unknown'
} else {
authorText.textContent = quote.author
}
// check Quote length to determine styling
if (quote.text > 120) {
quoteText.classList.add('long-quote')
} else {
quoteText.classList.remove('long-quote')
}
// Set Quote, Hide Loader
quoteText.textContent = quote.text
removeLoadingSpinner() // call function removeLoadingSpinner
}
// Get Quotes From API
async function getQuotes() {
showLoadingSpinner()
const apiUrl = 'https://jacintodesign.github.io/quotes-api/data/quotes.json'
try {
const response = await fetch(apiUrl)
apiQuotes = await response.json()
newQuote()
} catch (error) {
// Catch Error Here
}
}
// Tweet Quoter
function tweetQuote() {
const twitterUrl = `https://twitter.com/intent/tweet?text=${quoteText.innerText} - ${authorText.innerText}`
window.open(twitterUrl, '_blank')
}
// Event Listeners
newQuoteBtn.addEventListener('click', newQuote)
twitterBtn.addEventListener('click', tweetQuote)
// On Load
getQuotes()
// const quoteContainer = document.getElementById('quote-container')
// const quoteText = document.getElementById('quote')
// const authorText = document.getElementById('author')
// const twitterBtn = document.getElementById('twitter')
// const newQuoteBtn = document.getElementById('new-quote')
// const loader = document.getElementById('loader')
// let apiQuotes = []
// // Loading Spinner Shown
// function showLoadingSpinner() {
// loader.hidden = false
// quoteContainer.hidden = true
// }
// // Remove Loading Spinner
// function removeLoadingSpinner() {
// quoteContainer.hidden = false
// loader.hidden = true
// }
// // Show New Quote
// function newQuote() {
// showLoadingSpinner()
// // Pick a random quote from apiQuotes array
// const quote = apiQuotes[Math.floor(Math.random() * apiQuotes.length)]
// // Check if Author field is blank and replace it with 'Unknown'
// if (!quote.author) {
// authorText.textContent = 'Unknown'
// } else {
// authorText.textContent = quote.author
// }
// // Check Quote length to determine styling
// if (quote.text.length > 120) {
// quoteText.classList.add('long-quote')
// } else {
// quoteText.classList.remove('long-quote')
// }
// // Set Quote, Hide Loader
// quoteText.textContent = quote.text
// removeLoadingSpinner()
// }
// // Get Quotes From API
// async function getQuotes() {
// showLoadingSpinner()
// const apiUrl = 'https://type.fit/api/quotes'
// try {
// const response = await fetch(apiUrl)
// apiQuotes = await response.json()
// newQuote()
// } catch (error) {
// // Catch Error Here
// }
// }
// // Tweet Quote
// function tweetQuote() {
// const twitterUrl = `https://twitter.com/intent/tweet?text=${quoteText.innerText} - ${authorText.innerText}`
// window.open(twitterUrl, '_blank')
// }
// // Event Listeners
// newQuoteBtn.addEventListener('click', newQuote)
// twitterBtn.addEventListener('click', tweetQuote)
// // On Load
// getQuotes()