import { useState, useContext, useEffect } from "react";
import { useLocation, useNavigate } from "react-router-dom";

import JobContext from "../../ctx/JobContext.jsx";
import JobBox from "./JobBox.jsx";
import JobView from "./JobView.jsx";
import JobBuilder from "./builder/JobBuilder.jsx";

export default function Jobs() {
  const { state: jobState } = useContext(JobContext);
  const location = useLocation();
  const navigate = useNavigate();

  useEffect(() => {
    const jobName = location.hash.slice(1);
    if (!jobName || jobState.jobs.find((job) => job.name === jobName)) return;
    navigate("/qualiteer/jobs");
  });

  return (
    <div className="jobs">
      <JobBuilder />
      {location.hash === "" &&
        jobState.jobs.map((v, i) => (
          <a
            key={i}
            href={`/qualiteer/jobs#${v.name}`}
            style={{ textDecoration: "none" }}
          >
            <JobBox job={v} />
          </a>
        ))}
      {jobState.jobs.find((job) => job.name === location.hash.slice(1)) && (
        <JobView
          job={jobState.jobs.find((job) => job.name === location.hash.slice(1))}
        />
      )}
    </div>
  );
}
