// import axios from 'axios';
import {
	// SAVE_PROFILE_PIC_SUCCESS,
	// SAVE_PROFILE_PIC_FAIL,
	// ONBOARDING_UPDATE,
	// HOME_ONBOARDING_UPDATE,
	// USER_UPDATED,
	UPDATE_USER_STATE,
	// UPDATE_USER_STATE_FAIL,
} from "./types";
// import { baseUrl } from '../config';
// import { userActions } from '../webapi';

// const ROOT_URL = baseUrl;

// export const updateProfilePic = uri => {
//   return async dispatch => {
//     let userID = null;
//     let token = null;
//     if (userID) {
//       dispatch({
//         type: SAVE_PROFILE_PIC_SUCCESS,
//         payload: { profilePic: uri },
//       });
//       await axios({
//         method: 'post',
//         url: `${ROOT_URL}/updateProfilePic`,
//         data: {
//           uri,
//           userID,
//         },
//         headers: {
//           authorization: `Bearer ${token}`,
//         },
//       })
//         .then(() => {
//           dispatch({
//             type: SAVE_PROFILE_PIC_SUCCESS,
//             payload: { profilePic: uri },
//           });
//         })
//         .catch(error => {
//           console.log(error.response.data);
//           dispatch({ type: SAVE_PROFILE_PIC_FAIL });
//         });
//     }
//   };
// };

// export const updateUser = (input, callback) => {
//   return async dispatch => {
//     console.log('update User Action hit');
//     dispatch({
//       type: USER_UPDATED,
//       payload: input,
//     });
//   };
// };

export const softUpdateUser = (input) => {
	return {
		type: UPDATE_USER_STATE,
		payload: input,
	};
};

export const updateNavRead = (input) => {
	return async (dispatch) => {
		setTimeout(() => {
			dispatch({
				type: UPDATE_USER_STATE,
				payload: { openedNotifs: input },
			});
		}, 500);
	};
};

/* 
Update user data without triggering uploadingProfile or uploadingProfilePic
*/
// export const silentUpdateUser = (input, immediate) => {
//   return async dispatch => {
//     if (immediate) {
//       dispatch({
//         type: UPDATE_USER_STATE,
//         payload: input,
//       });
//     }
//     userActions
//       .updateProfile(input)
//       .then(res => {
//         if (res.data.userCreationFail) {
//           console.log('user update failed', res.data.message);
//           dispatch({
//             type: UPDATE_USER_STATE_FAIL,
//             payload: res.data.message,
//           });
//         } else {
//           dispatch({
//             type: UPDATE_USER_STATE,
//             payload: input,
//           });
//         }
//       })
//       .catch(err => {
//         console.log('user update fail -- Silent Upate', err);
//       });
//   };
// };

// export const seenOnboarding = () => {
//   return async dispatch => {
//     dispatch({ type: ONBOARDING_UPDATE });
//     let userID = null;
//     let token = null;
//     if (userID) {
//       await axios({
//         method: 'post',
//         url: `${ROOT_URL}/updateProfile`,
//         data: {
//           userID,
//           details: {
//             onBoardingSeen: true,
//           },
//         },
//         headers: {
//           authorization: `Bearer ${token}`,
//         },
//       })
//         .then(() => {})
//         .catch(() => {
//           console.log('onBoarding update fail');
//         });
//     }
//   };
// };

/* 
    Will combine this eventually with above function
*/
// export const seenHomeOnboarding = () => {
//   return async dispatch => {
//     dispatch({ type: HOME_ONBOARDING_UPDATE });
//     let userID = null;
//     let token = null;
//     if (userID) {
//       await axios({
//         method: 'post',
//         url: `${ROOT_URL}/updateProfile`,
//         data: {
//           userID,
//           details: {
//             homeOnboardingSeen: true,
//           },
//         },
//         headers: {
//           authorization: `Bearer ${token}`,
//         },
//       })
//         .then(() => {})
//         .catch(() => {
//           console.log('onBoarding update fail');
//         });
//     }
//   };
// };

/* 
Triggered at app startup for saving user current home takeover. 
*/
// export const updateUserStartupTakeover = async input => {
//   let userID = null;
//   let token = null;
//   if (userID) {
//     await axios({
//       method: 'post',
//       url: `${ROOT_URL}/updateProfile`,
//       data: {
//         userID,
//         details: input,
//       },
//       headers: {
//         authorization: `Bearer ${token}`,
//       },
//     })
//       .then(() => {})
//       .catch(() => {
//         console.log('startup takeover save fail -- Update User Startup Takeover');
//       });
//   }
// };

// export const registerStandaloneUser = takeover => {
//   return async dispatch => {
//     let userObj = null;
//     if (userObj && takeover) {
//       await axios({
//         method: 'post',
//         url: `${ROOT_URL}/registerStandaloneUser`,
//         data: {
//           userObj,
//           takeoverKey: takeover.Key,
//         },
//         headers: {
//           authorization: 'Gweg',
//         },
//       })
//         .then(() => {
//           dispatch({
//             type: UPDATE_USER_STATE,
//             payload: { standaloneRegistered: true },
//           });
//         })
//         .catch(() => {
//           console.log('register standalone user -- fail');
//         });
//     } else {
//       console.log('Failed to detect user for takeover registration');
//     }
//   };
// };
