From 09c523602d07edee9c92034329d59c4662cbd0a3 Mon Sep 17 00:00:00 2001 From: Mark Erikson Date: Sun, 22 Jan 2017 17:47:57 -0500 Subject: [PATCH] Add logic to reset a currently edited item --- src/features/editing/editingActions.js | 11 +++++++++++ src/features/editing/editingConstants.js | 3 ++- src/features/editing/editingReducer.js | 10 ++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/features/editing/editingActions.js b/src/features/editing/editingActions.js index 6fa925c..e4acab8 100644 --- a/src/features/editing/editingActions.js +++ b/src/features/editing/editingActions.js @@ -3,6 +3,7 @@ import { EDIT_ITEM_UPDATE, EDIT_ITEM_APPLY, EDIT_ITEM_STOP, + EDIT_ITEM_RESET, } from "./editingConstants"; @@ -45,4 +46,14 @@ export function stopEditingItem(itemType, itemID) { itemID }, }; +} + +export function resetEditedItem(itemType, itemID) { + return { + type : EDIT_ITEM_RESET, + payload : { + itemType, + itemID, + }, + }; } \ No newline at end of file diff --git a/src/features/editing/editingConstants.js b/src/features/editing/editingConstants.js index 058076e..9aa97df 100644 --- a/src/features/editing/editingConstants.js +++ b/src/features/editing/editingConstants.js @@ -1,4 +1,5 @@ export const EDIT_ITEM_EXISTING = "EDIT_ITEM_EXISTING"; export const EDIT_ITEM_UPDATE = "EDIT_ITEM_UPDATE"; export const EDIT_ITEM_APPLY = "EDIT_ITEM_APPLY"; -export const EDIT_ITEM_STOP = "EDIT_ITEM_STOP"; \ No newline at end of file +export const EDIT_ITEM_STOP = "EDIT_ITEM_STOP"; +export const EDIT_ITEM_RESET = "EDIT_ITEM_RESET"; \ No newline at end of file diff --git a/src/features/editing/editingReducer.js b/src/features/editing/editingReducer.js index 7e5e65f..a2a3610 100644 --- a/src/features/editing/editingReducer.js +++ b/src/features/editing/editingReducer.js @@ -13,6 +13,7 @@ import { EDIT_ITEM_UPDATE, EDIT_ITEM_APPLY, EDIT_ITEM_STOP, + EDIT_ITEM_RESET, } from "./editingConstants"; import {getModelByType} from "common/utils/modelUtils"; @@ -108,12 +109,21 @@ export function editItemApply(state, payload) { } +export function editItemReset(state, payload) { + const stateWithoutItem = editItemStop(state, payload); + const stateWithCurrentItem = editItemExisting(stateWithoutItem, payload); + + return stateWithCurrentItem; +} + + const editingFeatureReducer = createReducer({}, { [EDIT_ITEM_EXISTING] : editItemExisting, [EDIT_ITEM_UPDATE] : editItemUpdate, [EDIT_ITEM_APPLY] : editItemApply, [EDIT_ITEM_STOP] : editItemStop, + [EDIT_ITEM_RESET] : editItemReset, }); export default editingFeatureReducer;