react-hartan
Version:
A simple components library for React
37 lines (31 loc) • 967 B
JavaScript
import { useState, useEffect } from "react";
import useFetch from "./Fetch";
export default function useForm(actionURL) {
const [data, setData] = useState({});
const [, postData] = useFetch();
const [submitted, setSubmitted] = useState(false);
let [result, responseStatus] = "";
const [returnValue, setReturnValue] = useState({});
const updateData = (e) => {
setData({
...data,
[e.target.name]: e.target.value
})
};
const submit = async (e) => {
e.preventDefault();
[result, responseStatus] = await postData(actionURL, data);
setSubmitted(true);
e.target.reset();
setReturnValue({
result: result,
responseStatus: responseStatus
})
};
useEffect(() => {
setTimeout(() => {
setSubmitted(false);
}, 2500);
}, [submitted]);
return [updateData, submit, submitted, returnValue];
}