import { GlobalContext, showToast } from "@/globalContext"; import React from "react"; import { useForm } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; import * as yup from "yup"; import { useContext } from "react"; import GreenCheckIcon from "./frontend/icons/GreenCheckIcon"; import { useNavigate } from "react-router"; import { AuthContext, tokenExpireError } from "@/authContext"; import MkdSDK from "@/utils/MkdSDK"; import { LoadingButton } from "./frontend"; export default function HostAddAmenityModal({setAmenityModal,getData}) { let sdk = new MkdSDK(); const { state, dispatch: globalDispatch } = React.useContext(GlobalContext); const [loading, setLoading] = React.useState(); const schema = yup .object({ name: yup.string().required("Name is required"), }) .required(); const { dispatch } = React.useContext(AuthContext); const { register, handleSubmit, setError, formState: { errors }, } = useForm({ resolver: yupResolver(schema), }); const onSubmit = async (data) => { setLoading(true) try { sdk.setTable("amenity"); const result = await sdk.callRestAPI( { name: data.name, creator_id: Number(localStorage.getItem("user")), space_id: data.space_id || null, }, "POST", ); if (!result.error) { getData(); showToast(globalDispatch, "Amenity Added"); setLoading(false) setAmenityModal(false) } else { if (result.validation) { const keys = Object.keys(result.validation); for (let i = 0; i < keys.length; i++) { const field = keys[i]; setError(field, { type: "manual", message: result.validation[field], }); } } } } catch (error) { setLoading(false) console.log("Error", error); setError("name", { type: "manual", message: error.message, }); tokenExpireError(dispatch, error.message); } }; return (
e.stopPropagation()} >

{errors.name?.message}

Save
); }