@plusscommunities/pluss-maintenance-app 6.0.19 → 6.0.21-beta.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 (97) hide show
  1. package/dist/module/actions/JobActions.js +4 -4
  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 +1 -1
  6. package/dist/module/actions/types.js.map +1 -1
  7. package/dist/module/apis/index.js +3 -3
  8. package/dist/module/apis/index.js.map +1 -1
  9. package/dist/module/apis/maintenanceActions.js +36 -36
  10. package/dist/module/apis/maintenanceActions.js.map +1 -1
  11. package/dist/module/apis/userActions.js +5 -5
  12. package/dist/module/apis/userActions.js.map +1 -1
  13. package/dist/module/components/FilterPopupMenu.js +49 -49
  14. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  15. package/dist/module/components/MaintenanceList.js +38 -38
  16. package/dist/module/components/MaintenanceList.js.map +1 -1
  17. package/dist/module/components/MaintenanceListItem.js +62 -62
  18. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  19. package/dist/module/components/MaintenanceWidgetItem.js +27 -27
  20. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  21. package/dist/module/components/PrioritySelectorPopup.js +15 -15
  22. package/dist/module/components/PrioritySelectorPopup.js.map +1 -1
  23. package/dist/module/components/StatusSelectorPopup.js +16 -16
  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 +19 -19
  28. package/dist/module/components/WidgetSmall.js.map +1 -1
  29. package/dist/module/core.config.js +1 -1
  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 +10 -10
  34. package/dist/module/helper.js.map +1 -1
  35. package/dist/module/index.js +11 -11
  36. package/dist/module/index.js.map +1 -1
  37. package/dist/module/reducers/JobsReducer.js +13 -13
  38. package/dist/module/reducers/JobsReducer.js.map +1 -1
  39. package/dist/module/screens/JobTypePicker.js +17 -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 +129 -22
  44. package/dist/module/screens/MaintenanceUserPicker.js.map +1 -1
  45. package/dist/module/screens/RequestDetail.js +146 -146
  46. package/dist/module/screens/RequestDetail.js.map +1 -1
  47. package/dist/module/screens/RequestNotes.js +59 -59
  48. package/dist/module/screens/RequestNotes.js.map +1 -1
  49. package/dist/module/screens/ServiceRequest.js +187 -187
  50. package/dist/module/screens/ServiceRequest.js.map +1 -1
  51. package/dist/module/values.config.a.js +30 -30
  52. package/dist/module/values.config.a.js.map +1 -1
  53. package/dist/module/values.config.default.js +34 -34
  54. package/dist/module/values.config.default.js.map +1 -1
  55. package/dist/module/values.config.enquiry.js +34 -34
  56. package/dist/module/values.config.enquiry.js.map +1 -1
  57. package/dist/module/values.config.feedback.js +34 -34
  58. package/dist/module/values.config.feedback.js.map +1 -1
  59. package/dist/module/values.config.food.js +34 -34
  60. package/dist/module/values.config.food.js.map +1 -1
  61. package/dist/module/values.config.forms.js +34 -34
  62. package/dist/module/values.config.forms.js.map +1 -1
  63. package/dist/module/values.config.js +34 -34
  64. package/dist/module/values.config.js.map +1 -1
  65. package/package.json +51 -51
  66. package/src/actions/JobActions.js +67 -60
  67. package/src/actions/index.js +1 -1
  68. package/src/actions/types.js +1 -2
  69. package/src/apis/index.js +3 -3
  70. package/src/apis/maintenanceActions.js +189 -178
  71. package/src/apis/userActions.js +17 -17
  72. package/src/components/FilterPopupMenu.js +313 -256
  73. package/src/components/MaintenanceList.js +396 -317
  74. package/src/components/MaintenanceListItem.js +347 -288
  75. package/src/components/MaintenanceWidgetItem.js +145 -124
  76. package/src/components/PrioritySelectorPopup.js +81 -68
  77. package/src/components/StatusSelectorPopup.js +81 -70
  78. package/src/components/WidgetLarge.js +5 -5
  79. package/src/components/WidgetSmall.js +153 -133
  80. package/src/core.config.js +27 -3
  81. package/src/feature.config.js +62 -62
  82. package/src/helper.js +58 -53
  83. package/src/index.js +22 -22
  84. package/src/reducers/JobsReducer.js +85 -66
  85. package/src/screens/JobTypePicker.js +115 -92
  86. package/src/screens/MaintenancePage.js +89 -80
  87. package/src/screens/MaintenanceUserPicker.js +252 -100
  88. package/src/screens/RequestDetail.js +1348 -1125
  89. package/src/screens/RequestNotes.js +950 -806
  90. package/src/screens/ServiceRequest.js +1778 -1550
  91. package/src/values.config.a.js +33 -33
  92. package/src/values.config.default.js +39 -39
  93. package/src/values.config.enquiry.js +39 -39
  94. package/src/values.config.feedback.js +39 -39
  95. package/src/values.config.food.js +39 -39
  96. package/src/values.config.forms.js +39 -39
  97. package/src/values.config.js +39 -39
@@ -1,303 +1,362 @@
1
- import React, { Component } from 'react';
2
- import { Image, Text, TouchableOpacity, View, StyleSheet } from 'react-native';
3
- import _ from 'lodash';
4
- import { Icon } from 'react-native-elements';
5
- import { connect } from 'react-redux';
6
- import moment from 'moment';
7
- import { getJobStatus, getJobPriority } from '../helper';
8
- import { Services } from '../feature.config';
9
- import { Helper, Colours } from '../core.config';
10
- import { values } from '../values.config';
1
+ import React, { Component } from "react";
2
+ import { Image, Text, TouchableOpacity, View, StyleSheet } from "react-native";
3
+ import _ from "lodash";
4
+ import { Icon } from "react-native-elements";
5
+ import { connect } from "react-redux";
6
+ import moment from "moment";
7
+ import { getJobStatus, getJobPriority } from "../helper";
8
+ import { Services } from "../feature.config";
9
+ import { Helper, Colours } from "../core.config";
10
+ import { values } from "../values.config";
11
11
 
12
12
  class MaintenanceListItem extends Component {
13
- onPressJob = () => {
14
- Services.navigation.navigate(values.screenRequestDetail, { job: this.props.job });
15
- };
13
+ onPressJob = () => {
14
+ Services.navigation.navigate(values.screenRequestDetail, {
15
+ job: this.props.job,
16
+ });
17
+ };
16
18
 
17
- renderCommentCount() {
18
- const { job } = this.props;
19
- if (!job.commentCount) {
20
- return null;
21
- }
22
- return (
23
- <View style={styles.commentCountContainer}>
24
- <Text style={styles.commentCountText}>{job.commentCount > 99 ? '99' : job.commentCount}</Text>
25
- </View>
26
- );
27
- }
19
+ renderCommentCount() {
20
+ const { job } = this.props;
21
+ if (!job.commentCount) {
22
+ return null;
23
+ }
24
+ return (
25
+ <View style={styles.commentCountContainer}>
26
+ <Text style={styles.commentCountText}>
27
+ {job.commentCount > 99 ? "99" : job.commentCount}
28
+ </Text>
29
+ </View>
30
+ );
31
+ }
28
32
 
29
- renderDescription() {
30
- const { job } = this.props;
31
- if (_.isEmpty(job.description)) {
32
- return null;
33
- }
34
- return <Text style={styles.jobDescriptionText}>{job.description}</Text>;
35
- }
33
+ renderDescription() {
34
+ const { job } = this.props;
35
+ if (_.isEmpty(job.description)) {
36
+ return null;
37
+ }
38
+ return <Text style={styles.jobDescriptionText}>{job.description}</Text>;
39
+ }
36
40
 
37
- renderSeen() {
38
- const { job, hideSeen } = this.props;
39
- const showSeen = !job.status || job.status === getJobStatus(null, this.props).text;
40
- if (hideSeen || !showSeen || !job.seen) {
41
- return null;
42
- }
43
- return (
44
- <View style={styles.jobSeenContainer}>
45
- <Icon name="check" type="font-awesome" iconStyle={[styles.jobSeenIcon, { color: this.props.colourBrandingMain }]} />
46
- <Text style={[styles.jobSeenText, { color: this.props.colourBrandingMain }]}>Seen</Text>
47
- </View>
48
- );
49
- }
41
+ renderSeen() {
42
+ const { job, hideSeen } = this.props;
43
+ const showSeen =
44
+ !job.status || job.status === getJobStatus(null, this.props).text;
45
+ if (hideSeen || !showSeen || !job.seen) {
46
+ return null;
47
+ }
48
+ return (
49
+ <View style={styles.jobSeenContainer}>
50
+ <Icon
51
+ name="check"
52
+ type="font-awesome"
53
+ iconStyle={[
54
+ styles.jobSeenIcon,
55
+ { color: this.props.colourBrandingMain },
56
+ ]}
57
+ />
58
+ <Text
59
+ style={[styles.jobSeenText, { color: this.props.colourBrandingMain }]}
60
+ >
61
+ Seen
62
+ </Text>
63
+ </View>
64
+ );
65
+ }
50
66
 
51
- render() {
52
- const { job } = this.props;
53
- const createdTime = moment(job.createdUnix);
54
- const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;
55
- const assigneeText = job.Assignee ? `Assigned to\n${job.Assignee.displayName}` : '';
56
- const status = getJobStatus(job.status, this.props);
57
- const priority = getJobPriority(job.priority);
58
- const isStaff = this.props.user.category === 'staff'
67
+ render() {
68
+ const { job } = this.props;
69
+ const createdTime = moment(job.createdUnix);
70
+ const createdTimeText = `${createdTime.format("ddd, D MMMM")} • ${createdTime.format("h:mma")}`;
71
+ const assigneeText = job.Assignee
72
+ ? `Assigned to\n${job.Assignee.displayName}`
73
+ : "";
74
+ const status = getJobStatus(job.status, this.props);
75
+ const priority = getJobPriority(job.priority);
76
+ const isStaff = this.props.user.category === "staff";
59
77
 
60
- return (
61
- <TouchableOpacity onPress={this.onPressJob}>
62
- <View style={[styles.jobContainer, this.props.style]}>
63
- <View style={styles.jobInnerContainer}>
64
- <View style={styles.jobTopSection}>
65
- <View style={styles.jobTopLeft}>
66
- {job.jobId ? (
67
- <Text
68
- style={[styles.jobIdText, { color: this.props.colourBrandingMain }]}
69
- >{`${values.textEntityName} #${job.jobId}`}</Text>
70
- ) : null}
71
- <Text style={styles.jobTitleText}>{job.title}</Text>
72
- {job.room ? <Text style={styles.jobLocationText}>{job.room}</Text> : null}
73
- <View style={styles.jobTypeSeenContainer}>
74
- <View style={[styles.jobTypeContainer, { backgroundColor: Colours.hexToRGBAstring(this.props.colourBrandingMain, 0.2) }]}>
75
- <Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]} numberOfLines={2}>
76
- {job.type}
77
- </Text>
78
- </View>
79
- {this.renderSeen()}
80
- </View>
81
- </View>
82
- <View style={styles.jobTopRight}>
83
- <Image style={styles.jobCommentImage} source={require('../images/speechbubble.png')} />
84
- {this.renderCommentCount()}
85
- </View>
86
- </View>
87
- <View style={styles.jobBottomSection}>
88
- {/* {this.renderDescription()} */}
89
- <Text style={styles.jobCreatedText}>{createdTimeText}</Text>
90
- <View style={styles.jobActivityContainer}>
91
- <View style={[styles.jobStatusContainer, { backgroundColor: status?.color }]}>
92
- {/* <Icon name="wrench" type="font-awesome" iconStyle={styles.jobStatusIcon} /> */}
93
- <Text style={styles.jobStatusText}>{status?.text}</Text>
94
- </View>
95
- <View style={[styles.jobStatusLine, { borderColor: status?.color }]}>
96
- <View style={styles.jobStatusLineMask} />
97
- </View>
98
- <View style={[styles.jobStatusCircle, { backgroundColor: status?.color }]} />
99
- <Text style={styles.jobStatusDateText}>{assigneeText}</Text>
100
- </View>
101
- {isStaff && (
102
- <View style={[styles.jobPriorityContainer, { backgroundColor: priority.color }]}>
103
- <Text style={styles.jobPriorityText}>{priority.label}</Text>
104
- </View>
105
- )}
106
- </View>
107
- </View>
108
- </View>
109
- </TouchableOpacity>
110
- );
111
- }
78
+ return (
79
+ <TouchableOpacity onPress={this.onPressJob}>
80
+ <View style={[styles.jobContainer, this.props.style]}>
81
+ <View style={styles.jobInnerContainer}>
82
+ <View style={styles.jobTopSection}>
83
+ <View style={styles.jobTopLeft}>
84
+ {job.jobId ? (
85
+ <Text
86
+ style={[
87
+ styles.jobIdText,
88
+ { color: this.props.colourBrandingMain },
89
+ ]}
90
+ >{`${values.textEntityName} #${job.jobId}`}</Text>
91
+ ) : null}
92
+ <Text style={styles.jobTitleText}>{job.title}</Text>
93
+ {job.room ? (
94
+ <Text style={styles.jobLocationText}>{job.room}</Text>
95
+ ) : null}
96
+ <View style={styles.jobTypeSeenContainer}>
97
+ <View
98
+ style={[
99
+ styles.jobTypeContainer,
100
+ {
101
+ backgroundColor: Colours.hexToRGBAstring(
102
+ this.props.colourBrandingMain,
103
+ 0.2,
104
+ ),
105
+ },
106
+ ]}
107
+ >
108
+ <Text
109
+ style={[
110
+ styles.jobTypeText,
111
+ { color: this.props.colourBrandingMain },
112
+ ]}
113
+ numberOfLines={2}
114
+ >
115
+ {job.type}
116
+ </Text>
117
+ </View>
118
+ {this.renderSeen()}
119
+ </View>
120
+ </View>
121
+ <View style={styles.jobTopRight}>
122
+ <Image
123
+ style={styles.jobCommentImage}
124
+ source={require("../images/speechbubble.png")}
125
+ />
126
+ {this.renderCommentCount()}
127
+ </View>
128
+ </View>
129
+ <View style={styles.jobBottomSection}>
130
+ {/* {this.renderDescription()} */}
131
+ <Text style={styles.jobCreatedText}>{createdTimeText}</Text>
132
+ <View style={styles.jobActivityContainer}>
133
+ <View
134
+ style={[
135
+ styles.jobStatusContainer,
136
+ { backgroundColor: status?.color },
137
+ ]}
138
+ >
139
+ {/* <Icon name="wrench" type="font-awesome" iconStyle={styles.jobStatusIcon} /> */}
140
+ <Text style={styles.jobStatusText}>{status?.text}</Text>
141
+ </View>
142
+ <View
143
+ style={[styles.jobStatusLine, { borderColor: status?.color }]}
144
+ >
145
+ <View style={styles.jobStatusLineMask} />
146
+ </View>
147
+ <View
148
+ style={[
149
+ styles.jobStatusCircle,
150
+ { backgroundColor: status?.color },
151
+ ]}
152
+ />
153
+ <Text style={styles.jobStatusDateText}>{assigneeText}</Text>
154
+ </View>
155
+ {isStaff && (
156
+ <View
157
+ style={[
158
+ styles.jobPriorityContainer,
159
+ { backgroundColor: priority.color },
160
+ ]}
161
+ >
162
+ <Text style={styles.jobPriorityText}>{priority.label}</Text>
163
+ </View>
164
+ )}
165
+ </View>
166
+ </View>
167
+ </View>
168
+ </TouchableOpacity>
169
+ );
170
+ }
112
171
  }
113
172
 
114
173
  const styles = StyleSheet.create({
115
- jobContainer: {
116
- marginVertical: 8,
117
- paddingHorizontal: 16,
118
- },
119
- jobInnerContainer: {
120
- ...Helper.getShadowStyle(),
121
- },
122
- jobTopSection: {
123
- flexDirection: 'row',
124
- alignItems: 'flex-end',
125
- paddingHorizontal: 10,
126
- paddingVertical: 10,
127
- borderBottomWidth: 1,
128
- borderBottomColor: Colours.LINEGREY,
129
- },
130
- jobTopLeft: {
131
- flex: 1,
132
- },
133
- jobIdText: {
134
- fontFamily: 'sf-medium',
135
- fontSize: 12,
136
- marginBottom: 4,
137
- },
138
- jobTitleText: {
139
- fontFamily: 'sf-semibold',
140
- fontSize: 18,
141
- color: Colours.TEXT_DARK,
142
- marginBottom: 4,
143
- },
144
- jobLocationText: {
145
- fontFamily: 'sf-medium',
146
- fontSize: 12,
147
- color: Colours.TEXT_LIGHT,
148
- marginBottom: 4,
149
- },
150
- jobTypeSeenContainer: {
151
- marginTop: 4,
152
- flexDirection: 'row',
153
- alignItems: 'center',
154
- },
155
- jobTypeContainer: {
156
- padding: 4,
157
- minWidth: 80,
158
- maxWidth: 140,
159
- borderRadius: 4,
160
- justifyContent: 'center',
161
- },
162
- jobTypeText: {
163
- fontFamily: 'sf-semibold',
164
- fontSize: 12,
165
- textAlign: 'center',
166
- maxWidth: '100%',
167
- },
168
- jobSeenContainer: {
169
- flexDirection: 'row',
170
- alignItems: 'center',
171
- marginLeft: 10,
172
- },
173
- jobSeenIcon: {
174
- fontSize: 12,
175
- },
176
- jobSeenText: {
177
- fontFamily: 'sf-semibold',
178
- fontSize: 12,
179
- marginLeft: 4,
180
- },
181
- jobTopRight: {
182
- alignItems: 'center',
183
- justifyContent: 'center',
184
- paddingHorizontal: 10,
185
- paddingTop: 10,
186
- },
187
- jobCommentImage: {
188
- width: 34,
189
- height: 34,
190
- resizeMode: 'contain',
191
- },
192
- commentCountContainer: {
193
- position: 'absolute',
194
- top: 0,
195
- right: 0,
196
- borderRadius: 10,
197
- borderWidth: 2,
198
- borderColor: '#fff',
199
- width: 20,
200
- height: 20,
201
- backgroundColor: Colours.COLOUR_GREEN,
202
- justifyContent: 'center',
203
- alignItems: 'center',
204
- },
205
- commentCountText: {
206
- textAlign: 'center',
207
- fontFamily: 'sf-bold',
208
- fontSize: 10,
209
- color: '#fff',
210
- },
211
- jobBottomSection: {
212
- paddingHorizontal: 10,
213
- paddingVertical: 16,
214
- },
215
- jobDescriptionText: {
216
- fontFamily: 'sf-medium',
217
- fontSize: 14,
218
- color: Colours.TEXT_DARK,
219
- marginBottom: 8,
220
- },
221
- jobCreatedText: {
222
- fontFamily: 'sf-medium',
223
- fontSize: 12,
224
- color: Colours.TEXT_LIGHT,
225
- marginBottom: 10,
226
- },
227
- jobActivityContainer: {
228
- flexDirection: 'row',
229
- alignItems: 'center',
230
- },
231
- jobStatusContainer: {
232
- flexDirection: 'row',
233
- alignItems: 'center',
234
- justifyContent: 'center',
235
- width: 105,
236
- height: 30,
237
- paddingHorizontal: 8,
238
- borderRadius: 4,
239
- },
240
- jobStatusIcon: {
241
- color: '#fff',
242
- fontSize: 14,
243
- },
244
- jobStatusText: {
245
- color: '#fff',
246
- textAlign: 'center',
247
- fontFamily: 'sf-semibold',
248
- fontSize: 13,
249
- },
250
- jobStatusLine: {
251
- borderWidth: 1,
252
- borderStyle: 'dashed',
253
- width: 30,
254
- },
255
- jobStatusLineMask: {
256
- position: 'absolute',
257
- left: -1,
258
- top: -1,
259
- width: '100%',
260
- height: 1,
261
- backgroundColor: '#fff',
262
- zIndex: 1,
263
- },
264
- jobStatusCircle: {
265
- width: 18,
266
- height: 18,
267
- borderRadius: 9,
268
- },
269
- jobStatusDateText: {
270
- flex: 1,
271
- textAlign: 'right',
272
- fontFamily: 'sf-medium',
273
- fontSize: 14,
274
- color: Colours.TEXT_DARK,
275
- },
276
- jobPriorityContainer: {
277
- flexDirection: 'row',
278
- alignItems: 'center',
279
- justifyContent: 'center',
280
- width: 105,
281
- height: 24,
282
- paddingHorizontal: 8,
283
- borderRadius: 4,
284
- marginTop: 8,
285
- },
286
- jobPriorityText: {
287
- color: '#fff',
288
- textAlign: 'center',
289
- fontFamily: 'sf-semibold',
290
- fontSize: 13,
291
- },
174
+ jobContainer: {
175
+ marginVertical: 8,
176
+ paddingHorizontal: 16,
177
+ },
178
+ jobInnerContainer: {
179
+ ...Helper.getShadowStyle(),
180
+ },
181
+ jobTopSection: {
182
+ flexDirection: "row",
183
+ alignItems: "flex-end",
184
+ paddingHorizontal: 10,
185
+ paddingVertical: 10,
186
+ borderBottomWidth: 1,
187
+ borderBottomColor: Colours.LINEGREY,
188
+ },
189
+ jobTopLeft: {
190
+ flex: 1,
191
+ },
192
+ jobIdText: {
193
+ fontFamily: "sf-medium",
194
+ fontSize: 12,
195
+ marginBottom: 4,
196
+ },
197
+ jobTitleText: {
198
+ fontFamily: "sf-semibold",
199
+ fontSize: 18,
200
+ color: Colours.TEXT_DARK,
201
+ marginBottom: 4,
202
+ },
203
+ jobLocationText: {
204
+ fontFamily: "sf-medium",
205
+ fontSize: 12,
206
+ color: Colours.TEXT_LIGHT,
207
+ marginBottom: 4,
208
+ },
209
+ jobTypeSeenContainer: {
210
+ marginTop: 4,
211
+ flexDirection: "row",
212
+ alignItems: "center",
213
+ },
214
+ jobTypeContainer: {
215
+ padding: 4,
216
+ minWidth: 80,
217
+ maxWidth: 140,
218
+ borderRadius: 4,
219
+ justifyContent: "center",
220
+ },
221
+ jobTypeText: {
222
+ fontFamily: "sf-semibold",
223
+ fontSize: 12,
224
+ textAlign: "center",
225
+ maxWidth: "100%",
226
+ },
227
+ jobSeenContainer: {
228
+ flexDirection: "row",
229
+ alignItems: "center",
230
+ marginLeft: 10,
231
+ },
232
+ jobSeenIcon: {
233
+ fontSize: 12,
234
+ },
235
+ jobSeenText: {
236
+ fontFamily: "sf-semibold",
237
+ fontSize: 12,
238
+ marginLeft: 4,
239
+ },
240
+ jobTopRight: {
241
+ alignItems: "center",
242
+ justifyContent: "center",
243
+ paddingHorizontal: 10,
244
+ paddingTop: 10,
245
+ },
246
+ jobCommentImage: {
247
+ width: 34,
248
+ height: 34,
249
+ resizeMode: "contain",
250
+ },
251
+ commentCountContainer: {
252
+ position: "absolute",
253
+ top: 0,
254
+ right: 0,
255
+ borderRadius: 10,
256
+ borderWidth: 2,
257
+ borderColor: "#fff",
258
+ width: 20,
259
+ height: 20,
260
+ backgroundColor: Colours.COLOUR_GREEN,
261
+ justifyContent: "center",
262
+ alignItems: "center",
263
+ },
264
+ commentCountText: {
265
+ textAlign: "center",
266
+ fontFamily: "sf-bold",
267
+ fontSize: 10,
268
+ color: "#fff",
269
+ },
270
+ jobBottomSection: {
271
+ paddingHorizontal: 10,
272
+ paddingVertical: 16,
273
+ },
274
+ jobDescriptionText: {
275
+ fontFamily: "sf-medium",
276
+ fontSize: 14,
277
+ color: Colours.TEXT_DARK,
278
+ marginBottom: 8,
279
+ },
280
+ jobCreatedText: {
281
+ fontFamily: "sf-medium",
282
+ fontSize: 12,
283
+ color: Colours.TEXT_LIGHT,
284
+ marginBottom: 10,
285
+ },
286
+ jobActivityContainer: {
287
+ flexDirection: "row",
288
+ alignItems: "center",
289
+ },
290
+ jobStatusContainer: {
291
+ flexDirection: "row",
292
+ alignItems: "center",
293
+ justifyContent: "center",
294
+ width: 105,
295
+ height: 30,
296
+ paddingHorizontal: 8,
297
+ borderRadius: 4,
298
+ },
299
+ jobStatusIcon: {
300
+ color: "#fff",
301
+ fontSize: 14,
302
+ },
303
+ jobStatusText: {
304
+ color: "#fff",
305
+ textAlign: "center",
306
+ fontFamily: "sf-semibold",
307
+ fontSize: 13,
308
+ },
309
+ jobStatusLine: {
310
+ borderWidth: 1,
311
+ borderStyle: "dashed",
312
+ width: 30,
313
+ },
314
+ jobStatusLineMask: {
315
+ position: "absolute",
316
+ left: -1,
317
+ top: -1,
318
+ width: "100%",
319
+ height: 1,
320
+ backgroundColor: "#fff",
321
+ zIndex: 1,
322
+ },
323
+ jobStatusCircle: {
324
+ width: 18,
325
+ height: 18,
326
+ borderRadius: 9,
327
+ },
328
+ jobStatusDateText: {
329
+ flex: 1,
330
+ textAlign: "right",
331
+ fontFamily: "sf-medium",
332
+ fontSize: 14,
333
+ color: Colours.TEXT_DARK,
334
+ },
335
+ jobPriorityContainer: {
336
+ flexDirection: "row",
337
+ alignItems: "center",
338
+ justifyContent: "center",
339
+ width: 105,
340
+ height: 24,
341
+ paddingHorizontal: 8,
342
+ borderRadius: 4,
343
+ marginTop: 8,
344
+ },
345
+ jobPriorityText: {
346
+ color: "#fff",
347
+ textAlign: "center",
348
+ fontFamily: "sf-semibold",
349
+ fontSize: 13,
350
+ },
292
351
  });
293
352
 
294
- const mapStateToProps = state => {
295
- return {
296
- user: state.user,
297
- colourBrandingMain: Colours.getMainBrandingColourFromState(state),
298
- statusTypes: state[values.reducerKey].jobstatuses,
299
- hideSeen: state[values.reducerKey].hideSeen,
300
- };
353
+ const mapStateToProps = (state) => {
354
+ return {
355
+ user: state.user,
356
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state),
357
+ statusTypes: state[values.reducerKey].jobstatuses,
358
+ hideSeen: state[values.reducerKey].hideSeen,
359
+ };
301
360
  };
302
361
 
303
362
  export default connect(mapStateToProps, {})(MaintenanceListItem);