import { useState } from "react";

export default function useAuth() {
  const [data, setdata] = useState(getChachedUser());

  function signin(res) {
    setdata({ ...data, ...res });
    localStorage.setItem("AuthUser", JSON.stringify(res));
    res?.token && localStorage.setItem("AuthToken", res.token);
  }

  function signout() {
    setdata();
    localStorage.removeItem("AuthUser");
    localStorage.removeItem("AuthToken");
  }

  return {
    user: data,
    signin,
    signout,
    // check,
  };
}

function getChachedUser() {
  let raw = localStorage.getItem("AuthUser");
  if (raw) {
    try {
      return JSON.parse(raw);
    } catch (error) {
      return null;
    }
  } else return null;
}
