@plusscommunities/pluss-maintenance-app-forms 6.0.10 → 6.0.11-auth.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/module/actions/JobActions.js +44 -1
  2. package/dist/module/actions/JobActions.js.map +1 -1
  3. package/dist/module/actions/index.js +1 -1
  4. package/dist/module/actions/index.js.map +1 -1
  5. package/dist/module/actions/types.js +4 -1
  6. package/dist/module/actions/types.js.map +1 -1
  7. package/dist/module/apis/index.js +4 -1
  8. package/dist/module/apis/index.js.map +1 -1
  9. package/dist/module/apis/maintenanceActions.js +61 -38
  10. package/dist/module/apis/maintenanceActions.js.map +1 -1
  11. package/dist/module/apis/userActions.js +23 -0
  12. package/dist/module/apis/userActions.js.map +1 -0
  13. package/dist/module/components/FilterPopupMenu.js +82 -58
  14. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  15. package/dist/module/components/MaintenanceList.js +84 -92
  16. package/dist/module/components/MaintenanceList.js.map +1 -1
  17. package/dist/module/components/MaintenanceListItem.js +94 -80
  18. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  19. package/dist/module/components/MaintenanceWidgetItem.js +39 -38
  20. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  21. package/dist/module/components/PrioritySelectorPopup.js +83 -0
  22. package/dist/module/components/PrioritySelectorPopup.js.map +1 -0
  23. package/dist/module/components/StatusSelectorPopup.js +23 -27
  24. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  25. package/dist/module/components/WidgetLarge.js +2 -2
  26. package/dist/module/components/WidgetLarge.js.map +1 -1
  27. package/dist/module/components/WidgetSmall.js +25 -20
  28. package/dist/module/components/WidgetSmall.js.map +1 -1
  29. package/dist/module/core.config.js +2 -3
  30. package/dist/module/core.config.js.map +1 -1
  31. package/dist/module/feature.config.js +17 -17
  32. package/dist/module/feature.config.js.map +1 -1
  33. package/dist/module/helper.js +41 -26
  34. package/dist/module/helper.js.map +1 -1
  35. package/dist/module/index.js +12 -10
  36. package/dist/module/index.js.map +1 -1
  37. package/dist/module/reducers/JobsReducer.js +36 -6
  38. package/dist/module/reducers/JobsReducer.js.map +1 -1
  39. package/dist/module/screens/JobTypePicker.js +18 -17
  40. package/dist/module/screens/JobTypePicker.js.map +1 -1
  41. package/dist/module/screens/MaintenancePage.js +10 -10
  42. package/dist/module/screens/MaintenancePage.js.map +1 -1
  43. package/dist/module/screens/MaintenanceUserPicker.js +219 -0
  44. package/dist/module/screens/MaintenanceUserPicker.js.map +1 -0
  45. package/dist/module/screens/RequestDetail.js +410 -142
  46. package/dist/module/screens/RequestDetail.js.map +1 -1
  47. package/dist/module/screens/RequestNotes.js +462 -52
  48. package/dist/module/screens/RequestNotes.js.map +1 -1
  49. package/dist/module/screens/ServiceRequest.js +519 -181
  50. package/dist/module/screens/ServiceRequest.js.map +1 -1
  51. package/dist/module/values.config.a.js +30 -23
  52. package/dist/module/values.config.a.js.map +1 -1
  53. package/dist/module/values.config.default.js +35 -28
  54. package/dist/module/values.config.default.js.map +1 -1
  55. package/dist/module/values.config.enquiry.js +43 -0
  56. package/dist/module/values.config.enquiry.js.map +1 -0
  57. package/dist/module/values.config.feedback.js +43 -0
  58. package/dist/module/values.config.feedback.js.map +1 -0
  59. package/dist/module/values.config.food.js +43 -0
  60. package/dist/module/values.config.food.js.map +1 -0
  61. package/dist/module/values.config.forms.js +35 -28
  62. package/dist/module/values.config.forms.js.map +1 -1
  63. package/dist/module/values.config.js +35 -28
  64. package/dist/module/values.config.js.map +1 -1
  65. package/package.json +55 -51
  66. package/src/actions/JobActions.js +75 -16
  67. package/src/actions/index.js +1 -1
  68. package/src/actions/types.js +4 -1
  69. package/src/apis/index.js +6 -1
  70. package/src/apis/maintenanceActions.js +189 -160
  71. package/src/apis/userActions.js +21 -0
  72. package/src/components/FilterPopupMenu.js +316 -230
  73. package/src/components/MaintenanceList.js +391 -326
  74. package/src/components/MaintenanceListItem.js +348 -274
  75. package/src/components/MaintenanceWidgetItem.js +146 -120
  76. package/src/components/PrioritySelectorPopup.js +93 -0
  77. package/src/components/StatusSelectorPopup.js +82 -76
  78. package/src/components/WidgetLarge.js +5 -5
  79. package/src/components/WidgetSmall.js +154 -131
  80. package/src/core.config.js +25 -3
  81. package/src/feature.config.js +62 -62
  82. package/src/helper.js +67 -30
  83. package/src/index.js +22 -20
  84. package/src/reducers/JobsReducer.js +85 -41
  85. package/src/screens/JobTypePicker.js +116 -92
  86. package/src/screens/MaintenancePage.js +89 -80
  87. package/src/screens/MaintenanceUserPicker.js +233 -0
  88. package/src/screens/RequestDetail.js +1354 -892
  89. package/src/screens/RequestNotes.js +946 -408
  90. package/src/screens/ServiceRequest.js +1808 -1222
  91. package/src/values.config.a.js +33 -26
  92. package/src/values.config.default.js +39 -32
  93. package/src/values.config.enquiry.js +43 -0
  94. package/src/values.config.feedback.js +43 -0
  95. package/src/values.config.food.js +43 -0
  96. package/src/values.config.forms.js +39 -32
  97. package/src/values.config.js +39 -32
  98. package/dist/module/values.config.b.js +0 -30
  99. package/dist/module/values.config.b.js.map +0 -1
  100. package/dist/module/values.config.c.js +0 -30
  101. package/dist/module/values.config.c.js.map +0 -1
  102. package/dist/module/values.config.d.js +0 -30
  103. package/dist/module/values.config.d.js.map +0 -1
  104. package/src/values.config.b.js +0 -30
  105. package/src/values.config.c.js +0 -30
  106. package/src/values.config.d.js +0 -30
@@ -1,256 +1,342 @@
1
- import React, { Component } from 'react';
2
- import { View, Text, TouchableOpacity, Modal, ScrollView, Dimensions } from 'react-native';
3
- import { connect } from 'react-redux';
4
- import _ from 'lodash';
5
- import { maintenanceActions } from '../apis';
6
- import { Colours, Helper } from '../core.config';
1
+ import React, { Component } from "react";
2
+ import { Text } from "@plusscommunities/pluss-core-app/components";
3
+ import {
4
+ View,
5
+ TouchableOpacity,
6
+ Modal,
7
+ ScrollView,
8
+ Dimensions,
9
+ } from "react-native";
10
+ import { connect } from "react-redux";
11
+ import _ from "lodash";
12
+ import { maintenanceActions } from "../apis";
13
+ import { Colours, Helper } from "../core.config";
14
+ import {
15
+ getJobStatusOptions,
16
+ getIncompleteJobStatuses,
17
+ jobPriorityOptions,
18
+ getDefaultJobPriority,
19
+ } from "../helper";
20
+ import { values } from "../values.config";
7
21
 
8
- const SCREEN_HEIGHT = Dimensions.get('window').height;
22
+ const SCREEN_HEIGHT = Dimensions.get("window").height;
9
23
 
10
24
  class FilterPopupMenu extends Component {
11
- constructor(props) {
12
- super(props);
25
+ constructor(props) {
26
+ super(props);
13
27
 
14
- this.state = {
15
- types: props.types || [],
16
- selectedStatus: props.status || '',
17
- selectedType: props.type || '',
18
- selectedAssignee: props.assignee || '',
19
- assignees: [],
20
- };
21
- this.statusOptions = [
22
- {
23
- label: 'All',
24
- value: '',
25
- },
26
- {
27
- label: 'Incomplete',
28
- value: 'Unassigned|In Progress',
29
- },
30
- {
31
- label: 'Open',
32
- value: 'Unassigned',
33
- },
34
- {
35
- label: 'In Progress',
36
- value: 'In Progress',
37
- },
38
- {
39
- label: 'Completed',
40
- value: 'Completed',
41
- },
42
- ];
43
- }
28
+ this.state = {
29
+ types: props.types || [],
30
+ selectedStatus: props.status || "",
31
+ selectedPriority: props.priority || "",
32
+ selectedType: props.type || "",
33
+ selectedAssignee: props.assignee || "",
34
+ assignees: [],
35
+ };
36
+ }
44
37
 
45
- componentDidMount() {
46
- this.getAssignees();
47
- if (_.isEmpty(this.state.types)) this.refreshTypes();
48
- }
38
+ componentDidMount() {
39
+ this.getAssignees();
40
+ if (_.isEmpty(this.state.types)) this.refreshTypes();
41
+ }
49
42
 
50
- componentDidUpdate(prevProps) {
51
- if (prevProps.site !== this.props.site) {
52
- this.refreshTypes();
53
- }
54
- }
43
+ componentDidUpdate(prevProps) {
44
+ if (prevProps.site !== this.props.site) {
45
+ this.refreshTypes();
46
+ }
47
+ }
55
48
 
56
- getAssignees = async () => {
57
- try {
58
- const res = await maintenanceActions.getAssignees(this.props.site);
59
- let assignees = res.data.Users.map(t => {
60
- return { label: t.displayName, value: t.id };
61
- });
62
- assignees = _.orderBy(assignees, 'label');
49
+ getStatusOptions = () => {
50
+ const statusOptions = getJobStatusOptions(this.props);
51
+ const options = [
52
+ {
53
+ label: "All",
54
+ value: "",
55
+ },
56
+ {
57
+ label: "Incomplete",
58
+ value: `Unassigned|${getIncompleteJobStatuses(this.props)
59
+ .map((s) => s.text)
60
+ .join("|")}`,
61
+ },
62
+ ...statusOptions.map((s) => ({
63
+ label: s.text,
64
+ value: s.text,
65
+ })),
66
+ ];
67
+ // console.log('getStatusOptions', JSON.stringify(options, null, 2));
68
+ return options;
69
+ };
63
70
 
64
- assignees.splice(0, 0, { label: 'All', value: '' });
71
+ getPriorityOptions = () => {
72
+ const priorityOptions = jobPriorityOptions;
73
+ const defaultPriority = getDefaultJobPriority();
74
+ const options = [
75
+ {
76
+ label: "All",
77
+ value: "",
78
+ },
79
+ ...priorityOptions.map((p) => ({
80
+ label: p.label,
81
+ value:
82
+ p.label === defaultPriority?.label ? `${p.label}|undefined` : p.label,
83
+ })),
84
+ ];
85
+ // console.log('getPriorityOptions', JSON.stringify(options, null, 2));
86
+ return options;
87
+ };
65
88
 
66
- const newState = { assignees };
89
+ getAssignees = async () => {
90
+ try {
91
+ const res = await maintenanceActions.getAssignees(this.props.site);
92
+ let assignees = res.data.Users.map((t) => {
93
+ return { label: t.displayName, value: t.id };
94
+ });
95
+ assignees = _.orderBy(assignees, "label");
67
96
 
68
- if (!assignees.some(a => a.value === this.state.selectedAssignee)) {
69
- newState.selectedAssignee = '';
70
- }
71
- // console.log('refreshassignees', assignees);
72
- this.setState(newState);
73
- } catch (error) {
74
- console.error('getAssignees', error);
75
- }
76
- };
97
+ assignees.splice(0, 0, { label: "All", value: "" });
77
98
 
78
- refreshTypes = async () => {
79
- const { data } = await maintenanceActions.getJobTypes(Helper.getSite(this.props.site));
80
- const types = data.map(t => {
81
- return { label: t.typeName, value: t.typeName };
82
- });
83
- types.splice(0, 0, { label: 'All', value: '' });
84
- // console.log('refreshTypes', types);
85
- this.setState({ types });
86
- };
99
+ const newState = { assignees };
87
100
 
88
- onSelectOption = (key, value) => {
89
- const newState = {};
90
- newState[key] = value;
91
- this.setState(newState);
92
- };
101
+ if (!assignees.some((a) => a.value === this.state.selectedAssignee)) {
102
+ newState.selectedAssignee = "";
103
+ }
104
+ // console.log('refreshassignees', assignees);
105
+ this.setState(newState);
106
+ } catch (error) {
107
+ console.error("getAssignees", error);
108
+ }
109
+ };
93
110
 
94
- onDone = () => {
95
- const { onClose } = this.props;
96
- const { selectedStatus, selectedType, selectedAssignee } = this.state;
97
- if (onClose)
98
- onClose({
99
- status: selectedStatus,
100
- statusText: this.statusOptions.find(o => o.value === selectedStatus)?.label,
101
- type: selectedType,
102
- assignee: selectedAssignee,
103
- assigneeName: this.state.assignees.find(a => a.value === selectedAssignee)?.label,
104
- });
105
- };
111
+ refreshTypes = async () => {
112
+ const { data } = await maintenanceActions.getJobTypes(
113
+ Helper.getSite(this.props.site),
114
+ );
115
+ const types = data.map((t) => {
116
+ return { label: t.typeName, value: t.typeName };
117
+ });
118
+ types.splice(0, 0, { label: "All", value: "" });
119
+ // console.log('refreshTypes', types);
120
+ this.setState({ types });
121
+ };
106
122
 
107
- renderTitle() {
108
- const { title } = this.props;
109
- return (
110
- <View style={styles.titleContainer}>
111
- <Text style={styles.titleText}>{title || 'Filter By'}</Text>
112
- </View>
113
- );
114
- }
123
+ onSelectOption = (key, value) => {
124
+ const newState = {};
125
+ newState[key] = value;
126
+ this.setState(newState);
127
+ };
115
128
 
116
- renderCancel() {
117
- const { colourBrandingMain, cancelText } = this.props;
118
- return (
119
- <TouchableOpacity onPress={this.onDone}>
120
- <View style={styles.cancelContainer}>
121
- <Text style={[styles.cancelText, { color: colourBrandingMain }]}>{cancelText || 'Done'}</Text>
122
- </View>
123
- </TouchableOpacity>
124
- );
125
- }
129
+ onDone = () => {
130
+ const { onClose } = this.props;
131
+ const { selectedStatus, selectedPriority, selectedType, selectedAssignee } =
132
+ this.state;
133
+ if (onClose)
134
+ onClose({
135
+ status: selectedStatus,
136
+ statusText: this.getStatusOptions().find(
137
+ (o) => o.value === selectedStatus,
138
+ )?.label,
139
+ priority: selectedPriority,
140
+ priorityText: this.getPriorityOptions().find(
141
+ (o) => o.value === selectedPriority,
142
+ )?.label,
143
+ type: selectedType,
144
+ assignee: selectedAssignee,
145
+ assigneeName: this.state.assignees.find(
146
+ (a) => a.value === selectedAssignee,
147
+ )?.label,
148
+ });
149
+ };
126
150
 
127
- renderOptions(title, options, selectedKey) {
128
- const { colourBrandingMain } = this.props;
129
- return (
130
- <View style={styles.optionsContainer}>
131
- <Text style={styles.optionsTitle}>{title}</Text>
132
- <View style={styles.options}>
133
- {options.map(o => {
134
- const selected = this.state[selectedKey];
135
- const backgroundColor = o.value === selected ? colourBrandingMain : '#fff';
136
- const color = o.value === selected ? '#fff' : colourBrandingMain;
137
- return (
138
- <TouchableOpacity key={o.label} onPress={() => this.onSelectOption(selectedKey, o.value)}>
139
- <View style={[styles.optionContainer, { backgroundColor, borderColor: colourBrandingMain }]}>
140
- <Text style={[styles.optionText, { color }]}>{o.label}</Text>
141
- </View>
142
- </TouchableOpacity>
143
- );
144
- })}
145
- </View>
146
- </View>
147
- );
148
- }
151
+ renderTitle() {
152
+ const { title } = this.props;
153
+ return (
154
+ <View style={styles.titleContainer}>
155
+ <Text style={styles.titleText}>{title || "Filter By"}</Text>
156
+ </View>
157
+ );
158
+ }
149
159
 
150
- render() {
151
- return (
152
- <Modal visible transparent animationType="slide" onRequestClose={this.onDone}>
153
- <View style={styles.container}>
154
- <View style={styles.menu}>
155
- {this.renderTitle()}
156
- <ScrollView style={styles.optionContent}>
157
- {this.renderOptions('Status', this.statusOptions, 'selectedStatus')}
158
- {this.renderOptions('Type', this.state.types, 'selectedType')}
159
- {this.renderOptions('Assigned To', this.state.assignees, 'selectedAssignee')}
160
- </ScrollView>
161
- {this.renderCancel()}
162
- </View>
163
- </View>
164
- </Modal>
165
- );
166
- }
160
+ renderCancel() {
161
+ const { colourBrandingMain, cancelText } = this.props;
162
+ return (
163
+ <TouchableOpacity onPress={this.onDone}>
164
+ <View style={styles.cancelContainer}>
165
+ <Text style={[styles.cancelText, { color: colourBrandingMain }]}>
166
+ {cancelText || "Done"}
167
+ </Text>
168
+ </View>
169
+ </TouchableOpacity>
170
+ );
171
+ }
172
+
173
+ renderOptions(title, options, selectedKey) {
174
+ const { colourBrandingMain } = this.props;
175
+ return (
176
+ <View style={styles.optionsContainer}>
177
+ <Text style={styles.optionsTitle}>{title}</Text>
178
+ <View style={styles.options}>
179
+ {options.map((o) => {
180
+ const selected = this.state[selectedKey];
181
+ const backgroundColor =
182
+ o.value === selected ? colourBrandingMain : "#fff";
183
+ const color = o.value === selected ? "#fff" : colourBrandingMain;
184
+ return (
185
+ <TouchableOpacity
186
+ key={o.label}
187
+ onPress={() => this.onSelectOption(selectedKey, o.value)}
188
+ >
189
+ <View
190
+ style={[
191
+ styles.optionContainer,
192
+ { backgroundColor, borderColor: colourBrandingMain },
193
+ ]}
194
+ >
195
+ <Text style={[styles.optionText, { color }]}>{o.label}</Text>
196
+ </View>
197
+ </TouchableOpacity>
198
+ );
199
+ })}
200
+ </View>
201
+ </View>
202
+ );
203
+ }
204
+
205
+ render() {
206
+ // console.log('FilterPopupMenu', JSON.stringify({ category: this.props.user.category, permissions: this.props.user.permissions }, null, 2))
207
+ const isStaff = this.props.user.category === "staff";
208
+ const canFilterAssignee = !_.includes(
209
+ this.props.user.permissions,
210
+ values.permissionMaintenanceAssignment,
211
+ );
212
+
213
+ return (
214
+ <Modal
215
+ visible
216
+ transparent
217
+ animationType="slide"
218
+ onRequestClose={this.onDone}
219
+ >
220
+ <View style={styles.container}>
221
+ <View style={styles.menu}>
222
+ {this.renderTitle()}
223
+ <ScrollView style={styles.optionContent}>
224
+ {this.renderOptions(
225
+ "Status",
226
+ this.getStatusOptions(),
227
+ "selectedStatus",
228
+ )}
229
+ {isStaff
230
+ ? this.renderOptions(
231
+ "Priority",
232
+ this.getPriorityOptions(),
233
+ "selectedPriority",
234
+ )
235
+ : null}
236
+ {this.renderOptions("Type", this.state.types, "selectedType")}
237
+ {canFilterAssignee
238
+ ? this.renderOptions(
239
+ "Assigned To",
240
+ this.state.assignees,
241
+ "selectedAssignee",
242
+ )
243
+ : null}
244
+ </ScrollView>
245
+ {this.renderCancel()}
246
+ </View>
247
+ </View>
248
+ </Modal>
249
+ );
250
+ }
167
251
  }
168
252
 
169
253
  const styles = {
170
- container: {
171
- position: 'absolute',
172
- bottom: 0,
173
- left: 0,
174
- right: 0,
175
- top: 0,
176
- backgroundColor: 'rgba(0,0,0,0.5)',
177
- zIndex: 1000,
178
- },
179
- menu: {
180
- position: 'absolute',
181
- bottom: 0,
182
- left: 0,
183
- right: 0,
184
- backgroundColor: '#fff',
185
- borderTopLeftRadius: 12,
186
- borderTopRightRadius: 12,
187
- maxHeight: SCREEN_HEIGHT * 0.8,
188
- },
189
- cancelContainer: {
190
- paddingVertical: 16,
191
- borderColor: Colours.LINEGREY,
192
- borderTopWidth: 1,
193
- paddingHorizontal: 16,
194
- },
195
- cancelText: {
196
- fontFamily: 'sf-medium',
197
- fontSize: 16,
198
- textAlign: 'center',
199
- color: Colours.TEXT_DARK,
200
- },
201
- titleContainer: {
202
- padding: 16,
203
- borderColor: Colours.LINEGREY,
204
- borderBottomWidth: 1,
205
- },
206
- titleText: {
207
- fontFamily: 'sf-semibold',
208
- fontSize: 16,
209
- textAlign: 'center',
210
- color: Colours.TEXT_DARK,
211
- },
212
- optionContent: {
213
- paddingVertical: 10,
214
- },
215
- optionsContainer: {
216
- marginHorizontal: 14,
217
- },
218
- optionsTitle: {
219
- fontFamily: 'sf-semibold',
220
- marginBottom: 4,
221
- },
222
- options: {
223
- flex: 1,
224
- flexDirection: 'row',
225
- flexWrap: 'wrap',
226
- },
227
- optionContainer: {
228
- flexDirection: 'row',
229
- alignItems: 'center',
230
- justifyContent: 'center',
231
- minWidth: 50,
232
- height: 30,
233
- paddingHorizontal: 8,
234
- borderRadius: 4,
235
- borderWidth: 1,
236
- marginRight: 8,
237
- marginBottom: 8,
238
- },
239
- optionText: {
240
- color: '#fff',
241
- textAlign: 'center',
242
- fontFamily: 'sf-semibold',
243
- fontSize: 13,
244
- },
254
+ container: {
255
+ position: "absolute",
256
+ bottom: 0,
257
+ left: 0,
258
+ right: 0,
259
+ top: 0,
260
+ backgroundColor: "rgba(0,0,0,0.5)",
261
+ zIndex: 1000,
262
+ },
263
+ menu: {
264
+ position: "absolute",
265
+ bottom: 0,
266
+ left: 0,
267
+ right: 0,
268
+ backgroundColor: "#fff",
269
+ borderTopLeftRadius: 12,
270
+ borderTopRightRadius: 12,
271
+ maxHeight: SCREEN_HEIGHT * 0.8,
272
+ },
273
+ cancelContainer: {
274
+ paddingVertical: 16,
275
+ borderColor: Colours.LINEGREY,
276
+ borderTopWidth: 1,
277
+ paddingHorizontal: 16,
278
+ },
279
+ cancelText: {
280
+ fontFamily: "sf-medium",
281
+ fontSize: 16,
282
+ textAlign: "center",
283
+ color: Colours.TEXT_DARK,
284
+ },
285
+ titleContainer: {
286
+ padding: 16,
287
+ borderColor: Colours.LINEGREY,
288
+ borderBottomWidth: 1,
289
+ },
290
+ titleText: {
291
+ fontFamily: "sf-semibold",
292
+ fontSize: 16,
293
+ textAlign: "center",
294
+ color: Colours.TEXT_DARK,
295
+ },
296
+ optionContent: {
297
+ paddingVertical: 10,
298
+ },
299
+ optionsContainer: {
300
+ marginHorizontal: 14,
301
+ },
302
+ optionsTitle: {
303
+ fontFamily: "sf-semibold",
304
+ marginBottom: 4,
305
+ },
306
+ options: {
307
+ flex: 1,
308
+ flexDirection: "row",
309
+ flexWrap: "wrap",
310
+ },
311
+ optionContainer: {
312
+ flexDirection: "row",
313
+ alignItems: "center",
314
+ justifyContent: "center",
315
+ minWidth: 50,
316
+ height: 30,
317
+ paddingHorizontal: 8,
318
+ borderRadius: 4,
319
+ borderWidth: 1,
320
+ marginRight: 8,
321
+ marginBottom: 8,
322
+ },
323
+ optionText: {
324
+ color: "#fff",
325
+ textAlign: "center",
326
+ fontFamily: "sf-semibold",
327
+ fontSize: 13,
328
+ },
245
329
  };
246
330
 
247
- const mapStateToProps = state => {
248
- const { user } = state;
331
+ const mapStateToProps = (state) => {
332
+ const { user } = state;
249
333
 
250
- return {
251
- site: user.site,
252
- colourBrandingMain: Colours.getMainBrandingColourFromState(state),
253
- };
334
+ return {
335
+ user,
336
+ site: user.site,
337
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state),
338
+ statusTypes: state[values.reducerKey].jobstatuses,
339
+ };
254
340
  };
255
341
 
256
342
  export default connect(mapStateToProps, {})(FilterPopupMenu);