/
missionSelector.js
66 lines (65 loc) · 1.59 KB
/
missionSelector.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import React from "react";
import { Button } from "helpers/reactstrap";
import { Mutation } from "react-apollo";
import gql from "graphql-tag.macro";
import titleCase from "title-case";
const MissionSelector = ({
mission,
simulatorId,
missions,
onChange,
timelineMode,
setTimelineMode
}) => {
return (
<div style={{ display: "flex" }}>
<Mutation
mutation={gql`
mutation SetSimulatorMission($simulatorId: ID!, $missionId: ID!) {
setSimulatorMission(
simulatorId: $simulatorId
missionId: $missionId
)
}
`}
>
{action => (
<select
style={{ flex: 1 }}
value={mission ? mission.id : "nothing"}
onChange={e =>
onChange
? onChange(e)
: action({
variables: { simulatorId, missionId: e.target.value }
})
}
>
<option disabled value="nothing">
Select a mission
</option>
{missions.map(m => (
<option key={m.id} value={m.id}>
{m.name}
</option>
))}
</select>
)}
</Mutation>
{timelineMode && (
<Button
size="sm"
color="info"
onClick={() =>
setTimelineMode(
timelineMode === "standard" ? "classic" : "standard"
)
}
>
{titleCase(timelineMode)}
</Button>
)}
</div>
);
};
export default MissionSelector;