-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
62 lines (52 loc) · 1.72 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
const containerQuote = document.querySelector(".quote-container");
const loader = document.querySelector(".loader");
const labelQuoteText = document.querySelector(".quote-text");
const labelAuthor = document.querySelector(".author");
const btnTweet = document.querySelector(".btn-tweeter");
const btnNewQuote = document.querySelector(".btn-new-tweet");
let quotes = [];
function displayLoader() {
containerQuote.hidden = true;
loader.hidden = false;
}
function hideLoader() {
loader.hidden = true;
containerQuote.hidden = false;
}
async function loadQuotes() {
displayLoader();
const apiUrl = "https://jacintodesign.github.io/quotes-api/data/quotes.json";
try {
const response = await fetch(apiUrl);
const data = await response.json();
quotes = data;
getRandomQuote();
} catch (err) {
console.log(err);
}
}
function getRandomQuote() {
const quote = quotes[Math.floor(Math.random() * quotes.length)];
labelQuoteText.textContent = quote.text;
labelAuthor.textContent = `~ ${quote.author ?? "Unknown"}`;
if (quote.text.length > 240) {
labelQuoteText.classList.add("quote-large-text");
} else if (quote.text.length > 120) {
labelQuoteText.classList.add("quote-mid-text");
} else {
labelQuoteText.classList.remove("quote-large-text");
labelQuoteText.classList.remove("quote-mid-text");
}
hideLoader();
}
// Tweet Quote
function tweetQuote() {
const quote = labelQuoteText.innerText;
const author = labelAuthor.innerText;
const twitterUrl = `https://twitter.com/intent/tweet?text=${quote} - ${author}`;
window.open(twitterUrl, "_blank");
}
// event handlers
btnNewQuote.addEventListener("click", getRandomQuote);
btnTweet.addEventListener("click", tweetQuote);
loadQuotes();