* create warehouse * edit warehouse changes * Update: linted and formatted * add warehouse button * Update: linted Co-authored-by: [Diksha] <[diksha39511@gmail.com]> Co-authored-by: Llewellyn Dsouza <lledsouza2209@gmail.com>
117 lines
3.8 KiB
JavaScript
117 lines
3.8 KiB
JavaScript
import { createActions, createReducer } from 'reduxsauce';
|
|
import Immutable from 'seamless-immutable';
|
|
import _ from 'underscore';
|
|
import { getFetchingValue, getErrorValue } from '../services/Utils';
|
|
|
|
/* ------------- Types and Action Creators ------------- */
|
|
const { Types, Creators } = createActions({
|
|
warehouseDataAction: ['payload'],
|
|
warehouseDataSuccess: ['data'],
|
|
warehouseDataFailure: ['error'],
|
|
|
|
createWarehouseAction: ['payload'],
|
|
createWarehouseSuccess: ['data'],
|
|
createWarehouseFailure: ['error'],
|
|
|
|
editWarehouseAction: ['payload'],
|
|
editWarehouseSuccess: ['data'],
|
|
editWarehouseFailure: ['error']
|
|
});
|
|
|
|
export const WarehouseTypes = Types;
|
|
const WarehouseActions = Creators;
|
|
export default WarehouseActions;
|
|
|
|
/* ------------- Initial State ------------- */
|
|
export const INITIAL_STATE = Immutable({
|
|
warehouseDetail: [],
|
|
error: {},
|
|
|
|
createWarehouse: [],
|
|
createWarehouseLoading: false,
|
|
createWarehouseError: {},
|
|
|
|
editWarehouse: [],
|
|
editWarehouseLoading: false,
|
|
editWarehouseError: {}
|
|
});
|
|
|
|
/* ------------- Selectors ------------- */
|
|
export const WarehouseSelectors = {
|
|
getWarehouseDetail: (state) => state.warehouse.warehouseDetail,
|
|
createWarehouseDetail: (state) => state.warehouse.createWarehouse,
|
|
editWarehouseDetail: (state) => state.warehouse.editWarehouse
|
|
};
|
|
|
|
/* ------------- Reducers ------------- */
|
|
export const onWarehouseDataAction = (state, { payload }) =>
|
|
state.merge({
|
|
fetching: _.uniq([state.fetching, payload?.loader]),
|
|
error: getErrorValue(state?.error, payload?.loader)
|
|
});
|
|
|
|
export const onWarehouseDataSuccess = (state, { data }) =>
|
|
state.merge({
|
|
fetching: getFetchingValue(state.fetching, data?.loader),
|
|
error: getErrorValue(state?.error, data?.loader),
|
|
warehouseDetail: data.warehouseDetail
|
|
});
|
|
|
|
export const onWarehouseDataFailure = (state, { error }) =>
|
|
state.merge({
|
|
fetching: _.without(state.fetching, error?.loader),
|
|
error: { ...state.error, [error?.loader]: error?.error }
|
|
});
|
|
|
|
export const onCreateWarehouseAction = (state, { payload }) =>
|
|
state.merge({
|
|
fetching: _.uniq([state.fetching, payload?.loader]),
|
|
error: getErrorValue(state?.error, payload?.loader)
|
|
});
|
|
|
|
export const onCreateWarehouseSuccess = (state, { data }) =>
|
|
state.merge({
|
|
fetching: getFetchingValue(state.fetching, data?.loader),
|
|
error: getErrorValue(state?.error, data?.loader),
|
|
createWarehouse: data.createWarehouse
|
|
});
|
|
|
|
export const onCreateWarehouseFailure = (state, { error }) =>
|
|
state.merge({
|
|
fetching: _.without(state.fetching, error?.loader),
|
|
error: { ...state.error, [error?.loader]: error?.error }
|
|
});
|
|
|
|
export const onEditWarehouseAction = (state, { payload }) =>
|
|
state.merge({
|
|
fetching: _.uniq([state.fetching, payload?.loader]),
|
|
error: getErrorValue(state?.error, payload?.loader)
|
|
});
|
|
|
|
export const onEditWarehouseSuccess = (state, { data }) =>
|
|
state.merge({
|
|
fetching: getFetchingValue(state.fetching, data?.loader),
|
|
error: getErrorValue(state?.error, data?.loader),
|
|
editWarehouse: data.editWarehouse
|
|
});
|
|
|
|
export const onEditWarehouseFailure = (state, { error }) =>
|
|
state.merge({
|
|
fetching: _.without(state.fetching, error?.loader),
|
|
error: { ...state.error, [error?.loader]: error?.error }
|
|
});
|
|
/* ------------- Hookup Reducers To Types ------------- */
|
|
export const warehouseReducer = createReducer(INITIAL_STATE, {
|
|
[Types.WAREHOUSE_DATA_ACTION]: onWarehouseDataAction,
|
|
[Types.WAREHOUSE_DATA_SUCCESS]: onWarehouseDataSuccess,
|
|
[Types.WAREHOUSE_DATA_FAILURE]: onWarehouseDataFailure,
|
|
|
|
[Types.CREATE_WAREHOUSE_ACTION]: onCreateWarehouseAction,
|
|
[Types.CREATE_WAREHOUSE_SUCCESS]: onCreateWarehouseSuccess,
|
|
[Types.CREATE_WAREHOUSE_FAILURE]: onCreateWarehouseFailure,
|
|
|
|
[Types.EDIT_WAREHOUSE_ACTION]: onEditWarehouseAction,
|
|
[Types.EDIT_WAREHOUSE_SUCCESS]: onEditWarehouseSuccess,
|
|
[Types.EDIT_WAREHOUSE_FAILURE]: onEditWarehouseFailure
|
|
});
|