+58
-18
lines changedFilter options
+58
-18
lines changed Original file line number Diff line number Diff line change
@@ -26,6 +26,9 @@ export function copyEntity(sourceEntities, destinationEntities, payload) {
26
26
const {itemID, itemType} = payload;
27
27
28
28
const newItemAttributes = readEntityData(sourceEntities, itemType, itemID);
29
+
if(newItemAttributes.name) {
30
+
newItemAttributes.name += " (copied)";
31
+
}
29
32
const creationPayload = {itemType, itemID, newItemAttributes}
30
33
31
34
const updatedEntities = createEntity(destinationEntities, creationPayload);
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
1
-
export const selectEditingEntities = state => state.editingEntities;
1
+
import {createSelector} from "reselect";
2
+
3
+
import schema from "app/schema";
4
+
5
+
6
+
export const selectEditingEntities = state => state.editingEntities;
7
+
8
+
export const getEditingEntitiesSession = createSelector(
9
+
selectEditingEntities,
10
+
editingEntities => schema.from(editingEntities)
11
+
);
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@ import {connect} from "react-redux";
3
3
import {Form, Dropdown, Grid, Button} from "semantic-ui-react";
4
4
5
5
import {getEntitiesSession} from "features/entities/entitySelectors";
6
+
import {getEditingEntitiesSession} from "features/editing/editingSelectors";
6
7
7
8
import FormEditWrapper from "common/components/FormEditWrapper";
8
9
@@ -48,17 +49,25 @@ const mapState = (state) => {
48
49
let pilot;
49
50
50
51
const currentPilot = selectCurrentPilot(state);
51
-
52
-
const session = getEntitiesSession(state);
53
-
const {Pilot} = session;
54
-
55
-
if(Pilot.hasId(currentPilot)) {
56
-
pilot = Pilot.withId(currentPilot).ref;
57
-
}
58
52
59
53
const pilotIsSelected = Boolean(currentPilot);
60
54
const isEditingPilot = selectIsEditingPilot(state);
61
55
56
+
if(pilotIsSelected) {
57
+
const session = isEditingPilot ?
58
+
getEditingEntitiesSession(state) :
59
+
getEntitiesSession(state);
60
+
61
+
const {Pilot} = session;
62
+
63
+
if(Pilot.hasId(currentPilot)) {
64
+
pilot = Pilot.withId(currentPilot).ref;
65
+
}
66
+
}
67
+
68
+
69
+
70
+
62
71
63
72
return {pilot, pilotIsSelected, isEditingPilot}
64
73
}
@@ -87,6 +96,16 @@ export class PilotDetails extends Component {
87
96
this.props.updateEntity("Pilot", id, newValues);
88
97
}
89
98
99
+
onStartEditingClicked = () => {
100
+
const {id} = this.props.pilot;
101
+
this.props.startEditingPilot(id);
102
+
}
103
+
104
+
onStopEditingClicked = () => {
105
+
const {id} = this.props.pilot;
106
+
this.props.stopEditingPilot(id);
107
+
}
108
+
90
109
91
110
render() {
92
111
const {pilot={}, pilotIsSelected = false, isEditingPilot = false, ...actions } = this.props;
@@ -187,15 +206,15 @@ export class PilotDetails extends Component {
187
206
primary
188
207
disabled={!canStartEditing}
189
208
type="button"
190
-
onClick={actions.startEditingPilot}
209
+
onClick={this.onStartEditingClicked}
191
210
>
192
211
Start Editing
193
212
</Button>
194
213
<Button
195
214
secondary
196
215
disabled={!canStopEditing}
197
216
type="button"
198
-
onClick={actions.stopEditingPilot}
217
+
onClick={this.onStopEditingClicked}
199
218
>
200
219
Stop Editing
201
220
</Button>
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
1
+
import {
2
+
editExistingItem,
3
+
stopEditingItem
4
+
} from "features/editing/editingActions";
5
+
1
6
import {
2
7
PILOT_SELECT,
3
8
PILOT_EDIT_START,
@@ -11,14 +16,17 @@ export function selectPilot(pilotID) {
11
16
};
12
17
}
13
18
14
-
export function startEditingPilot() {
15
-
return {
16
-
type : PILOT_EDIT_START,
17
-
};
19
+
export function startEditingPilot(pilotID) {
20
+
return (dispatch, getState) => {
21
+
dispatch(editExistingItem("Pilot", pilotID));
22
+
dispatch({type : PILOT_EDIT_START});
23
+
}
24
+
18
25
}
19
26
20
-
export function stopEditingPilot() {
21
-
return {
22
-
type : PILOT_EDIT_STOP,
23
-
};
27
+
export function stopEditingPilot(pilotID) {
28
+
return (dispatch, getState) => {
29
+
dispatch({type : PILOT_EDIT_STOP});
30
+
dispatch(stopEditingItem("Pilot", pilotID));
31
+
}
24
32
}
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