mirror of
https://github.com/strapi/strapi.git
synced 2025-12-24 13:43:41 +00:00
70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
/*
|
|
*
|
|
* Edit reducer
|
|
*
|
|
*/
|
|
|
|
import { fromJS } from 'immutable';
|
|
import {
|
|
SET_CURRENT_MODEL_NAME,
|
|
LOAD_RECORD,
|
|
LOAD_RECORD_SUCCESS,
|
|
SET_RECORD_ATTRIBUTE,
|
|
EDIT_RECORD,
|
|
EDIT_RECORD_SUCCESS,
|
|
EDIT_RECORD_ERROR,
|
|
DELETE_RECORD,
|
|
DELETE_RECORD_SUCCESS,
|
|
DELETE_RECORD_ERROR,
|
|
} from './constants';
|
|
|
|
const initialState = fromJS({
|
|
currentModelName: null,
|
|
loading: false,
|
|
record: null,
|
|
editing: false,
|
|
deleting: false,
|
|
});
|
|
|
|
function editReducer(state = initialState, action) {
|
|
switch (action.type) {
|
|
case SET_CURRENT_MODEL_NAME:
|
|
return state
|
|
.set('currentModelName', action.currentModelName);
|
|
case LOAD_RECORD:
|
|
return state
|
|
.set('loading', true)
|
|
.set('model', action.model)
|
|
.set('id', action.id);
|
|
case LOAD_RECORD_SUCCESS:
|
|
return state
|
|
.set('loading', false)
|
|
.set('record', fromJS(action.record));
|
|
case SET_RECORD_ATTRIBUTE:
|
|
return state
|
|
.setIn(['record', action.key], action.value);
|
|
case EDIT_RECORD:
|
|
return state
|
|
.set('editing', true);
|
|
case EDIT_RECORD_SUCCESS:
|
|
return state
|
|
.set('editing', false);
|
|
case EDIT_RECORD_ERROR:
|
|
return state
|
|
.set('editing', false);
|
|
case DELETE_RECORD:
|
|
return state
|
|
.set('deleting', true);
|
|
case DELETE_RECORD_SUCCESS:
|
|
return state
|
|
.set('deleting', false);
|
|
case DELETE_RECORD_ERROR:
|
|
return state
|
|
.set('deleting', false);
|
|
default:
|
|
return state;
|
|
}
|
|
}
|
|
|
|
export default editReducer;
|