import {
  Contribution,
  Description,
  Engineering,
  Experiments,
  Home,
  Bfh,
  Drylab,
  Attributions,
  HumanPractices,
  Ethics,
  Supplementary,
  Parts,
  Proof,
  Design,
  Judging,
  Partners,
  Ints,
  Measurement,
  Notebook,
  Results,
  Safety,
  Team,
  Wiki,
  Impressum
} from "./contents"; 

import { BFHH, ETHH, JUDGEH, DESH, PROOFH, SUPH, PARTH, MESH, ENGH, DRYH, HOMEH, HPH, INTSH, SPONH, RESH, ATTH, CONTH, DESCH, EXPH, IMPH, NOTEH, SAFEH, TEAMH, WIKIH } from "./contents";

interface Base {
  name: string | undefined;
}

class Folder implements Base {
  name: string | undefined;
  folder: Page[] | undefined;
}

class Page implements Base {
  name: string | undefined;
  title: string | undefined;
  path: string | undefined;
  component: React.FC | undefined;
  header!: React.FC;
  navlist?: Array<string> | undefined; 
}

const Pages: (Page | Folder)[] = [
  {
    name: "Attributions",
    title: "Attributions",
    path: "/attributions",
    component: Attributions,
    header: ATTH,
      navlist: [""],
  },
  {
    name: "BFH",
    title: "BFH European MeetUp",
    path: "/bfh",
    component: Bfh,
    header: BFHH,
    navlist: [],
  },
  {
    name: "Contribution",
    title: "Contribution",
    path: "/contribution",
    component: Contribution,
    header: CONTH,
    navlist: [""],
    },
    {
      name: "Description",
      title: "Project Description",
      path: "/description",
      component: Description,
      header: DESCH,
      navlist: ["Abstract", "Cystic Fibrosis", "Our motivation", "Approach", "Delivery", "Our vision", "References"]
    },
    {
      name: "Design",
      title: "Design",
      path: "/design",
      component: Design,
      header: DESH,
      navlist: [""],
    },
    {
      name: "Dry Lab",
      title: "Dry Lab",
      path: "/dry-lab",
      component: Drylab,
      header: DRYH,
      navlist: [""],
    },
    {
      name: "Engineering Success",
      title: "Engineering",
      path: "/engineering",
      component: Engineering,
      header: ENGH,
      navlist: [""],
    },
    {
      name: "Ethics",
      title: "Ethics",
      path: "/ethics",
      component: Ethics,
      header: ETHH,
      navlist: [""],
    },
    {
      name: "Experiments",
      title: "Experiments",
      path: "/experiments",
      component: Experiments,
      header: EXPH,
      navlist: [""],
    },
    {
      name: "Human Practices",
      title: "Human Practices",
      path: "/human-practices",
      component: HumanPractices,
      header: HPH,
       navlist: [""],
    },
    {
      name: "Home",
      title: "Bielefeld CeBiTec",
      path: "/",
      component: Home,
      header: HOMEH,
      navlist: [""],
    },
    {
      name: "Home",
      title: "Bielefeld CeBiTec",
      path: "/index.html",
      component: Home,
      header: HOMEH,
      navlist: [""],
    },
    {
      name: "Impressum",
      title: undefined,
      path: "/impressum",
      component: Impressum,
      header: IMPH,
      navlist: [""],
    },
    {
      name: "Interviews",
      title: "Interviews",
      path: "/interviews",
      component: Ints,
      header: INTSH, 
      navlist: [""],
    },
    {
      name: "Judging",
      title: "Judging",
      path: "/judging",
      component: Judging,
      header: JUDGEH, 
      navlist: [""],
    },
    {
      name: "Measurement",
      title: "Measurement",
      path: "/measurement",
      component: Measurement,
      header: MESH,
      navlist: [""],
    },
    {
      name: "Notebook",
      title: "Notebook",
      path: "/notebook",
      component: Notebook,
      header: NOTEH,
      navlist: [""],
    },
    {
      name: "Partners and Sponsors",
      title: "Partners and Sponsors",
      path: "/partners",
      component: Partners,
      header: SPONH, 
      navlist: [""],
    },
    {
      name: "Parts",
      title: "Parts",
      path: "/parts",
      component: Parts,
      header: PARTH,
      navlist: [""],
    },
    {
      name: "Proof of Concept",
      title: "Proof of Concept",
      path: "/proof-of-concept",
      component: Proof,
      header: PROOFH,
      navlist: [""],
    },
    {
      name: "Results",
      title: "Results",
      path: "/results",
      component: Results,
      header: RESH,
      navlist: [""],
    },
    {
      name: "Safety",
      title: "Safety",
      path: "/safety",
      component: Safety,
      header: SAFEH,
      navlist: [""],
    },
    {
      name: "Supplementary",
      title: "Supplementary",
      path: "/supplementary",
      component: Supplementary,
      header: SUPH,
      navlist: [""],
    },
    {
      name: "Team",
      title: "Team",
      path: "/team",
      component: Team,
      header: TEAMH,
      navlist: [""],
    },
    {
      name: "Wiki",
      title: "wiki",
      path: "/wiki",
      component: Wiki,
      header: WIKIH,
      navlist: [""],
    },
];

export const NavPages: (Page | Folder)[] = [
    {
      name: "Home",
      title: "Bielefeld CeBiTec",
      path: "/",
      component: Home,
      header: HOMEH,
      navlist: [""],
      },
    {
      name: "Team",
      folder: [
        {
          name: "Team",
          title: "Team",
          path: "/team",
          component: Team,
          header: TEAMH,
          navlist: [""],
        },
        {
          name: "Attributions",
          title: "Attributions",
          path: "/attributions",
          component: Attributions,
          header: ATTH,
           navlist: [""],
        },
        {
          name: "Partners and Sponsors",
          title: "Partners and Sponsors",
          path: "/partners",
          component: Partners,
          header: SPONH, 
          navlist: [""],
        },
      ],
    },
    {
      name: "Project",
      folder: [
        {
          name: "Description",
          title: "Project Description",
          path: "/description",
          component: Description,
          header: DESCH,
          navlist: ["Abstract", "Cystic Fibrosis", "Our motivation", "Approach", "Delivery", "Our vision", "References"]
        },
        {
          name: "Results",
          title: "Results",
          path: "/results",
          component: Results,
          header: RESH,
          navlist: [""],
        },
        {
          name: "Engineering Success",
          title: "Engineering",
          path: "/engineering",
          component: Engineering,
          header: ENGH,
          navlist: [""],
        },
      ],
    },
    {
      name: "Lab", 
      folder: [
        {
          name: "Wet Lab",
          title: "Wet Lab",
          path: "/experiments",
          component: Experiments,
          header: EXPH,
          navlist: [""],
        },
        {
          name: "Dry Lab",
          title: "Dry Lab",
          path: "/dry-lab",
          component: Drylab,
          header: DRYH,
          navlist: [""],
        },
        {
          name: "Notebook",
          title: "Notebook",
          path: "/notebook",
          component: Notebook,
          header: NOTEH,
          navlist: [""],
        },
      ]
    },
    {
      name: "Safety",
      title: "Safety",
      path: "/safety",
      component: Safety,
      header: SAFEH,
      navlist: [""],
    },
    {
      name: "Human Practices",
      folder: [
        {
          name: "Integrated Human Practices",
          title: "Integrated Human Practices",
          path: "/human-practices",
          component: HumanPractices,
          header: HPH,
           navlist: [""],
        },
        {
          name: "Interviews",
          title: "Interviews",
          path: "/interviews",
          component: Ints,
          header: INTSH, 
          navlist: [""],
        },
      ]
    },
    {
      name: "Contribution",
      folder: [
          {
            name: "Contribution",
            title: "Contribution",
            path: "/contribution",
            component: Contribution,
            header: CONTH,
            navlist: [""],
          },
            {
              name: "BFH",
              title: "BFH European MeetUp",
              path: "/bfh",
              component: Bfh,
              header: BFHH,
              navlist: [],
            },
            {
              name: "Wiki",
              title: "wiki",
              path: "/wiki",
              component: Wiki,
              header: WIKIH,
              navlist: [""],
            },
          ]
    },
];

export default Pages;