UNPKG

use-chanchal-laha

Version:

A custom React hook to manage student data via PHP REST API

3 lines (2 loc) 1.39 kB
"use strict";var e=require("react"),t=require("axios");module.exports=({insertUrl:a,fetchUrl:r,updateUrl:n,deleteUrl:s})=>{const[d,o]=e.useState([]),[c,p]=e.useState(!1),i=e.useCallback((async e=>{const r=new FormData;r.append("name",e.name),r.append("gender",e.gender),r.append("stream",e.stream),(e.subjects||[]).forEach((e=>r.append("sub[]",e))),e.simg&&e.simg[0]&&r.append("simg",e.simg[0]);try{return(await t.post(a,r)).data}catch(e){throw console.error("Insert Error:",e),e}}),[a]),u=e.useCallback((async()=>{p(!0);try{const e=await t.get(r);o(e.data)}catch(e){console.error("Fetch Error:",e)}finally{p(!1)}}),[r]);e.useEffect((()=>{r&&u()}),[r,u]);const l=e.useCallback((async e=>{const a=new FormData;a.append("id",e.id),a.append("name",e.name||""),a.append("gender",e.gender||""),a.append("stream",e.stream||""),a.append("subject",(e.subjects||[]).join(", ")),e.simg&&e.simg[0]&&a.append("stdimg",e.simg[0]);try{return(await t.post(n,a,{headers:{"Content-Type":"multipart/form-data"}})).data}catch(e){throw console.error("Update Error:",e),e}}),[n]),m=e.useCallback((async e=>{try{return(await t.delete(s,{headers:{"Content-Type":"application/json"},data:JSON.stringify({id:e})})).data}catch(e){throw console.error("Delete Error:",e),e}}),[s]);return{insertStudent:i,fetchStudents:u,updateStudent:l,deleteStudent:m,students:d,loading:c}}; //# sourceMappingURL=index.cjs.js.map