From 39a96cc018654fea646d31213de6d12a048d5ac4 Mon Sep 17 00:00:00 2001 From: Liliana Sanfilippo <liliana.sanfilippo@uni-bielefeld.de> Date: Mon, 23 Sep 2024 02:50:37 +0200 Subject: [PATCH] useTabNavigation statt useNavigateTabs --- src/components/Buttons.tsx | 7 +++-- src/contents/Home.tsx | 4 +-- .../Human Practices/human-practices.tsx | 4 +-- src/contents/contribution.tsx | 4 +-- src/contents/description.tsx | 5 +-- src/contents/engineering.tsx | 4 +-- src/contents/example.tsx | 2 +- src/contents/experiments.tsx | 4 +-- src/contents/igem-bielefeld.tsx | 4 +-- src/contents/impressum.tsx | 4 +-- src/contents/judging.tsx | 4 +-- src/contents/methods.tsx | 4 +-- src/contents/notebook.tsx | 4 +-- src/contents/partners.tsx | 4 +-- src/contents/parts.tsx | 4 +-- src/contents/project-documentation.tsx | 4 +-- src/contents/results.tsx | 4 +-- src/contents/safety.tsx | 4 +-- src/contents/supplementary-material.tsx | 4 +-- src/contents/team.tsx | 5 +-- src/utils/TabNavigation.tsx | 31 ++++++++++++------- src/utils/navigation.ts | 3 +- 22 files changed, 66 insertions(+), 51 deletions(-) diff --git a/src/components/Buttons.tsx b/src/components/Buttons.tsx index 5a0db616..09fb191d 100644 --- a/src/components/Buttons.tsx +++ b/src/components/Buttons.tsx @@ -2,6 +2,7 @@ import { Link } from "react-router-dom"; import { openFromOtherPage } from "../utils/openFromOtherpAge"; import { openThem } from "../utils/openThem"; import { openElement } from "../utils/openElement"; +import { useNavigation } from "../utils/useNavigation"; interface UrlButtonProps{ href: string, children: string, @@ -163,13 +164,15 @@ export function ButtonTwo(){ } export function ButtonOne({text, open, openclass}: {text:string, open:string, openclass?: string}){ + const { goToPagesAndOpenTab } = useNavigation(); if (openclass) { return( <div className="boxy-1"> - <span typeof="button" onClick={openFromOtherPage(open, openclass)}> + <a onClick={() => goToPagesAndOpenTab(open, "")}> <div className="btn-new btn-one"> {text} - </div></span> + </div> + </a> </div> ) diff --git a/src/contents/Home.tsx b/src/contents/Home.tsx index 59564d1a..e9aa9a94 100644 --- a/src/contents/Home.tsx +++ b/src/contents/Home.tsx @@ -1,10 +1,10 @@ import { FadeIn } from "../components/FadeIn"; import { Breathe } from "../components/Breathe"; import { Problems } from "../components/Problems"; -import { useNavigateTabs } from "../utils/navigation"; + export function Home() { - useNavigateTabs(); + useTabNavigation(); return ( <div className="row mt-4"> <div className="col"> diff --git a/src/contents/Human Practices/human-practices.tsx b/src/contents/Human Practices/human-practices.tsx index 92a92bcb..fc002599 100644 --- a/src/contents/Human Practices/human-practices.tsx +++ b/src/contents/Human Practices/human-practices.tsx @@ -49,15 +49,15 @@ <p></p> */ import { openElement } from "../../utils/openElement"; -import { useNavigateTabs } from "../../utils/navigation"; import { HPOverview } from "./Overwiev"; import { HPIntroduction } from "./Introduction"; import { HPIntegrated } from "./IHP"; import { HPFurtherEngagement } from "./Further Engagement/FurtherEngagement"; import { HPSupplement } from "./Further Engagement/SupMaterial"; +import { useTabNavigation } from "../../utils/TabNavigation"; export function HumanPractices() { - useNavigateTabs(); + useTabNavigation(); openElement({buttonClass: "tabbutton", elementToOpen: "All", classToHide: "timelinecardtabs", }); diff --git a/src/contents/contribution.tsx b/src/contents/contribution.tsx index 1af1e168..7a1b5f3d 100644 --- a/src/contents/contribution.tsx +++ b/src/contents/contribution.tsx @@ -4,14 +4,14 @@ import BFHpdf, { GuidePDF } from "../components/Pdfs"; import { H2, H3, H4} from "../components/Headings"; import { OLDBFHStyleTabs } from "../components/Tabs"; import { BlockQuoteB } from "../components/Quotes"; -import { useNavigateTabs } from "../utils/navigation"; import { Certificate, PosterRow } from "../components/poster"; import { Section } from "../components/sections"; import { useNavigation } from "../utils"; +import { useTabNavigation } from "../utils/TabNavigation"; export function Contribution() { - useNavigateTabs(); + useTabNavigation(); return ( <> <Section title="BFH European MeetUp" id="bfh"> diff --git a/src/contents/description.tsx b/src/contents/description.tsx index 50725846..f8a27b2f 100644 --- a/src/contents/description.tsx +++ b/src/contents/description.tsx @@ -9,14 +9,15 @@ import { Complex } from "../components/Svgs"; import { ButtonRowTabs } from "../components/Tabs"; import PieChart from "../components/Graph"; import PreCyse from "../components/precyse"; -import { useNavigateTabs } from "../utils/navigation"; + import { Section, Subesction } from "../components/sections"; import { stringToSlug } from "../utils"; import { symptomdata, SymptomDatensatz } from "../data/symptom-data"; import { drugdata, DrugDatensatz } from "../data/drug-data"; +import { useTabNavigation } from "../utils/TabNavigation"; export function Description() { - useNavigateTabs(); + useTabNavigation(); return ( <div className="row mt-4"> <div className="col"> diff --git a/src/contents/engineering.tsx b/src/contents/engineering.tsx index 01e17ae3..de22f1c6 100644 --- a/src/contents/engineering.tsx +++ b/src/contents/engineering.tsx @@ -3,12 +3,12 @@ import { ButtonOneEngineering } from "../components/Buttons"; import { LoremShort } from "../components/Loremipsum"; import { openElement } from "../utils/openElement"; import { H3 } from "../components/Headings"; -import { useNavigateTabs } from "../utils/navigation"; + export function Engineering() { - useNavigateTabs(); + useTabNavigation(); return ( <> <div className="row mt-4"> diff --git a/src/contents/example.tsx b/src/contents/example.tsx index 9a603727..b88a3b64 100644 --- a/src/contents/example.tsx +++ b/src/contents/example.tsx @@ -24,7 +24,7 @@ ChartJS.register( ); export function Example() { - useNavigateTabs(); + useTabNavigation(); return ( <> <div className="container"> diff --git a/src/contents/experiments.tsx b/src/contents/experiments.tsx index 05bb3f89..ea3880f5 100644 --- a/src/contents/experiments.tsx +++ b/src/contents/experiments.tsx @@ -1,8 +1,8 @@ import { H2 } from "../components/Headings"; -import { useNavigateTabs } from "../utils/navigation"; + export function Experiments() { - useNavigateTabs(); + useTabNavigation(); return ( <> <H2 id="heading" text="Heading" ></H2> diff --git a/src/contents/igem-bielefeld.tsx b/src/contents/igem-bielefeld.tsx index ce2a81c1..f21f5303 100644 --- a/src/contents/igem-bielefeld.tsx +++ b/src/contents/igem-bielefeld.tsx @@ -1,7 +1,7 @@ -import { useNavigateTabs } from "../utils/navigation"; + export function igemBielefeld() { - useNavigateTabs(); + useTabNavigation(); return ( <> <div className="row mt-4"> diff --git a/src/contents/impressum.tsx b/src/contents/impressum.tsx index dcfe7f92..ef1af895 100644 --- a/src/contents/impressum.tsx +++ b/src/contents/impressum.tsx @@ -1,8 +1,8 @@ import { H2 } from "../components/Headings"; -import { useNavigateTabs } from "../utils/navigation"; + export function Impressum() { - useNavigateTabs(); + useTabNavigation(); return ( <> <div className="row"> diff --git a/src/contents/judging.tsx b/src/contents/judging.tsx index 65979d64..471697b8 100644 --- a/src/contents/judging.tsx +++ b/src/contents/judging.tsx @@ -1,7 +1,7 @@ import { H2 } from "../components/Headings"; -import { useNavigateTabs } from "../utils/navigation"; + export function Judging() { - useNavigateTabs(); + useTabNavigation(); return ( <> <H2 text="Overview" id="overview"/> diff --git a/src/contents/methods.tsx b/src/contents/methods.tsx index 389d255b..fc29ab35 100644 --- a/src/contents/methods.tsx +++ b/src/contents/methods.tsx @@ -1,6 +1,6 @@ -import { useNavigateTabs } from "../utils/navigation"; + export function Methods() { - useNavigateTabs(); + useTabNavigation(); return ( <> <div className="row"> diff --git a/src/contents/notebook.tsx b/src/contents/notebook.tsx index a123cd9b..2b33aa2c 100644 --- a/src/contents/notebook.tsx +++ b/src/contents/notebook.tsx @@ -1,8 +1,8 @@ import H1 from "../components/Headings"; -import { useNavigateTabs } from "../utils/navigation"; + export function Notebook() { - useNavigateTabs(); + useTabNavigation(); return ( <> <div className="row mt-4"> diff --git a/src/contents/partners.tsx b/src/contents/partners.tsx index d2f0fbc5..f20473b1 100644 --- a/src/contents/partners.tsx +++ b/src/contents/partners.tsx @@ -1,8 +1,8 @@ import H1, { H2 } from "../components/Headings"; -import { useNavigateTabs } from "../utils/navigation"; + export function Partners() { - useNavigateTabs(); + useTabNavigation(); return ( <> <div id="sidebarbox" className="col-1 d-none d-lg-block"> </div> diff --git a/src/contents/parts.tsx b/src/contents/parts.tsx index 5878de1f..cbab38ab 100644 --- a/src/contents/parts.tsx +++ b/src/contents/parts.tsx @@ -1,8 +1,8 @@ import { LoremMedium } from "../components/Loremipsum"; import { Section, Subesction } from "../components/sections"; -import { useNavigateTabs } from "../utils/navigation"; + export function Parts() { - useNavigateTabs(); + useTabNavigation(); return ( <div className="col"> <Section title="Introduction" id="Introduction"> diff --git a/src/contents/project-documentation.tsx b/src/contents/project-documentation.tsx index cfa32d5f..c949bf74 100644 --- a/src/contents/project-documentation.tsx +++ b/src/contents/project-documentation.tsx @@ -1,7 +1,7 @@ -import { useNavigateTabs } from "../utils/navigation"; + export function ProDesc() { - useNavigateTabs(); + useTabNavigation(); return ( <></> ); diff --git a/src/contents/results.tsx b/src/contents/results.tsx index 02f75532..afb88c60 100644 --- a/src/contents/results.tsx +++ b/src/contents/results.tsx @@ -1,8 +1,8 @@ import { H2 } from "../components/Headings"; -import { useNavigateTabs } from "../utils/navigation"; + export function Results() { - useNavigateTabs(); + useTabNavigation(); return ( <> diff --git a/src/contents/safety.tsx b/src/contents/safety.tsx index 94c8849a..7c6414cc 100644 --- a/src/contents/safety.tsx +++ b/src/contents/safety.tsx @@ -1,10 +1,10 @@ import { LoremMedium } from "../components/Loremipsum"; import { Section, Subesction } from "../components/sections"; -import { useNavigateTabs } from "../utils/navigation"; + export const Safety: React.FC = () =>{ - useNavigateTabs(); + useTabNavigation(); return ( <> diff --git a/src/contents/supplementary-material.tsx b/src/contents/supplementary-material.tsx index 84303c34..5d1db7b1 100644 --- a/src/contents/supplementary-material.tsx +++ b/src/contents/supplementary-material.tsx @@ -1,6 +1,6 @@ -import { useNavigateTabs } from "../utils/navigation"; + export function Supplementary() { - useNavigateTabs(); + useTabNavigation(); return ( <> <div className="row"> diff --git a/src/contents/team.tsx b/src/contents/team.tsx index b8bf75ad..f656cff9 100644 --- a/src/contents/team.tsx +++ b/src/contents/team.tsx @@ -1,9 +1,10 @@ import { advisors, instructor, pis, SteckbriefInterface, teammembers } from "../data/steckbriefe"; import { H2 } from "../components/Headings"; -import { useNavigateTabs } from "../utils/navigation"; +import { useTabNavigation } from "../utils/TabNavigation"; + export function Team() { - useNavigateTabs(); + useTabNavigation(); let teambriefe = createSteckbriefe(teammembers); let advisorbriefe = createSteckbriefe(advisors); let sinan = createSteckbriefe(instructor); diff --git a/src/utils/TabNavigation.tsx b/src/utils/TabNavigation.tsx index 23bb5504..8c8cec68 100644 --- a/src/utils/TabNavigation.tsx +++ b/src/utils/TabNavigation.tsx @@ -3,11 +3,14 @@ import { useNavigate, useLocation } from 'react-router-dom'; import { openFromOtherPage } from './openFromOtherpAge'; // Funktion, um den Haupttab zu öffnen -export const openTab = (tabId: string) => { - const tabs = document.querySelectorAll('.tabcontent'); - tabs.forEach((tab) => { - (tab as HTMLElement).style.display = 'none'; - }); +export const openTab = (tabId: string, tabClass: string) => { + console.log((document.getElementById(tabId) as HTMLElement).classList[1]) + console.log(`tabclass is ${tabClass}`) + const tabs = document.getElementsByClassName(tabClass); + for (let index = 0; index < tabs.length; index++) { + (tabs[index] as HTMLElement).style.display = 'none'; + + } const selectedTab = document.getElementById(tabId); if (selectedTab) { @@ -16,10 +19,10 @@ export const openTab = (tabId: string) => { }; // Funktion, um verschachtelte Tabs zu öffnen -export const openNestedTab = (parentTabId: string, childTabId: string) => { - openTab(parentTabId); +export const openNestedTab = (parentTabId: string, childTabId: string, parentClass: string, childClass: string) => { + openTab(parentTabId, parentClass); - const nestedTabs = document.querySelectorAll(`#${parentTabId} .nested-tabcontent`); + const nestedTabs = document.querySelectorAll(`#${parentTabId} ${childClass}`); nestedTabs.forEach((tab) => { (tab as HTMLElement).style.display = 'none'; }); @@ -66,17 +69,23 @@ export const useTabNavigation = () => { }; useEffect(() => { + console.log("Use Effect") const params = new URLSearchParams(location.search); const tabId = params.get('tab'); const subTabId = params.get('subTab'); const collapseId = params.get('collapseId'); - + + // Öffne Haupt- und ggf. verschachtelten Tab if (tabId) { + let tab = document.getElementById(tabId); + let tabClass = tab!.className; if (subTabId) { - openNestedTab(tabId, subTabId); + let subTab = document.getElementById(subTabId); + let parentClass = (subTab as HTMLElement).classList[1]; + openNestedTab(tabId, subTabId, parentClass, tabClass); } else { - openTab(tabId); + openTab(tabId, tabClass); } } diff --git a/src/utils/navigation.ts b/src/utils/navigation.ts index 5b7414b7..b31d337b 100644 --- a/src/utils/navigation.ts +++ b/src/utils/navigation.ts @@ -1,4 +1,4 @@ -// navigation.ts +/* // navigation.ts import { useEffect } from 'react'; import { useLocation } from 'react-router-dom'; @@ -41,3 +41,4 @@ export const useNavigateTabs = (): void => { } }, [location.search]); }; + */ \ No newline at end of file -- GitLab