mirror of
https://github.com/fspc/workstand.git
synced 2025-02-23 09:13:23 -05:00
Update bike details.
This commit is contained in:
parent
1dbefb2d4b
commit
780825b828
@ -10,4 +10,5 @@ export const setBikeIsSaving = createAction('set bike.isSaving');
|
||||
export const setBikeSaveFailed = createAction('set bike.isSaving');
|
||||
export const editBike = createAction('edit bike');
|
||||
export const createBike = createAction('create bike');
|
||||
export const saveBike = createAction('save bike');
|
||||
export const saveBike = createAction('save bike');
|
||||
export const mergeBike = createAction('merge bike');
|
@ -1,4 +1,4 @@
|
||||
import { setBikes, setBikesFetched, setBikesIsFetching, setBikesFetchFailed, createBike, editBike } from './actions';
|
||||
import { setBikes, setBikesFetched, setBikesIsFetching, setBikesFetchFailed, createBike, editBike, mergeBike } from './actions';
|
||||
import { handleActions } from 'redux-actions';
|
||||
|
||||
export default handleActions({
|
||||
@ -34,4 +34,8 @@ export default handleActions({
|
||||
create: true,
|
||||
},
|
||||
}),
|
||||
[mergeBike]: (state, action) => ({
|
||||
...state,
|
||||
entities: { ...state.entities, ...action.payload.entities.bikes },
|
||||
})
|
||||
}, { entities: {}, form: { bike: null, create: undefined }, isFetching: false, fetched: false, fetchFailed: undefined });
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { call, put, takeEvery, takeLatest } from 'redux-saga/effects';
|
||||
import { fetchBikes as fetchBikesAction, setBikes, setBikesIsFetching, setBikesFetched,
|
||||
setBikesFetchFailed, setBikeSaved, setBikeSaveFailed, setBikeIsSaving, saveBike as saveBikeAction } from './actions';
|
||||
setBikesFetchFailed, setBikeSaved, setBikeSaveFailed, setBikeIsSaving, saveBike as saveBikeAction, mergeBike } from './actions';
|
||||
import { normalize, denormalize } from 'normalizr';
|
||||
import * as schema from './schema';
|
||||
import Api from './services';
|
||||
@ -28,14 +28,14 @@ function* watchFetchBikes() {
|
||||
function* saveBike(action) {
|
||||
try {
|
||||
yield put({ type: setBikeIsSaving.toString(), payload: true });
|
||||
const bike = yield call(Api.saveBike(action.payload));
|
||||
yield put({ type: setBikes.toString(), payload: normalize([state])})
|
||||
yield put({ type: setBikeSaved, payload: true})
|
||||
const bike = yield call(Api.saveBike, action.payload);
|
||||
yield put({ type: mergeBike.toString(), payload: normalize([bike], schema.bikes)})
|
||||
yield put({ type: setBikeSaved.toString(), payload: true})
|
||||
} catch (e) {
|
||||
yield put({ type: setBikeSaveFailed, payload: false });
|
||||
throw(e);
|
||||
} finally {
|
||||
yield put({ type: setBikeIsSaving.toSource(), payload: false });
|
||||
yield put({ type: setBikeIsSaving.toString(), payload: false });
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user