import { Contribution, Description, Engineering, Experiments, Home, Attributions, HumanPractices, Supplementary, Parts, Judging, ProDesc, Partners, Notebook, Results, Safety, Team, Impressum, Example, igemBielefeld, HpSidebar, SafetySidebar } from "./contents"; import { DescSidebar, NoSidebar, EngSide } from "./contents"; import { IBIE, JUDGEH, PRODESC, SUPH, PARTH, ENGH, HOMEH, HPH, SPONH, RESH, ATTH, CONTH, DESCH, EXPH, IMPH, NOTEH, SAFEH, TEAMH } from "./contents"; import { Methods } from "./contents/methods"; import { METHH } from "./headers/meth-h"; import { ConSidebar } from "./sidebars/conS"; import { iGemBielefeldSidebar } from "./sidebars/igbS"; import { JudSidebar } from "./sidebars/jugS"; import { MethSidebar } from "./sidebars/methS"; import { PartSidebar } from "./sidebars/prtS"; import { ResultSidebar } from "./sidebars/resS"; interface Base { name: string | undefined; } class Folder implements Base { name: string | undefined; folder: Page[] | PageRef[] | undefined; } class Page implements Base { name: string | undefined; title: string | undefined; path: string | undefined; component: React.FC | undefined; header!: React.FC; navlist!: React.FC; } class PageRef implements Base{ name: string | undefined; title: string | undefined; path: string | undefined; component?: React.FC | undefined; header?: React.FC; navlist?: React.FC; } const Pages: (Page | Folder)[] = [ { name: "Attributions", title: "Attributions", path: "/attributions", component: Attributions, header: ATTH, navlist: NoSidebar, }, { name: "Contribution", title: "Contribution", path: "/contribution", component: Contribution, header: CONTH, navlist: ConSidebar, }, { name: "Description", title: "Project Description", path: "/description", component: Description, header: DESCH, navlist: DescSidebar }, { name: "Engineering", title: "Engineering", path: "/engineering", component: Engineering, header: ENGH, navlist: EngSide, }, { name: "Example", title: "Example", path: "/example", component: Example, header: HOMEH, navlist: NoSidebar, }, { name: "Experiments", title: "Experiments", path: "/experiments", component: Experiments, header: EXPH, navlist: NoSidebar, }, { name: "Human Practices", title: "Human Practices", path: "/human-practices", component: HumanPractices, header: HPH, navlist: HpSidebar }, { name: "Home", title: "Bielefeld CeBiTec", path: "/home", component: Home, header: HOMEH, navlist: NoSidebar }, { name: "Home", title: "Bielefeld CeBiTec", path: "/", component: Home, header: HOMEH, navlist: NoSidebar }, { name: "Home", title: "Bielefeld CeBiTec", path: "/index.html", component: Home, header: HOMEH, navlist: NoSidebar }, { name: "iGEM Bielefeld", title: "iGEM Bielefeld", path: "/igem-bielefeld", component: igemBielefeld, header: IBIE, navlist: iGemBielefeldSidebar, }, { name: "Impressum", title: undefined, path: "/impressum", component: Impressum, header: IMPH, navlist: NoSidebar, }, { name: "Judging", title: "Judging", path: "/judging", component: Judging, header: JUDGEH, navlist: JudSidebar, }, { name: "Materials & Methods", title: "Materials & Methods", path: "/materials-methods", component: Methods, header: METHH, navlist: MethSidebar, }, { name: "Notebook", title: "Notebook", path: "/notebook", component: Notebook, header: NOTEH, navlist: NoSidebar, }, { name: "Sponsors & Partners", title: "Sponsors & Partners", path: "/partners", component: Partners, header: SPONH, navlist: NoSidebar, }, { name: "Parts", title: "Parts", path: "/parts", component: Parts, header: PARTH, navlist: PartSidebar, }, { name: "Project Documentation", title: "Project Documentation", path: "/project-documentation", component: ProDesc, header: PRODESC, navlist: NoSidebar }, { name: "Results", title: "Results", path: "/results", component: Results, header: RESH, navlist: ResultSidebar, }, { name: "Biosafety", title: "Biosafety", path: "/safety", component: Safety, header: SAFEH, navlist: SafetySidebar, }, { name: "Supplementary Material", title: "Supplementary", path: "/supplement", component: Supplementary, header: SUPH, navlist: NoSidebar, }, { name: "Roster", title: "Roster", path: "/team", component: Team, header: TEAMH, navlist: NoSidebar, }, ]; export const NavPages: (Page | PageRef | Folder)[] = [ { name: "Home", title: "Bielefeld CeBiTec", path: "/home?=scrollTo=l&ing-page-header", component: Home, header: HOMEH, navlist: NoSidebar, }, { name: "Highlights", folder: [ { name: "Project Description", title: "Project Description", path: "/description?scrollTo=Abstract" }, { name: "Engineering", title: "Engineering", path: "/engineering" }, { name: "Experiments", title: "Experiments", path: "/experiments?tab=heading" }, { name: "Results", title: "Results", path: "/results?scrollTo=experimental-design" }, { name: "Parts", title: "Parts", path: "/parts?scrollTo=Parts Collection2H" }, { name: "Judging", title: "Judging", path: "/judging?scrollTo=OverviewH" }, ] }, { name: "Team", folder: [ { name: "Roster", title: "Roster", path: "/team", component: Team, header: TEAMH, navlist: NoSidebar, }, { name: "Attributions", title: "Attributions", path: "/attributions", component: Attributions, header: ATTH, navlist: NoSidebar, }, { name: "Sponsors & Partners", title: "Sponsors & Partners", path: "/partners", component: Partners, header: SPONH, navlist: NoSidebar, }, { name: "iGEM Bielefeld", title: "iGEM Bielefeld", path: "/igem-bielefeld", component: igemBielefeld, header: IBIE, navlist: iGemBielefeldSidebar, }, ], }, { name: "Project", folder: [ { name: "Description", title: "Project Description", path: "/description", component: Description, header: DESCH, navlist: DescSidebar }, { name: "Engineering", title: "Engineering", path: "/engineering", component: Engineering, header: ENGH, navlist: EngSide , }, { name: "Biosafety", title: "Biosafety", path: "/safety", component: Safety, header: SAFEH, navlist: SafetySidebar, }, { name: "Project Documentation", title: "Project Documentation", path: "/project-documentation", component: ProDesc, header: PRODESC, navlist: NoSidebar }, { name: "Supplementary Material", title: "Supplementary", path: "/supplement", component: Supplementary, header: SUPH, navlist: NoSidebar, }, ], }, { name: "Lab", folder: [ { name: "Experiments", title: "Experiments", path: "/experiments", component: Experiments, header: EXPH, navlist: NoSidebar, }, { name: "Materials & Methods", title: "Materials & Methods", path: "/materials-methods", component: Methods, header: METHH, navlist: MethSidebar, }, { name: "Results", title: "Results", path: "/results", component: Results, header: RESH, navlist: ResultSidebar, }, { name: "Parts", title: "Parts", path: "/parts", }, { name: "Notebook", title: "Notebook", path: "/notebook", component: Notebook, header: NOTEH, navlist: NoSidebar, }, ] }, { name: "Human Practices", folder: [ { name: "Introduction", title: "Introduction", path: "/human-practices?scrollTo=Introduction" }, { name: "Integrated Human Practices", title: "Integrated Human Practices", path: "/human-practices", component: HumanPractices, header: HPH, navlist: HpSidebar }, { name: "Feedback & Implementation", title: "Feedback & Implementation", path: "/human-practices?scrollTo=Integrated Human Practices2" }, { name: "Education", title: "Education & Outreach", path: "/human-practices?scrollTo=Further Engagement1H" }, { name: "Public Engagement", title: "Education & Outreach", path: "/human-practices?scrollTo=Further Engagement2H" }, { name: "Collaboration", title: "Collaboration", path: "/human-practices?scrollTo=Further Engagement4H" }, { name: "Partnerships", title: "Partnerships", path: "/human-practices?scrollTo=Further Engagement5H" }, ] }, { name: "Judging", folder: [ { name: "Overview", title: "Judging", path: "/judging?scrollTo=Overview", }, { name: "Best New Basic Part", title: "Judging", path: "/judging?scrollTo=best-new-basic-part", }, { name: "Safety & Security", title: "Judging", path: "/judging?scrollTo=safety-security", }, { name: "Best Integrated Human Practice", title: "Judging", path: "/judging?scrollTo=best-integrated-human-practice", }, ] }, { name: "Contribution", folder: [ { name: "Contribution", title: "Contribution", path: "/contribution", component: Contribution, header: CONTH, navlist: ConSidebar, }, { name: "BFH European MeetUp", title: "MeetUp", path: "contribution/?scrollTo=BFH European MeetUp" }, { name: "Safety Guideline", title: "Safety Guideline", path: "contribution/?scrollTo=primary-culture-safety-guideline" }, { name: "Collaborations", title: "Collaborations", path: "contribution/?scrollTo=collaborations" }, { name: "Patient Matters", title: "Patient Matters", path: "contribution/?scrollTo=patient-matters" }, { name: "Wiki", title: "Wiki", path: "contribution/?scrollTo=wiki" }, ] }, ]; export default Pages;