import { jwtDecode } from '../utils'

function authReducer(state, {type, token}){
  if (!state){
      if(localStorage.authToken){  //проверить localStorage.authToken на наличие
        return {
        'type': 'AUTH_LOGIN',
        'token':localStorage.authToken,
        };                         //если есть - сделать так, что бы следующий if сработал
      }  else { return state = {}}                            //если нет - вернуть {}
  }
  if (type === 'AUTH_LOGIN'){
    const bigToken =  jwtDecode(token);   //взять токен из action
    if (bigToken) {                                //попытаться его jwtDecode
      localStorage.setItem('authToken', token);                              //если удалось, то:
      return { 
        token,
        payload: bigToken,
      }
    }                                              //сохранить токен в localStorage
  }                                                //вернуть объект вида {токен, payload: раскодированный токен}
  if (type === 'AUTH_LOGOUT'){
    localStorage.clear();                          //почистить localStorage
    return {};                                     //вернуть пустой объект
  }
  return state
}

export default authReducer;
