import Layout from "@/components/High/Layout"; import useUser from "@/hooks/useUser"; import { ApprovalWorkflow } from "@/interfaces/approval.workflow"; import { sessionOptions } from "@/lib/session"; import { redirect } from "@/utils"; import { requestUser } from "@/utils/api"; import { shouldRedirectHome } from "@/utils/navigation.disabled"; import { withIronSessionSsr } from "iron-session/next"; import Head from "next/head"; import Link from "next/link"; import { BsChevronLeft } from "react-icons/bs"; import { ToastContainer } from "react-toastify"; import approvalWorkflowsData from '../../demo/approval_workflows.json'; // to test locally import RequestedBy from "@/components/ApprovalWorkflows/RequestedBy"; import StartedOn from "@/components/ApprovalWorkflows/StartedOn"; import Status from "@/components/ApprovalWorkflows/Status"; import WorkflowStepComponent from "@/components/ApprovalWorkflows/WorkflowStepComponent"; import { useState } from "react"; export const getServerSideProps = withIronSessionSsr(async ({ req, res, params }) => { const user = await requestUser(req, res); if (!user) return redirect("/login") if (shouldRedirectHome(user) || !["admin", "developer", "teacher", "corporate", "mastercorporate"].includes(user.type)) return redirect("/") const { id } = params as { id: string }; const workflow = approvalWorkflowsData.find(workflow => workflow.id === id); // await getApprovalWorkflow(id); if (!workflow) return redirect("/approval-workflows") return { props: { user, workflow }, }; }, sessionOptions); export default function Home({ workflow }: { workflow: ApprovalWorkflow }) { const { user } = useUser({ redirectTo: "/login" }); const steps = workflow.steps; const [selectedIndex, setSelectedIndex] = useState(steps.length - 1); const handleStepClick = (index: number) => { setSelectedIndex(index); }; return ( <> {workflow.name} | EnCoach {user && (

{workflow.name}

{steps.map((step, index) => ( !step.completed) === index} selected={index === selectedIndex} onClick={() => handleStepClick(index)} /> ))}
)} ); }