import {HeaderProps} from 'src/interfaces';
import {headerQuery} from '../wpgraphql';

export const headerProps = async (): Promise<any> => {
  const query = await headerQuery;
  if (!query) return;
  return {
    english: {
      nav: getMenuLinks(query, 2),
      headerContent: formatEnglishData(query.data.post.acf_header),
    },
    spanish: {
      nav: getMenuLinks(query, 42),
      headerContent: formatSpanishData(query.data.post.acf_header),
    },
  };
};

const formatEnglishData = ({logo, callNumber, callNumberTextEn, callTextEn, quitLink, quitTextEn}: HeaderProps) => {
  return {
    logo: logo,
    callText: callTextEn,
    callNumber: callNumber,
    callNumberText: callNumberTextEn,
    quitLink: quitLink,
    quitText: quitTextEn,
  };
};

const formatSpanishData = ({logo, callNumberSp, callNumberTextSp, callTextSp, quitLink, quitTextSp}: HeaderProps) => {
  return {
    logo: logo,
    callText: callTextSp,
    callNumber: callNumberSp,
    callNumberText: callNumberTextSp,
    quitLink: quitLink,
    quitText: quitTextSp,
  };
};

// Wordpress CMS is holding both an EN and SP nav to handle dynamic routing for subnav. The ID is being used to grab the correct menu.
const getMenuLinks = (query: any, menuId: number) => {
  // console.log(query.data.menus.edges.filter((node: {node: {databaseId: number}}) => node.node.databaseId === menuId)[0]);
  return query.data.menus.edges.filter((node: {node: {databaseId: number}}) => node.node.databaseId === menuId)[0].node
    .menuItems.edges;
};
