Repository navigation
Expand file tree
/
Copy pathscripts.js
More file actions
70 lines (61 loc) · 2.16 KB
/
Copy pathscripts.js
File metadata and controls
70 lines (61 loc) · 2.16 KB
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
import data from './data.json' assert {type: 'json'};
const dailyBtn = document.querySelector('#daily-frequency');
const weeklyBtn = document.querySelector('#weekly-frequency');
const monthlyBtn = document.querySelector('#monthly-frequency');
let activitiesSection = document.querySelector('#activities-section');
const bgColors = {
Work : 'hsl(15, 100%, 70%)',
Entertainment : 'hsl(195, 74%, 62%)',
Study: 'hsl(348, 100%, 68%)',
Exercise : 'hsl(145, 58%, 55%)',
Social : 'hsl(264, 64%, 52%)',
'Self Care' : 'hsl(43, 84%, 65%)'
};
function renderCards (freq = 'daily') {
activitiesSection.innerHTML = '';
data.forEach( activity => {
activitiesSection.innerHTML += `
<div class="activity-card">
<div class="card-bg" style="background-color: ${bgColors[activity.title]}">
<img src="./images/icon-${activity.title === 'Self Care' ? 'self-care' : activity.title.toLowerCase()}.svg" alt="${activity.title}-icon">
</div>
<div class="card-data">
<div class="card-data-activity">
<h3>${activity.title}</h3>
<img src="./images/icon-ellipsis.svg" alt="options-img">
</div>
<div class="card-data-hours">
<h2>${activity.timeframes[freq].current}hrs</h2>
<p>Previous - ${activity.timeframes[freq].previous}hrs</p>
</div>
</div>
</div>
`
});
};
//Add and remove [active] class
function updateClass (freq) {
let currentFreq = document.querySelector('#'+freq+'-frequency');
let allFreqs = document.querySelectorAll('.frequencies');
allFreqs.forEach(freq => {
if (freq == currentFreq && !currentFreq.classList.contains('active')) {
currentFreq.classList.add('active');
} else {
freq.classList.remove('active');
}
});
};
renderCards();
// Adding Functionality to the Frequency Buttons
dailyBtn.addEventListener('click',() => {
renderCards('daily');
updateClass('daily');
});
weeklyBtn.addEventListener('click',() => {
renderCards('weekly');
updateClass('weekly');
});
monthlyBtn.addEventListener('click',() => {
renderCards('monthly');
updateClass('monthly');
});