mirror of
				https://github.com/fspc/workstand.git
				synced 2025-10-31 08:25:35 -04: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