-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinteractions.js
More file actions
197 lines (170 loc) · 5.82 KB
/
Copy pathinteractions.js
File metadata and controls
197 lines (170 loc) · 5.82 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
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
/// //////////// SPEAKERS SECTION - DYNAMIC HTML ///////////////
const speakersInfo = [
{
img: './images/speakers/speaker1.png',
speakerName: 'Omo Akuba Yalley',
speakerPortfolio: 'Founder, TheBrightDev.com',
speakerBrief: 'Omo is passionate about connecting devs with information needed to make intelligent decisions.',
},
{
img: './images/speakers/speaker2.png',
speakerName: 'Ann-Marie Adjoba',
speakerPortfolio: 'Microverse Alumnus',
speakerBrief: 'Adjoba is a recognized tech consultant and spent 3 years as a Strategic Planning Consultant.',
},
{
img: './images/speakers/speaker3.png',
speakerName: 'Emma K. Dolphyne',
speakerPortfolio: 'Communications Director, C.D.S.T.',
speakerBrief: 'Emma is a communications specialist with more than a decade of experience.',
},
{
img: './images/speakers/speaker4.png',
speakerName: 'Eddie O. Agyeman',
speakerPortfolio: 'Tech Consultant',
speakerBrief: 'Eddie is the recipient of numerous awards for his outstanding leadership.',
},
{
img: './images/speakers/speaker5.png',
speakerName: 'Teresa Agyiriba',
speakerPortfolio: 'Team Lead, Tech Recruiters Hub',
speakerBrief: 'Agyiriba has worked as tech recruiter for five years. She is also founder of TechNewbies.',
},
{
img: './images/speakers/speaker6.png',
speakerName: 'Theo Annor',
speakerPortfolio: 'CTO, Anbuzz Technologies',
speakerBrief: 'Theo has seven years of experience as a Freelance Front End Developer',
},
];
function fetchSpeakers(s) {
const speakerHTML = `
<li class="speaker-card">
<img
class="speaker-image"
src="${s.img}"
alt="name of Speaker"
/>
<div class="speaker-info">
<h4 class="speaker-name">${s.speakerName}</h4>
<p class="speaker-portfolio">${s.speakerPortfolio}</p>
<div class="speaker-info-line"></div>
<p class="speaker-brief">
${s.speakerBrief}
</p>
</div>
</li>`;
return speakerHTML;
}
const speakersList = document.querySelector('.speakers-list');
function addSpeakers() {
let dynamicSpeakers = '';
speakersInfo.forEach((s) => {
dynamicSpeakers += fetchSpeakers(s);
});
speakersList.innerHTML = dynamicSpeakers;
}
if (speakersList !== null) {
speakersList.onresize = addSpeakers();
}
/// //////////// MOBILE MENU INTERACTIONS ///////////////
const hamburgerMenu = document.querySelector('#hmenu');
const menuCloseBtn = document.querySelector('#mobile-menu-close');
const mobileMenu = document.querySelector('.mobile-menu');
const mobileMenuProgram = document.querySelector('.mobile-menu-program');
const mobileMenuSponsors = document.querySelector('.mobile-menu-sponsors');
function openMobileMenu() {
mobileMenu.style.display = 'block';
}
function closeMobileMenu() {
mobileMenu.style.display = 'none';
}
hamburgerMenu.addEventListener('click', openMobileMenu);
menuCloseBtn.addEventListener('click', closeMobileMenu);
if (mobileMenuProgram !== null && mobileMenuSponsors !== null) {
mobileMenuProgram.addEventListener('click', closeMobileMenu);
mobileMenuSponsors.addEventListener('click', closeMobileMenu);
}
/// //////////// ACTIVITIES SECTION -DYNAMIC HTML ///////////////
const activityData = [
{
activityImage: './images/activities/lecture.png',
activityImageAlt: 'lectures icon',
activityName: 'Lecture',
activityBrief: 'Listen to inspiring talks by renowned Software developers.'
},
{
activityImage: './images/activities/interview.png',
activityImageAlt: 'Interviews icon',
activityName: 'Interviews',
activityBrief: 'Mock interviews with recruiters from reputable organizations.'
},
{
activityImage: './images/activities/workshops.png',
activityImageAlt: 'Workshops icon',
activityName: 'Workshops',
activityBrief: 'Workshops on various topics such as how to craft your resume.'
},
{
activityImage: './images/activities/networking.png',
activityImageAlt: 'Networking icon',
activityName: 'Networking',
activityBrief: 'Network with other Micronauts from around the world.'
},
{
activityImage: './images/activities/tour.png',
activityImageAlt: 'Tour icon',
activityName: 'Tour',
activityBrief: 'Explore the beautiful city of Accra, Ghana\'s capital.'
},
]
let activityHTML = ``;
activityData.forEach(function(activity) {
activityHTML =
activityHTML +
`
<li class="activity-list lecture">
<img
class="activity-image"
src="${activity.activityImage}"
alt="${activity.activityImageAlt}"
/>
<h4 class="activity-title">${activity.activityName}</h4>
<p class="activity-brief">
${activity.activityBrief}
</p>
</li>
`
});
const activityLineup = document.querySelector('.activities-lineup');
activityLineup.innerHTML = activityHTML;
/////////////// FORM VALIDATION ///////////////
const form = document.querySelector('.form');
const userName = document.querySelector('name-form');
const email = document.querySelector('email-form');
const setErrorMessage = (element, message) => {
const inputControl = element.parentElement;
const errorDisplay = inputControl.querySelector('.error');
errorDisplay.innerText = message;
inputControl.classList.add('error');
inputControl.classList.remove('success');
}
const setSuccessMessage = (element) => {
const inputControl = element.parentElement;
const errorDisplay = inputControl.querySelector('.error');
errorDisplay.innerText = '';
inputControl.classList.add('success');
inputControl.classList.remove('error');
};
const validateInputs = () => {
const nameValue = userName.value.trim();
const emailVaule = email.value.trim();
if (nameValue === ''){
setErrorMessage(userName, 'Name is Required');
} else {
setSuccessMessage(userName);
}
}
form.addEventListener('submit', (event) => {
event.preventDefault();
})