feat(certs): Convert certification views to gatsby
This commit is contained in:
committed by
mrugesh mohapatra
parent
dc00eb8555
commit
77a4452437
@ -4,19 +4,28 @@ import { createTypes, createAsyncTypes } from '../utils/createTypes';
|
||||
import { createFetchUserSaga } from './fetch-user-saga';
|
||||
import { createAcceptTermsSaga } from './accept-terms-saga';
|
||||
import { createAppMountSaga } from './app-mount-saga';
|
||||
import { createShowCertSaga } from './show-cert-saga';
|
||||
import { createUpdateMyEmailSaga } from './update-email-saga';
|
||||
|
||||
const ns = 'app';
|
||||
|
||||
const defaultFetchState = {
|
||||
pending: true,
|
||||
complete: false,
|
||||
errored: false,
|
||||
error: null
|
||||
};
|
||||
|
||||
const initialState = {
|
||||
appUsername: '',
|
||||
fetchState: {
|
||||
pending: true,
|
||||
complete: false,
|
||||
errored: false,
|
||||
error: null
|
||||
showCert: {},
|
||||
showCertFetchState: {
|
||||
...defaultFetchState
|
||||
},
|
||||
user: {}
|
||||
user: {},
|
||||
userFetchState: {
|
||||
...defaultFetchState
|
||||
}
|
||||
};
|
||||
|
||||
const types = createTypes(
|
||||
@ -24,6 +33,7 @@ const types = createTypes(
|
||||
'appMount',
|
||||
...createAsyncTypes('fetchUser'),
|
||||
...createAsyncTypes('acceptTerms'),
|
||||
...createAsyncTypes('showCert'),
|
||||
...createAsyncTypes('updateMyEmail')
|
||||
],
|
||||
ns
|
||||
@ -33,7 +43,8 @@ export const sagas = [
|
||||
...createAcceptTermsSaga(types),
|
||||
...createAppMountSaga(types),
|
||||
...createFetchUserSaga(types),
|
||||
...createUpdateMyEmailSaga(types)
|
||||
...createUpdateMyEmailSaga(types),
|
||||
...createShowCertSaga(types)
|
||||
];
|
||||
|
||||
export const appMount = createAction(types.appMount);
|
||||
@ -46,12 +57,24 @@ export const fetchUser = createAction(types.fetchUser);
|
||||
export const fetchUserComplete = createAction(types.fetchUserComplete);
|
||||
export const fetchUserError = createAction(types.fetchUserError);
|
||||
|
||||
export const showCert = createAction(types.showCert);
|
||||
export const showCertComplete = createAction(types.showCertComplete);
|
||||
export const showCertError = createAction(types.showCertError);
|
||||
|
||||
export const updateMyEmail = createAction(types.updateMyEmail);
|
||||
export const updateMyEmailComplete = createAction(types.updateMyEmailComplete);
|
||||
export const updateMyEmailError = createAction(types.updateMyEmailError);
|
||||
|
||||
export const isSignedInSelector = state => !!Object.keys(state[ns].user).length;
|
||||
export const userFetchStateSelector = state => state[ns].fetchState;
|
||||
|
||||
export const showCertSelector = state => state[ns].showCert;
|
||||
export const showCertFetchStateSelector = state => state[ns].showCertFetchState;
|
||||
|
||||
export const userByNameSelector = username => state => {
|
||||
const { user } = state[ns];
|
||||
return username in user ? user[username] : {};
|
||||
};
|
||||
export const userFetchStateSelector = state => state[ns].userFetchState;
|
||||
export const usernameSelector = state => state[ns].appUsername;
|
||||
export const userSelector = state => state[ns].user;
|
||||
|
||||
@ -59,18 +82,13 @@ export const reducer = handleActions(
|
||||
{
|
||||
[types.fetchUser]: state => ({
|
||||
...state,
|
||||
fetchState: {
|
||||
pending: true,
|
||||
complete: false,
|
||||
errored: false,
|
||||
error: null
|
||||
}
|
||||
userFetchState: { ...defaultFetchState }
|
||||
}),
|
||||
[types.fetchUserComplete]: (state, { payload: { user, username } }) => ({
|
||||
...state,
|
||||
user,
|
||||
appUsername: username,
|
||||
fetchState: {
|
||||
userFetchState: {
|
||||
pending: false,
|
||||
complete: true,
|
||||
errored: false,
|
||||
@ -79,7 +97,32 @@ export const reducer = handleActions(
|
||||
}),
|
||||
[types.fetchUserError]: (state, { payload }) => ({
|
||||
...state,
|
||||
fetchState: {
|
||||
userFetchState: {
|
||||
pending: false,
|
||||
complete: false,
|
||||
errored: true,
|
||||
error: payload
|
||||
}
|
||||
}),
|
||||
[types.showCert]: state => ({
|
||||
...state,
|
||||
showCert: {},
|
||||
showCertFetchState: { ...defaultFetchState }
|
||||
}),
|
||||
[types.showCertComplete]: (state, { payload }) => ({
|
||||
...state,
|
||||
showCert: payload,
|
||||
showCertFetchState: {
|
||||
pending: false,
|
||||
complete: true,
|
||||
errored: false,
|
||||
error: null
|
||||
}
|
||||
}),
|
||||
[types.showCertError]: (state, { payload }) => ({
|
||||
...state,
|
||||
showCert: {},
|
||||
showCertFetchState: {
|
||||
pending: false,
|
||||
complete: false,
|
||||
errored: true,
|
||||
|
Reference in New Issue
Block a user