bigbuffet-rw/app/soapbox/reducers/me.js
2021-10-20 16:27:36 -05:00

31 lines
722 B
JavaScript

import {
ME_FETCH_SUCCESS,
ME_FETCH_FAIL,
ME_FETCH_SKIP,
ME_PATCH_SUCCESS,
} from '../actions/me';
import {
AUTH_LOGGED_OUT,
AUTH_ACCOUNT_REMEMBER_SUCCESS,
VERIFY_CREDENTIALS_SUCCESS,
} from '../actions/auth';
const initialState = null;
export default function me(state = initialState, action) {
switch(action.type) {
case ME_FETCH_SUCCESS:
case ME_PATCH_SUCCESS:
return action.me.id;
case VERIFY_CREDENTIALS_SUCCESS:
case AUTH_ACCOUNT_REMEMBER_SUCCESS:
return state || action.account.id;
case ME_FETCH_SKIP:
case AUTH_LOGGED_OUT:
return false;
case ME_FETCH_FAIL:
return [401, 403].includes(action.error.response.status) ? false : state;
default:
return state;
}
}