/** store app for stock **/
import React, {createContext, useReducer, useEffect} from 'react';
import axios from 'axios';

const url_stock = '/.netlify/functions/getstock';

export const initialState = {
  stock: [],
};

// create context for dispatch
export const StoreContext = createContext(initialState);

const reducer = (state, action) => {
  switch ((state, action.type)) {
    case 'setStock':
      return {...state, ...{stock: action.payload}};
    default:
      return state;
  }
};

const StoreProvider = ({children}) => {
  const [state, dispatch] = useReducer(reducer, initialState);
  // update state
  useEffect(() => {
    axios
      .get(url_stock)
      .then(function ({data}) {
        if (Array.isArray(data)) {
          dispatch({type: 'setStock', payload: data});
        }
      })
      .catch(function (error) {
        // handle error
        console.log(error);
      });
  }, []);

  return (
    <StoreContext.Provider value={state}>{children}</StoreContext.Provider>
  );
};

export default StoreProvider;