UNPKG

ars-react

Version:

Making React and Redux and React router dom easy to use and make with ARS react

40 lines (36 loc) 1.18 kB
import {useEffect} from "react"; import {connect} from "react-redux"; ars.load_module = function (url_with_data, component) { if (typeof component !== "function") throw new Error("ars.load_module did not found it's react component!"); let dataLoader = {}; let data_to_pass = {data: {}}; let apiData = undefined; let apiURL = undefined; if (typeof url_with_data === "object") { apiData = url_with_data["data"]; apiURL = url_with_data["url"]; }else{ apiURL = url_with_data["url"]; } dataLoader = () => async (dispatch) => { try { const res = await ars.post(apiURL, apiData); data_to_pass = {data: res.data}; } catch (e) { data_to_pass = {error: e.response}; } dispatch({type: "ars"}) } return connect( (state) => (data_to_pass), {dataLoader} )((props) => { if (props.dataLoader && typeof props.dataLoader === "function") { useEffect(() => { props.dataLoader(); }, []); } return component(props); }); };