Update project files
This commit is contained in:
66
script.js
Normal file
66
script.js
Normal file
@@ -0,0 +1,66 @@
|
||||
const localTime = document.querySelector("#localTime");
|
||||
const activeCommand = document.querySelector("#activeCommand");
|
||||
const commandForm = document.querySelector("#commandForm");
|
||||
const commandInput = document.querySelector("#commandInput");
|
||||
const tabs = Array.from(document.querySelectorAll(".command-tab"));
|
||||
const pages = Array.from(document.querySelectorAll(".terminal-page"));
|
||||
|
||||
const pageAliases = {
|
||||
about: "home",
|
||||
profile: "home",
|
||||
experience: "work",
|
||||
jobs: "work",
|
||||
tech: "stack",
|
||||
skills: "stack",
|
||||
project: "projects",
|
||||
social: "contact",
|
||||
email: "contact",
|
||||
};
|
||||
|
||||
function updateTime() {
|
||||
if (!localTime) return;
|
||||
|
||||
localTime.textContent = new Intl.DateTimeFormat("en-GB", {
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
second: "2-digit",
|
||||
}).format(new Date());
|
||||
}
|
||||
|
||||
function setPage(pageName) {
|
||||
const page = pageAliases[pageName] || pageName;
|
||||
const nextPage = document.querySelector(`#page-${page}`);
|
||||
|
||||
if (!nextPage) {
|
||||
activeCommand.textContent = `unknown command: ${pageName}`;
|
||||
return;
|
||||
}
|
||||
|
||||
tabs.forEach((tab) => {
|
||||
tab.classList.toggle("active", tab.dataset.page === page);
|
||||
});
|
||||
|
||||
pages.forEach((currentPage) => {
|
||||
currentPage.classList.toggle("active", currentPage.id === `page-${page}`);
|
||||
});
|
||||
|
||||
activeCommand.textContent = `open ${page}`;
|
||||
}
|
||||
|
||||
tabs.forEach((tab) => {
|
||||
tab.addEventListener("click", () => setPage(tab.dataset.page));
|
||||
});
|
||||
|
||||
commandForm?.addEventListener("submit", (event) => {
|
||||
event.preventDefault();
|
||||
const command = commandInput.value.trim().toLowerCase();
|
||||
|
||||
if (command) {
|
||||
setPage(command);
|
||||
}
|
||||
|
||||
commandInput.value = "";
|
||||
});
|
||||
|
||||
updateTime();
|
||||
window.setInterval(updateTime, 1000);
|
||||
Reference in New Issue
Block a user