// deno-lint-ignore-file no-fallthrough
import { MCGrizzConf } from "../types/mcgrizzconf.ts";
import { NavItem } from "../types/nav.ts";
import { makeConfFile } from "./confFile.ts";

/**
 * @description Determines the state of setup and returns the nav items for that state
 */
export function getNavItems(): NavItem[] {
  let conf: MCGrizzConf;
  try {
    conf = JSON.parse(Deno.readTextFileSync("mcgrizz.json"));
  } catch {
    conf = makeConfFile();
  }

  const items: NavItem[] = [];

  switch (conf.loader) {
    case "unset":
      items.push({
        title: "Setup",
        href: "/",
      });
      break;
    case "forge":
    case "fabric":
      items.push({ title: "Mods", href: "/mods" });
    case "vanilla":
      items.unshift(
        {
          title: "Server Terminal",
          href: "/terminal",
        },
        {
          title: "Players",
          href: "/players",
        },
        {
          title: "Server Properties",
          href: "/properties",
        },
      );
      break;
  }
  return items;
}
