-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
93 lines (77 loc) · 2.97 KB
/
index.js
File metadata and controls
93 lines (77 loc) · 2.97 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
let isDOBOpen = false;
let dateOfBirth;
const settingCogEl = document.getElementById("settingIcon");
const settingContentEl = document.getElementById("settingContent");
const initialTextEl = document.getElementById("initialText");
const afterDOBBtnTxtEl = document.getElementById("afterDOBBtnTxt");
const dobButtonEl = document.getElementById("dobButton");
const dobInputEl = document.getElementById("dobInput");
const yearEl = document.getElementById("year");
const monthEl = document.getElementById("month");
const dayEl = document.getElementById("day");
const hourEl = document.getElementById("hour");
const minuteEl = document.getElementById("minute");
const secondEl = document.getElementById("second");
console.log(localStorage.getItem("year"));
const makeTwoDigitNumber = (number) => {
return number > 9 ? number : `0${number}`;
};
const toggleDateOfBirthSelector = () => {
if (isDOBOpen) {
settingContentEl.classList.add("hide");
} else {
settingContentEl.classList.remove("hide");
}
isDOBOpen = !isDOBOpen;
console.log("Toggle", isDOBOpen);
};
const updateAge = () => {
const currentDate = new Date();
const dateDiff = currentDate - dateOfBirth;
const year = Math.floor(dateDiff / (1000 * 60 * 60 * 24 * 365));
const month = Math.floor((dateDiff / (1000 * 60 * 60 * 24 * 365)) % 12);
const day = Math.floor(dateDiff / (1000 * 60 * 60 * 24)) % 30;
const hour = Math.floor(dateDiff / (1000 * 60 * 60)) % 24;
const minute = Math.floor(dateDiff / (1000 * 60)) % 60;
const second = Math.floor(dateDiff / 1000) % 60;
yearEl.innerHTML = makeTwoDigitNumber(year);
monthEl.innerHTML = makeTwoDigitNumber(month);
dayEl.innerHTML = makeTwoDigitNumber(day);
hourEl.innerHTML = makeTwoDigitNumber(hour);
minuteEl.innerHTML = makeTwoDigitNumber(minute);
secondEl.innerHTML = makeTwoDigitNumber(second);
};
const localStorageGetter = () => {
const year = localStorage.getItem("year");
const month = localStorage.getItem("month");
const date = localStorage.getItem("date");
if (year && month && date) {
dateOfBirth = new Date(year, month, date);
}
updateAge();
};
const contentToggler = () => {
updateAge();
if (dateOfBirth) {
initialTextEl.classList.add("hide");
afterDOBBtnTxtEl.classList.remove("hide");
} else {
afterDOBBtnTxtEl.classList.add("hide");
initialTextEl.classList.remove("hide");
}
};
const setDOBHandler = () => {
const dateString = dobInputEl.value;
dateOfBirth = dateString ? new Date(dateString) : null;
if (dateOfBirth) {
localStorage.setItem("year", dateOfBirth.getFullYear());
localStorage.setItem("month", dateOfBirth.getMonth());
localStorage.setItem("date", dateOfBirth.getDate());
}
contentToggler();
setInterval(() => updateAge(), 1000);
};
localStorageGetter();
contentToggler();
settingCogEl.addEventListener("click", toggleDateOfBirthSelector);
dobButtonEl.addEventListener("click", setDOBHandler);