export function openThem({it, scrollToId}: {it: string, scrollToId?: string}) { const gotoandopen = (_event: React.MouseEvent<HTMLElement, MouseEvent>) => { console.log("it classname: " + document.getElementById(it)?.className); console.log("it: " + it); let contenttabid = "tab-" + it; let parent = "parent-" + it; console.log("we want to open " + it + " and " + contenttabid); let sideitems = document.getElementsByClassName("sideitem"); let subtabs = document.getElementsByClassName("sidesubtab"); let contenttabs = document.getElementsByClassName("enginneeringtab"); // Verstecke alle Subtabs und Content-Tabs for (let i = 0; i < subtabs.length; i++) { (subtabs[i] as HTMLElement).style.display = "none"; console.log("Hiding sidebar subtab..."); } for (let i = 0; i < contenttabs.length; i++) { (contenttabs[i] as HTMLElement).style.display = "none"; console.log("Hiding content tab..."); } for (let i = 0; i < sideitems.length; i++) { (sideitems[i] as HTMLElement)!.classList.remove("active-sideitem"); console.log("Hiding sidebar subtab..."); } // Zeige den aktuellen Tab und markiere das entsprechende Sidebar-Item document.getElementById(it)!.style.display = "block"; document.getElementById(parent)!.classList.add("active-sideitem"); document.getElementById(contenttabid)!.style.display = "block"; // Update der URL const newUrl = `?tab=${it}`; window.history.pushState({ tab: it }, '', newUrl); // Scrolle zu der angegebenen ID, falls vorhanden if (scrollToId && document.getElementById(scrollToId)) { console.log("Scrolling to: " + scrollToId); document.getElementById(scrollToId)!.scrollIntoView({ behavior: "smooth" }); } }; return gotoandopen; }