A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/markerikson/project-minimek/commit/018c55214a03d25a8da8592390567dbd5878c411 below:

Add generic reducer logic for editing an entity · markerikson/project-minimek@018c552 · GitHub

File tree Expand file treeCollapse file tree 4 files changed

+104

-0

lines changed

Filter options

Expand file treeCollapse file tree 4 files changed

+104

-0

lines changed Original file line number Diff line number Diff line change

@@ -0,0 +1,37 @@

1 +

import {

2 +

EDIT_ITEM_EXISTING,

3 +

EDIT_ITEM_UPDATE,

4 +

EDIT_ITEM_STOP

5 +

} from "./editingConstants";

6 + 7 + 8 +

export function editExistingItem(itemType, itemID) {

9 +

return {

10 +

type : EDIT_ITEM_EXISTING,

11 +

payload : {

12 +

itemType,

13 +

itemID

14 +

},

15 +

};

16 +

}

17 + 18 +

export function editItemAttributes(itemType, itemID, newItemAttributes) {

19 +

return {

20 +

type : EDIT_ITEM_UPDATE,

21 +

payload : {

22 +

itemType,

23 +

itemID,

24 +

newItemAttributes,

25 +

},

26 +

};

27 +

}

28 + 29 +

export function stopEditingItem(itemType, itemID) {

30 +

return {

31 +

type : EDIT_ITEM_STOP,

32 +

payload : {

33 +

itemType,

34 +

itemID

35 +

},

36 +

};

37 +

}

Original file line number Diff line number Diff line change

@@ -0,0 +1,3 @@

1 +

export const EDIT_ITEM_EXISTING = "EDIT_ITEM_EXISTING";

2 +

export const EDIT_ITEM_UPDATE = "EDIT_ITEM_UPDATE";

3 +

export const EDIT_ITEM_STOP = "EDIT_ITEM_STOP";

Original file line number Diff line number Diff line change

@@ -1,7 +1,70 @@

1 1

import {createReducer} from "common/utils/reducerUtils";

2 2 3 +

import {

4 +

createEntity,

5 +

updateEntity,

6 +

deleteEntity

7 +

} from "features/entities/entityReducer";

8 + 9 +

import {

10 +

EDIT_ITEM_EXISTING,

11 +

EDIT_ITEM_UPDATE,

12 +

EDIT_ITEM_STOP

13 +

} from "./editingConstants";

14 + 15 + 16 +

import {selectEntities} from "features/entities/entitySelectors";

17 +

import {selectEditingEntities} from "./editingSelectors";

18 +

import {

19 +

readEntityData,

20 +

updateEditingEntitiesState,

21 +

} from "./editingUtils";

22 + 23 + 24 + 25 +

export function copyEntity(sourceEntities, destinationEntities, payload) {

26 +

const {itemID, itemType} = payload;

27 + 28 +

const newItemAttributes = readEntityData(sourceEntities, itemType, itemID);

29 +

const creationPayload = {itemType, itemID, newItemAttributes}

30 + 31 +

const updatedEntities = createEntity(destinationEntities, creationPayload);

32 +

return updatedEntities;

33 +

}

34 + 35 + 36 + 37 + 38 +

export function editItemExisting(state, payload) {

39 +

const entities = selectEntities(state);

40 +

const editingEntities = selectEditingEntities(state);

41 + 42 +

const updatedEditingEntities = copyEntity(entities, editingEntities, payload);

43 + 44 +

return updateEditingEntitiesState(state, updatedEditingEntities);

45 +

}

46 + 47 +

export function editItemUpdate(state, payload) {

48 +

const editingEntities = selectEditingEntities(state);

49 + 50 +

const updatedEditingEntities = updateEntity(editingEntities, payload);

51 +

return updateEditingEntitiesState(state, updatedEditingEntities);

52 +

}

53 + 54 +

export function editItemStop(state, payload) {

55 +

const editingEntities = selectEditingEntities(state);

56 + 57 +

const updatedEditingEntities = deleteEntity(editingEntities, payload);

58 +

return updateEditingEntitiesState(state, updatedEditingEntities);

59 +

}

60 + 61 + 62 + 3 63 4 64

const editingFeatureReducer = createReducer({}, {

65 +

[EDIT_ITEM_EXISTING] : editItemExisting,

66 +

[EDIT_ITEM_UPDATE] : editItemUpdate,

67 +

[EDIT_ITEM_STOP] : editItemStop,

5 68

});

6 69 7 70

export default editingFeatureReducer;

Original file line number Diff line number Diff line change

@@ -0,0 +1 @@

1 +

export const selectEditingEntities = state => state.editingEntities;

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4