/ scripts / nav.js
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  }