"use client"; import { FieldErrors, FormProvider, SubmitErrorHandler, SubmitHandler, useForm, } from "react-hook-form"; import StaffAllocation from "./StaffAllocation"; import { StaffResult } from "@/app/api/staff"; import { CreateTeamInputs, saveTeam } from "@/app/api/team/actions"; import { Button, Stack, Tab, Tabs, TabsProps, Typography } from "@mui/material"; import { Check, Close } from "@mui/icons-material"; import { useCallback, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { useTranslation } from "react-i18next"; import { Error } from "@mui/icons-material"; import TeamInfo from "./TeamInfo"; export interface Props { allstaff: StaffResult[]; } const CreateTeam: React.FC = ({ allstaff }) => { const formProps = useForm(); const [serverError, setServerError] = useState(""); const router = useRouter(); const [tabIndex, setTabIndex] = useState(0); const { t } = useTranslation(); const searchParams = useSearchParams() const errors = formProps.formState.errors; const onSubmit = useCallback>( async (data) => { try { console.log(data); await saveTeam(data); router.replace("/settings/team"); } catch (e) { console.log(e); setServerError(t("An error has occurred. Please try again later.")); } }, [router] ); const handleCancel = () => { router.back(); }; const handleTabChange = useCallback>( (_e, newValue) => { setTabIndex(newValue); }, [], ); const hasErrorsInTab = ( tabIndex: number, errors: FieldErrors, ) => { switch (tabIndex) { case 0: return Object.keys(errors).length > 0; default: false; } }; return ( <> ) : undefined } iconPosition="end" /> {serverError && ( {serverError} )} {tabIndex === 0 && } {tabIndex === 1 && } {/* */} ); }; export default CreateTeam;