nav.js
1 const intTab = document.getElementById('int-tab'); 2 const rejTab = document.getElementById('rej-tab'); 3 const allTab = document.getElementById('all-tab'); 4 5 const allJobs = document.getElementById('all-jobs'); 6 const allJobsChildren = allJobs.children; 7 8 const noJobs = document.getElementById('no-jobs'); 9 10 const intJobs = document.getElementsByClassName('int-job'); 11 const rejJobs = document.getElementsByClassName('rej-job'); 12 13 const totalCount = document.getElementById('totalCount'); 14 const intCount = document.getElementById('interviewCount'); 15 const rejCount = document.getElementById('rejectCount'); 16 const tabCount = document.getElementById('tabCount'); 17 18 const tabs = [allTab, intTab, rejTab]; 19 20 const counts = [totalCount, intCount, rejCount]; 21 22 const statusClasses = [null, 'int-job', 'rej-job']; 23 24 function tabFocus(tab) { 25 tab.classList.remove('bg-white'); 26 tab.classList.add('bg-blue-500', 'text-white'); 27 } 28 29 function tabUnfocus(tab) { 30 tab.classList.remove('bg-blue-500', 'text-white'); 31 tab.classList.add('bg-white'); 32 } 33 34 function tabClick(tab, count, statusClass) { 35 36 for (t of tabs) { 37 if (t.classList.contains("bg-blue-500")) { 38 tabUnfocus(t); 39 break; 40 } 41 }; 42 43 tabFocus(tab); 44 45 let numberCount = Number(count.innerText); 46 47 if (tab !== allTab){ 48 if (numberCount == 0) { 49 allJobs.classList.add('hidden'); 50 noJobs.classList.remove('hidden'); 51 } else { 52 for (let j = 0; j < allJobsChildren.length; j++) { 53 if (!allJobsChildren[j].classList.contains(statusClass)) { 54 allJobsChildren[j].classList.add('hidden'); 55 } else { 56 allJobsChildren[j].classList.remove('hidden'); 57 } 58 } 59 noJobs.classList.add('hidden'); 60 allJobs.classList.remove('hidden'); 61 } 62 63 tabCount.innerText = count.innerText + " of " + totalCount.innerText; 64 65 } else { 66 allJobs.classList.remove('hidden'); 67 for (let j = 0; j < allJobsChildren.length; j++) { 68 allJobsChildren[j].classList.remove('hidden'); 69 } 70 noJobs.classList.add('hidden'); 71 72 tabCount.innerText = numberCount; 73 }; 74 }; 75 76 for (let i = 0; i < 3; i++) { 77 let tab = tabs[i]; 78 let count = counts[i]; 79 let statusClass = statusClasses[i]; 80 tab.addEventListener("click", () => { 81 tabClick(tab, count, statusClass); 82 }); 83 }