dailylog 7-15-20

less than 1 minute read

How I eventually “solved” the local host / grabbing from api issue

import { useState, useEffect } from "react";
import axios from "axios";

const useLocalStorage = (key, year) => {
  const [state, setState] = useState(() => {
    console.log(
      "GETTING LOCALLY*******************************************************"
    );
    let val;
    try {
      val = JSON.parse(window.localStorage.getItem(key) || []);
    } catch (e) {
      val = [];
    }
    return val;
  });

  useEffect(() => {
    window.localStorage.setItem(key, JSON.stringify(state));
  }, [key, state]);

  useEffect(() => {
    async function getData() {
      console.log("GETTING from api -------------------------------");
      const response = await axios.get(
        `https://raw.githubusercontent.com/aaroncaraway/data/master/${year}moviesALL.json`
      );
      console.log(response.data);

      setState(response.data);
    }
    const val = JSON.parse(window.localStorage.getItem(key)) || [];
    if (val.length === 0) {
      getData();
    }
  }, [key, year]);

  return [state, setState];
};

export default useLocalStorage;