@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
60 lines (59 loc) • 2.33 kB
JavaScript
import { EMPTY_ARRAY } from '../../Utilities/Constants/GeneralConstants';
import AdaptableHelper from '../../Utilities/Helpers/AdaptableHelper';
export const CALCULATED_COLUMN_ADD = 'CALCULATED_COLUMN_ADD';
export const CALCULATED_COLUMN_EDIT = 'CALCULATED_COLUMN_EDIT';
export const CALCULATED_COLUMN_DELETE = 'CALCULATED_COLUMN_DELETE';
export const CALCULATED_COLUMN_READY = 'CALCULATED_COLUMN_READY';
export const CalculatedColumnAdd = (calculatedColumn) => ({
type: CALCULATED_COLUMN_ADD,
calculatedColumn,
});
export const CalculatedColumnEdit = (calculatedColumn) => ({
type: CALCULATED_COLUMN_EDIT,
calculatedColumn,
});
export const CalculatedColumnDelete = (calculatedColumn) => ({
type: CALCULATED_COLUMN_DELETE,
calculatedColumn,
});
export const CalculatedColumnReady = (calculatedColumnState) => ({
type: CALCULATED_COLUMN_READY,
calculatedColumnState,
});
const initialState = {
CalculatedColumns: EMPTY_ARRAY,
};
export const CalculatedColumnReducer = (state = initialState, action) => {
let calculatedColumns;
switch (action.type) {
case CALCULATED_COLUMN_ADD: {
const actionCalculatedColumn = action
.calculatedColumn;
AdaptableHelper.addAdaptableObjectPrimitives(actionCalculatedColumn);
calculatedColumns = [].concat(state.CalculatedColumns);
calculatedColumns.push(actionCalculatedColumn);
return { ...state, CalculatedColumns: calculatedColumns };
}
case CALCULATED_COLUMN_EDIT: {
const actionCalculatedColumn = action
.calculatedColumn;
return {
...state,
CalculatedColumns: state.CalculatedColumns.map((abObject) => abObject.Uuid === actionCalculatedColumn.Uuid
?
Object.assign(abObject, actionCalculatedColumn)
: abObject),
};
}
case CALCULATED_COLUMN_DELETE: {
const actionCalculatedColumn = action
.calculatedColumn;
return {
...state,
CalculatedColumns: state.CalculatedColumns.filter((abObject) => abObject.Uuid !== actionCalculatedColumn.Uuid),
};
}
default:
return state;
}
};