import {useDispatch, useSelector } from 'react-redux';
const profile = useSelector((state: MapStateToProps)
=> state.profile);
const dispatch = useDispatch();
dispatch(getUser());
dispatch(getAccount(value))
export const getAccount = (context: any) => async (dispatch: Dispatch) => {
const ctx = isEmpty(context);
if (!params.isBrowser) {
dispatch(setUser({ Id: 0, fetching: true, IsLogin: false }));
const headersValue = {
accept: 'application/json, text/plain, */*',
'content-type': 'application/json; charset=UTF-8',
};
try {
const accountInfo = await request();
if (accountInfo) {
dispatch(
setUser({
Id: accountInfo.id
}),
);
} else {
dispatch(setUser({ Id: -1, IsLogin: false, fetching: false }));
}
} catch (e) {
dispatch(setUser({ Id: -2, IsLogin: false, fetching: false }));
}
}
};
export const setUser = createAction('SET_USER')<Profile>();
export const getUser = (context = {}) => async (dispatch: Dispatch) => {
const ctx = isEmpty(context);
const params = {
headers: {} as any,
isBrowser: true,
};
if (params.isBrowser) {
dispatch(setUser({ fetching: true }));
const userInfo: Res<UserInfo> = await request()
if (userInfo?.Result) {
dispatch(
setUser({
Id: userInfo.Id,
}),
);
} else {
dispatch(setUser({ fetching: false }));
}
}
};