"use client"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Input } from "@/components/ui/input"; import { Select } from "@/components/ui/select"; import { Textarea } from "@/components/ui/textarea"; import { useCreateHeadcountRequestHrHeadcountPost, useCreateEmploymentActionHrActionsPost, useListHeadcountRequestsHrHeadcountGet, useListEmploymentActionsHrActionsGet, useListAgentOnboardingHrOnboardingGet, useCreateAgentOnboardingHrOnboardingPost, useUpdateAgentOnboardingHrOnboardingOnboardingIdPatch, } from "@/api/generated/hr/hr"; import { useListDepartmentsDepartmentsGet, useListEmployeesEmployeesGet } from "@/api/generated/org/org"; export default function HRPage() { const departments = useListDepartmentsDepartmentsGet(); const departmentList = departments.data ?? []; const employees = useListEmployeesEmployeesGet(); const employeeList = employees.data ?? []; const headcount = useListHeadcountRequestsHrHeadcountGet(); const actions = useListEmploymentActionsHrActionsGet(); const onboarding = useListAgentOnboardingHrOnboardingGet(); const headcountList = headcount.data ?? []; const actionList = actions.data ?? []; const onboardingList = onboarding.data ?? []; const [hcDeptId, setHcDeptId] = useState(""); const [hcManagerId, setHcManagerId] = useState(""); const [hcRole, setHcRole] = useState(""); const [hcType, setHcType] = useState<"human" | "agent">("human"); const [hcQty, setHcQty] = useState("1"); const [hcJust, setHcJust] = useState(""); const [actEmployeeId, setActEmployeeId] = useState(""); const [actIssuerId, setActIssuerId] = useState(""); const [actType, setActType] = useState("praise"); const [actNotes, setActNotes] = useState(""); const [onboardAgentName, setOnboardAgentName] = useState(""); const [onboardRole, setOnboardRole] = useState(""); const [onboardPrompt, setOnboardPrompt] = useState(""); const [onboardCronMs, setOnboardCronMs] = useState(""); const [onboardTools, setOnboardTools] = useState(""); const [onboardOwnerId, setOnboardOwnerId] = useState(""); const [onboardNotes, setOnboardNotes] = useState(""); const createHeadcount = useCreateHeadcountRequestHrHeadcountPost({ mutation: { onSuccess: () => { setHcRole(""); setHcJust(""); setHcQty("1"); headcount.refetch(); }, }, }); const createAction = useCreateEmploymentActionHrActionsPost({ mutation: { onSuccess: () => { setActNotes(""); actions.refetch(); }, }, }); const createOnboarding = useCreateAgentOnboardingHrOnboardingPost({ mutation: { onSuccess: () => { setOnboardAgentName(""); setOnboardRole(""); setOnboardPrompt(""); setOnboardCronMs(""); setOnboardTools(""); setOnboardOwnerId(""); setOnboardNotes(""); onboarding.refetch(); }, }, }); const updateOnboarding = useUpdateAgentOnboardingHrOnboardingOnboardingIdPatch({ mutation: { onSuccess: () => onboarding.refetch(), }, }); return (
{headcount.isLoading || actions.isLoading || onboarding.isLoading ? (
Loading…
) : null} {headcount.error ?
{(headcount.error as Error).message}
: null} {actions.error ?
{(actions.error as Error).message}
: null} {onboarding.error ?
{(onboarding.error as Error).message}
: null}

HR

Headcount requests and employment actions.

Headcount request Managers request; HR fulfills later. {departments.isLoading ?
Loading departments…
: null} {departments.error ?
{(departments.error as Error).message}
: null} {employees.isLoading ?
Loading employees…
: null} {employees.error ?
{(employees.error as Error).message}
: null} setHcRole(e.target.value)} />
setHcQty(e.target.value)} />