@plusscommunities/pluss-maintenance-app 1.1.15 → 1.2.2
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.
- package/dist/module/actions/JobActions.js +14 -0
- package/dist/module/actions/JobActions.js.map +1 -0
- package/dist/module/actions/index.js +2 -0
- package/dist/module/actions/index.js.map +1 -0
- package/dist/module/actions/types.js +3 -0
- package/dist/module/actions/types.js.map +1 -0
- package/dist/module/apis/generalActions.js +145 -0
- package/dist/module/apis/generalActions.js.map +1 -0
- package/dist/module/apis/index.js +2 -0
- package/dist/module/apis/index.js.map +1 -0
- package/dist/module/components/MaintenanceList.js +240 -0
- package/dist/module/components/MaintenanceList.js.map +1 -0
- package/dist/module/components/MaintenanceListItem.js +282 -0
- package/dist/module/components/MaintenanceListItem.js.map +1 -0
- package/dist/module/components/MaintenanceWidgetItem.js +161 -0
- package/dist/module/components/MaintenanceWidgetItem.js.map +1 -0
- package/dist/module/components/StatusSelectorPopup.js +93 -0
- package/dist/module/components/StatusSelectorPopup.js.map +1 -0
- package/dist/module/components/WidgetLarge.js +12 -0
- package/dist/module/components/WidgetLarge.js.map +1 -0
- package/dist/module/components/WidgetSmall.js +185 -0
- package/dist/module/components/WidgetSmall.js.map +1 -0
- package/dist/module/core.config.js +17 -0
- package/dist/module/core.config.js.map +1 -0
- package/dist/module/feature.config.js +91 -0
- package/dist/module/feature.config.js.map +1 -0
- package/dist/module/helper.js +28 -0
- package/dist/module/helper.js.map +1 -0
- package/dist/module/images/speechbubble.png +0 -0
- package/dist/module/index.js +20 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/reducers/JobsReducer.js +59 -0
- package/dist/module/reducers/JobsReducer.js.map +1 -0
- package/dist/module/screens/JobTypePicker.js +139 -0
- package/dist/module/screens/JobTypePicker.js.map +1 -0
- package/dist/module/screens/MaintenancePage.js +99 -0
- package/dist/module/screens/MaintenancePage.js.map +1 -0
- package/dist/module/screens/RequestDetail.js +839 -0
- package/dist/module/screens/RequestDetail.js.map +1 -0
- package/dist/module/screens/RequestNotes.js +420 -0
- package/dist/module/screens/RequestNotes.js.map +1 -0
- package/dist/module/screens/ServiceRequest.js +803 -0
- package/dist/module/screens/ServiceRequest.js.map +1 -0
- package/package.json +25 -12
@@ -0,0 +1,282 @@
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
2
|
+
|
3
|
+
import React, { Component } from 'react';
|
4
|
+
import { Image, Text, TouchableOpacity, View, StyleSheet } from 'react-native';
|
5
|
+
import _ from 'lodash';
|
6
|
+
import { Icon } from 'react-native-elements';
|
7
|
+
import { connect } from 'react-redux';
|
8
|
+
import moment from 'moment'; // import {
|
9
|
+
// getShadowStyle,
|
10
|
+
// LINEGREY,
|
11
|
+
// TEXT_DARK,
|
12
|
+
// TEXT_LIGHT,
|
13
|
+
// COLOUR_GREEN,
|
14
|
+
// getMainBrandingColourFromState,
|
15
|
+
// hexToRGBAstring,
|
16
|
+
// getJobStatusProps,
|
17
|
+
// jobStatusOptions,
|
18
|
+
// } from '../../js';
|
19
|
+
// import NavigationService from '../../js/NavigationService';
|
20
|
+
|
21
|
+
import { getJobStatusProps, jobStatusOptions } from '../helper';
|
22
|
+
import { Services } from '../feature.config';
|
23
|
+
import { Helper, Colours } from '../core.config';
|
24
|
+
|
25
|
+
class MaintenanceListItem extends Component {
|
26
|
+
constructor() {
|
27
|
+
super(...arguments);
|
28
|
+
|
29
|
+
_defineProperty(this, "onPressJob", () => {
|
30
|
+
Services.navigation.navigate('requestDetail', {
|
31
|
+
job: this.props.job
|
32
|
+
});
|
33
|
+
});
|
34
|
+
}
|
35
|
+
|
36
|
+
render() {
|
37
|
+
const {
|
38
|
+
job
|
39
|
+
} = this.props;
|
40
|
+
const createdTime = moment(job.createdUnix);
|
41
|
+
const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;
|
42
|
+
const activityTimeText = job.expectedDate ? moment(job.expectedDate).format('D MMMM') : '--';
|
43
|
+
const {
|
44
|
+
statusText,
|
45
|
+
statusColor
|
46
|
+
} = getJobStatusProps(job.status);
|
47
|
+
const showSeen = !job.status || job.status === jobStatusOptions[0].name;
|
48
|
+
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
49
|
+
onPress: this.onPressJob
|
50
|
+
}, /*#__PURE__*/React.createElement(View, {
|
51
|
+
style: [styles.jobContainer, this.props.style]
|
52
|
+
}, /*#__PURE__*/React.createElement(View, {
|
53
|
+
style: styles.jobInnerContainer
|
54
|
+
}, /*#__PURE__*/React.createElement(View, {
|
55
|
+
style: styles.jobTopSection
|
56
|
+
}, /*#__PURE__*/React.createElement(View, {
|
57
|
+
style: styles.jobTopLeft
|
58
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
59
|
+
style: styles.jobTitleText
|
60
|
+
}, job.title), /*#__PURE__*/React.createElement(View, {
|
61
|
+
style: styles.jobTypeSeenContainer
|
62
|
+
}, /*#__PURE__*/React.createElement(View, {
|
63
|
+
style: [styles.jobTypeContainer, {
|
64
|
+
backgroundColor: Colours.hexToRGBAstring(this.props.colourBrandingMain, 0.2)
|
65
|
+
}]
|
66
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
67
|
+
style: [styles.jobTypeText, {
|
68
|
+
color: this.props.colourBrandingMain
|
69
|
+
}]
|
70
|
+
}, job.type)), showSeen && job.seen && /*#__PURE__*/React.createElement(View, {
|
71
|
+
style: styles.jobSeenContainer
|
72
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
73
|
+
name: "check",
|
74
|
+
type: "font-awesome",
|
75
|
+
iconStyle: [styles.jobSeenIcon, {
|
76
|
+
color: this.props.colourBrandingMain
|
77
|
+
}]
|
78
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
79
|
+
style: [styles.jobSeenText, {
|
80
|
+
color: this.props.colourBrandingMain
|
81
|
+
}]
|
82
|
+
}, "Seen")))), /*#__PURE__*/React.createElement(View, {
|
83
|
+
style: styles.jobTopRight
|
84
|
+
}, /*#__PURE__*/React.createElement(Image, {
|
85
|
+
style: styles.jobCommentImage,
|
86
|
+
source: require('../images/speechbubble.png')
|
87
|
+
}), job.commentCount && /*#__PURE__*/React.createElement(View, {
|
88
|
+
style: styles.commentCountContainer
|
89
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
90
|
+
style: styles.commentCountText
|
91
|
+
}, job.commentCount > 99 ? '99' : job.commentCount)))), /*#__PURE__*/React.createElement(View, {
|
92
|
+
style: styles.jobBottomSection
|
93
|
+
}, job.description && /*#__PURE__*/React.createElement(Text, {
|
94
|
+
style: styles.jobDescriptionText
|
95
|
+
}, job.description), /*#__PURE__*/React.createElement(Text, {
|
96
|
+
style: styles.jobCreatedText
|
97
|
+
}, createdTimeText), /*#__PURE__*/React.createElement(View, {
|
98
|
+
style: styles.jobActivityContainer
|
99
|
+
}, /*#__PURE__*/React.createElement(View, {
|
100
|
+
style: [styles.jobStatusContainer, {
|
101
|
+
backgroundColor: statusColor
|
102
|
+
}]
|
103
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
104
|
+
name: "wrench",
|
105
|
+
type: "font-awesome",
|
106
|
+
iconStyle: styles.jobStatusIcon
|
107
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
108
|
+
style: styles.jobStatusText
|
109
|
+
}, statusText)), /*#__PURE__*/React.createElement(View, {
|
110
|
+
style: [styles.jobStatusLine, {
|
111
|
+
borderColor: statusColor
|
112
|
+
}]
|
113
|
+
}, /*#__PURE__*/React.createElement(View, {
|
114
|
+
style: styles.jobStatusLineMask
|
115
|
+
})), /*#__PURE__*/React.createElement(View, {
|
116
|
+
style: [styles.jobStatusCircle, {
|
117
|
+
backgroundColor: statusColor
|
118
|
+
}]
|
119
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
120
|
+
style: styles.jobStatusDateText
|
121
|
+
}, activityTimeText))))));
|
122
|
+
}
|
123
|
+
|
124
|
+
}
|
125
|
+
|
126
|
+
const styles = StyleSheet.create({
|
127
|
+
jobContainer: {
|
128
|
+
marginVertical: 8,
|
129
|
+
paddingHorizontal: 16
|
130
|
+
},
|
131
|
+
jobInnerContainer: { ...Helper.getShadowStyle()
|
132
|
+
},
|
133
|
+
jobTopSection: {
|
134
|
+
flexDirection: 'row',
|
135
|
+
alignItems: 'center',
|
136
|
+
paddingHorizontal: 10,
|
137
|
+
paddingVertical: 16,
|
138
|
+
borderBottomWidth: 1,
|
139
|
+
borderBottomColor: Colours.LINEGREY
|
140
|
+
},
|
141
|
+
jobTopLeft: {
|
142
|
+
flex: 1
|
143
|
+
},
|
144
|
+
jobTitleText: {
|
145
|
+
fontFamily: 'sf-semibold',
|
146
|
+
fontSize: 18,
|
147
|
+
color: Colours.TEXT_DARK,
|
148
|
+
marginBottom: 8
|
149
|
+
},
|
150
|
+
jobTypeSeenContainer: {
|
151
|
+
flexDirection: 'row',
|
152
|
+
alignItems: 'center'
|
153
|
+
},
|
154
|
+
jobTypeContainer: {
|
155
|
+
height: 20,
|
156
|
+
width: 80,
|
157
|
+
borderRadius: 4,
|
158
|
+
justifyContent: 'center'
|
159
|
+
},
|
160
|
+
jobTypeText: {
|
161
|
+
fontFamily: 'sf-semibold',
|
162
|
+
fontSize: 12,
|
163
|
+
textAlign: 'center'
|
164
|
+
},
|
165
|
+
jobSeenContainer: {
|
166
|
+
flexDirection: 'row',
|
167
|
+
alignItems: 'center',
|
168
|
+
marginLeft: 10
|
169
|
+
},
|
170
|
+
jobSeenIcon: {
|
171
|
+
fontSize: 12
|
172
|
+
},
|
173
|
+
jobSeenText: {
|
174
|
+
fontFamily: 'sf-semibold',
|
175
|
+
fontSize: 12,
|
176
|
+
marginLeft: 4
|
177
|
+
},
|
178
|
+
jobTopRight: {
|
179
|
+
alignItems: 'center',
|
180
|
+
justifyContent: 'center',
|
181
|
+
paddingHorizontal: 10,
|
182
|
+
paddingTop: 10
|
183
|
+
},
|
184
|
+
jobCommentImage: {
|
185
|
+
width: 34,
|
186
|
+
height: 34,
|
187
|
+
resizeMode: 'contain'
|
188
|
+
},
|
189
|
+
commentCountContainer: {
|
190
|
+
position: 'absolute',
|
191
|
+
top: 0,
|
192
|
+
right: 0,
|
193
|
+
borderRadius: 10,
|
194
|
+
borderWidth: 2,
|
195
|
+
borderColor: '#fff',
|
196
|
+
width: 20,
|
197
|
+
height: 20,
|
198
|
+
backgroundColor: Colours.COLOUR_GREEN,
|
199
|
+
justifyContent: 'center',
|
200
|
+
alignItems: 'center'
|
201
|
+
},
|
202
|
+
commentCountText: {
|
203
|
+
textAlign: 'center',
|
204
|
+
fontFamily: 'sf-bold',
|
205
|
+
fontSize: 10,
|
206
|
+
color: '#fff'
|
207
|
+
},
|
208
|
+
jobBottomSection: {
|
209
|
+
paddingHorizontal: 10,
|
210
|
+
paddingVertical: 16
|
211
|
+
},
|
212
|
+
jobDescriptionText: {
|
213
|
+
fontFamily: 'sf-medium',
|
214
|
+
fontSize: 14,
|
215
|
+
color: Colours.TEXT_DARK,
|
216
|
+
marginBottom: 8
|
217
|
+
},
|
218
|
+
jobCreatedText: {
|
219
|
+
fontFamily: 'sf-medium',
|
220
|
+
fontSize: 12,
|
221
|
+
color: Colours.TEXT_LIGHT,
|
222
|
+
marginBottom: 10
|
223
|
+
},
|
224
|
+
jobActivityContainer: {
|
225
|
+
flexDirection: 'row',
|
226
|
+
alignItems: 'center'
|
227
|
+
},
|
228
|
+
jobStatusContainer: {
|
229
|
+
flexDirection: 'row',
|
230
|
+
alignItems: 'center',
|
231
|
+
justifyContent: 'space-between',
|
232
|
+
width: 105,
|
233
|
+
height: 30,
|
234
|
+
paddingHorizontal: 8,
|
235
|
+
borderRadius: 4
|
236
|
+
},
|
237
|
+
jobStatusIcon: {
|
238
|
+
color: '#fff',
|
239
|
+
fontSize: 14
|
240
|
+
},
|
241
|
+
jobStatusText: {
|
242
|
+
color: '#fff',
|
243
|
+
textAlign: 'center',
|
244
|
+
fontFamily: 'sf-semibold',
|
245
|
+
fontSize: 13
|
246
|
+
},
|
247
|
+
jobStatusLine: {
|
248
|
+
borderWidth: 1,
|
249
|
+
borderStyle: 'dashed',
|
250
|
+
width: 30
|
251
|
+
},
|
252
|
+
jobStatusLineMask: {
|
253
|
+
position: 'absolute',
|
254
|
+
left: -1,
|
255
|
+
top: -1,
|
256
|
+
width: '100%',
|
257
|
+
height: 1,
|
258
|
+
backgroundColor: '#fff',
|
259
|
+
zIndex: 1
|
260
|
+
},
|
261
|
+
jobStatusCircle: {
|
262
|
+
width: 18,
|
263
|
+
height: 18,
|
264
|
+
borderRadius: 9
|
265
|
+
},
|
266
|
+
jobStatusDateText: {
|
267
|
+
flex: 1,
|
268
|
+
textAlign: 'right',
|
269
|
+
fontFamily: 'sf-bold',
|
270
|
+
fontSize: 14,
|
271
|
+
color: Colours.TEXT_DARK
|
272
|
+
}
|
273
|
+
});
|
274
|
+
|
275
|
+
const mapStateToProps = state => {
|
276
|
+
return {
|
277
|
+
colourBrandingMain: Colours.getMainBrandingColourFromState(state)
|
278
|
+
};
|
279
|
+
};
|
280
|
+
|
281
|
+
export default connect(mapStateToProps, {})(MaintenanceListItem);
|
282
|
+
//# sourceMappingURL=MaintenanceListItem.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["MaintenanceListItem.js"],"names":["React","Component","Image","Text","TouchableOpacity","View","StyleSheet","_","Icon","connect","moment","getJobStatusProps","jobStatusOptions","Services","Helper","Colours","MaintenanceListItem","navigation","navigate","job","props","render","createdTime","createdUnix","createdTimeText","format","activityTimeText","expectedDate","statusText","statusColor","status","showSeen","name","onPressJob","styles","jobContainer","style","jobInnerContainer","jobTopSection","jobTopLeft","jobTitleText","title","jobTypeSeenContainer","jobTypeContainer","backgroundColor","hexToRGBAstring","colourBrandingMain","jobTypeText","color","type","seen","jobSeenContainer","jobSeenIcon","jobSeenText","jobTopRight","jobCommentImage","require","commentCount","commentCountContainer","commentCountText","jobBottomSection","description","jobDescriptionText","jobCreatedText","jobActivityContainer","jobStatusContainer","jobStatusIcon","jobStatusText","jobStatusLine","borderColor","jobStatusLineMask","jobStatusCircle","jobStatusDateText","create","marginVertical","paddingHorizontal","getShadowStyle","flexDirection","alignItems","paddingVertical","borderBottomWidth","borderBottomColor","LINEGREY","flex","fontFamily","fontSize","TEXT_DARK","marginBottom","height","width","borderRadius","justifyContent","textAlign","marginLeft","paddingTop","resizeMode","position","top","right","borderWidth","COLOUR_GREEN","TEXT_LIGHT","borderStyle","left","zIndex","mapStateToProps","state","getMainBrandingColourFromState"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { Image, Text, TouchableOpacity, View, StyleSheet } from 'react-native';\nimport _ from 'lodash';\nimport { Icon } from 'react-native-elements';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\n// import {\n// getShadowStyle,\n// LINEGREY,\n// TEXT_DARK,\n// TEXT_LIGHT,\n// COLOUR_GREEN,\n// getMainBrandingColourFromState,\n// hexToRGBAstring,\n// getJobStatusProps,\n// jobStatusOptions,\n// } from '../../js';\n// import NavigationService from '../../js/NavigationService';\nimport { getJobStatusProps, jobStatusOptions } from '../helper';\nimport { Services } from '../feature.config';\nimport { Helper, Colours } from '../core.config';\n\nclass MaintenanceListItem extends Component {\n onPressJob = () => {\n Services.navigation.navigate('requestDetail', { job: this.props.job });\n };\n\n render() {\n const { job } = this.props;\n const createdTime = moment(job.createdUnix);\n const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;\n const activityTimeText = job.expectedDate ? moment(job.expectedDate).format('D MMMM') : '--';\n const { statusText, statusColor } = getJobStatusProps(job.status);\n const showSeen = !job.status || job.status === jobStatusOptions[0].name;\n\n return (\n <TouchableOpacity onPress={this.onPressJob}>\n <View style={[styles.jobContainer, this.props.style]}>\n <View style={styles.jobInnerContainer}>\n <View style={styles.jobTopSection}>\n <View style={styles.jobTopLeft}>\n <Text style={styles.jobTitleText}>{job.title}</Text>\n <View style={styles.jobTypeSeenContainer}>\n <View style={[styles.jobTypeContainer, { backgroundColor: Colours.hexToRGBAstring(this.props.colourBrandingMain, 0.2) }]}>\n <Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]}>{job.type}</Text>\n </View>\n {showSeen && job.seen && (\n <View style={styles.jobSeenContainer}>\n <Icon name=\"check\" type=\"font-awesome\" iconStyle={[styles.jobSeenIcon, { color: this.props.colourBrandingMain }]} />\n <Text style={[styles.jobSeenText, { color: this.props.colourBrandingMain }]}>Seen</Text>\n </View>\n )}\n </View>\n </View>\n <View style={styles.jobTopRight}>\n <Image style={styles.jobCommentImage} source={require('../images/speechbubble.png')} />\n {job.commentCount && (\n <View style={styles.commentCountContainer}>\n <Text style={styles.commentCountText}>{job.commentCount > 99 ? '99' : job.commentCount}</Text>\n </View>\n )}\n </View>\n </View>\n <View style={styles.jobBottomSection}>\n {job.description && <Text style={styles.jobDescriptionText}>{job.description}</Text>}\n <Text style={styles.jobCreatedText}>{createdTimeText}</Text>\n <View style={styles.jobActivityContainer}>\n <View style={[styles.jobStatusContainer, { backgroundColor: statusColor }]}>\n <Icon name=\"wrench\" type=\"font-awesome\" iconStyle={styles.jobStatusIcon} />\n <Text style={styles.jobStatusText}>{statusText}</Text>\n </View>\n <View style={[styles.jobStatusLine, { borderColor: statusColor }]}>\n <View style={styles.jobStatusLineMask} />\n </View>\n <View style={[styles.jobStatusCircle, { backgroundColor: statusColor }]} />\n <Text style={styles.jobStatusDateText}>{activityTimeText}</Text>\n </View>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n jobContainer: {\n marginVertical: 8,\n paddingHorizontal: 16,\n },\n jobInnerContainer: {\n ...Helper.getShadowStyle(),\n },\n jobTopSection: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 10,\n paddingVertical: 16,\n borderBottomWidth: 1,\n borderBottomColor: Colours.LINEGREY,\n },\n jobTopLeft: {\n flex: 1,\n },\n jobTitleText: {\n fontFamily: 'sf-semibold',\n fontSize: 18,\n color: Colours.TEXT_DARK,\n marginBottom: 8,\n },\n jobTypeSeenContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n jobTypeContainer: {\n height: 20,\n width: 80,\n borderRadius: 4,\n justifyContent: 'center',\n },\n jobTypeText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n textAlign: 'center',\n },\n jobSeenContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n marginLeft: 10,\n },\n jobSeenIcon: {\n fontSize: 12,\n },\n jobSeenText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n marginLeft: 4,\n },\n jobTopRight: {\n alignItems: 'center',\n justifyContent: 'center',\n paddingHorizontal: 10,\n paddingTop: 10,\n },\n jobCommentImage: {\n width: 34,\n height: 34,\n resizeMode: 'contain',\n },\n commentCountContainer: {\n position: 'absolute',\n top: 0,\n right: 0,\n borderRadius: 10,\n borderWidth: 2,\n borderColor: '#fff',\n width: 20,\n height: 20,\n backgroundColor: Colours.COLOUR_GREEN,\n justifyContent: 'center',\n alignItems: 'center',\n },\n commentCountText: {\n textAlign: 'center',\n fontFamily: 'sf-bold',\n fontSize: 10,\n color: '#fff',\n },\n jobBottomSection: {\n paddingHorizontal: 10,\n paddingVertical: 16,\n },\n jobDescriptionText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: Colours.TEXT_DARK,\n marginBottom: 8,\n },\n jobCreatedText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n color: Colours.TEXT_LIGHT,\n marginBottom: 10,\n },\n jobActivityContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n jobStatusContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 105,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n jobStatusIcon: {\n color: '#fff',\n fontSize: 14,\n },\n jobStatusText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n jobStatusLine: {\n borderWidth: 1,\n borderStyle: 'dashed',\n width: 30,\n },\n jobStatusLineMask: {\n position: 'absolute',\n left: -1,\n top: -1,\n width: '100%',\n height: 1,\n backgroundColor: '#fff',\n zIndex: 1,\n },\n jobStatusCircle: {\n width: 18,\n height: 18,\n borderRadius: 9,\n },\n jobStatusDateText: {\n flex: 1,\n textAlign: 'right',\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: Colours.TEXT_DARK,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(MaintenanceListItem);\n"]}
|
@@ -0,0 +1,161 @@
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
2
|
+
|
3
|
+
import React, { Component } from 'react';
|
4
|
+
import { Text, View, StyleSheet, TouchableOpacity } from 'react-native';
|
5
|
+
import { connect } from 'react-redux';
|
6
|
+
import { Icon } from 'react-native-elements';
|
7
|
+
import moment from 'moment';
|
8
|
+
import _ from 'lodash';
|
9
|
+
import { getJobStatusProps, jobStatusOptions } from '../helper';
|
10
|
+
import { Services } from '../feature.config';
|
11
|
+
import { Colours, Helper } from '../core.config';
|
12
|
+
|
13
|
+
class MaintenanceWidgetItem extends Component {
|
14
|
+
constructor() {
|
15
|
+
super(...arguments);
|
16
|
+
|
17
|
+
_defineProperty(this, "onPressJob", () => {
|
18
|
+
Services.navigation.navigate('requestDetail', {
|
19
|
+
job: this.props.job
|
20
|
+
});
|
21
|
+
});
|
22
|
+
}
|
23
|
+
|
24
|
+
render() {
|
25
|
+
const {
|
26
|
+
job
|
27
|
+
} = this.props;
|
28
|
+
const createdTime = moment(job.createdUnix);
|
29
|
+
const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;
|
30
|
+
const {
|
31
|
+
statusText,
|
32
|
+
statusColor
|
33
|
+
} = getJobStatusProps(job.status);
|
34
|
+
|
35
|
+
const seenText = (() => {
|
36
|
+
if (!job.status || job.status === jobStatusOptions[0].name) {
|
37
|
+
return job.seen ? 'Seen' : 'Unseen';
|
38
|
+
}
|
39
|
+
|
40
|
+
return '';
|
41
|
+
})();
|
42
|
+
|
43
|
+
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
44
|
+
key: job.id,
|
45
|
+
onPress: this.onPressJob
|
46
|
+
}, /*#__PURE__*/React.createElement(View, {
|
47
|
+
style: styles.jobContainer
|
48
|
+
}, /*#__PURE__*/React.createElement(View, {
|
49
|
+
style: styles.jobInnerContainer
|
50
|
+
}, /*#__PURE__*/React.createElement(View, {
|
51
|
+
style: styles.jobTopSection
|
52
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
53
|
+
numberOfLines: 2,
|
54
|
+
style: styles.jobTitleText
|
55
|
+
}, job.title), /*#__PURE__*/React.createElement(Text, {
|
56
|
+
style: styles.jobCreatedTimeText
|
57
|
+
}, createdTimeText), /*#__PURE__*/React.createElement(View, {
|
58
|
+
style: styles.jobSeenContainer
|
59
|
+
}, job.seen && !_.isEmpty(seenText) && /*#__PURE__*/React.createElement(Icon, {
|
60
|
+
name: "check",
|
61
|
+
type: "font-awesome",
|
62
|
+
iconStyle: [styles.jobSeenIcon, {
|
63
|
+
color: this.props.colourBrandingMain
|
64
|
+
}]
|
65
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
66
|
+
style: [styles.jobSeenText, job.seen && {
|
67
|
+
color: this.props.colourBrandingMain
|
68
|
+
}]
|
69
|
+
}, seenText))), /*#__PURE__*/React.createElement(View, {
|
70
|
+
style: styles.jobBottomSection
|
71
|
+
}, /*#__PURE__*/React.createElement(View, {
|
72
|
+
style: [styles.jobStatusContainer, {
|
73
|
+
backgroundColor: statusColor
|
74
|
+
}]
|
75
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
76
|
+
name: "wrench",
|
77
|
+
type: "font-awesome",
|
78
|
+
iconStyle: styles.jobStatusIcon
|
79
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
80
|
+
style: styles.jobStatusText
|
81
|
+
}, statusText))))));
|
82
|
+
}
|
83
|
+
|
84
|
+
}
|
85
|
+
|
86
|
+
const styles = StyleSheet.create({
|
87
|
+
jobContainer: {
|
88
|
+
padding: 10
|
89
|
+
},
|
90
|
+
jobInnerContainer: {
|
91
|
+
width: 140,
|
92
|
+
height: 160,
|
93
|
+
...Helper.getShadowStyle()
|
94
|
+
},
|
95
|
+
jobTopSection: {
|
96
|
+
flex: 1,
|
97
|
+
padding: 10,
|
98
|
+
paddingTop: 20
|
99
|
+
},
|
100
|
+
jobTitleText: {
|
101
|
+
flex: 1,
|
102
|
+
fontFamily: 'sf-semibold',
|
103
|
+
fontSize: 16,
|
104
|
+
color: Colours.TEXT_DARK
|
105
|
+
},
|
106
|
+
jobCreatedTimeText: {
|
107
|
+
fontFamily: 'sf-medium',
|
108
|
+
fontSize: 11,
|
109
|
+
color: Colours.TEXT_LIGHT,
|
110
|
+
paddingTop: 3
|
111
|
+
},
|
112
|
+
jobSeenContainer: {
|
113
|
+
flexDirection: 'row',
|
114
|
+
alignItems: 'center',
|
115
|
+
paddingTop: 5
|
116
|
+
},
|
117
|
+
jobSeenIcon: {
|
118
|
+
fontSize: 12,
|
119
|
+
marginRight: 4
|
120
|
+
},
|
121
|
+
jobSeenText: {
|
122
|
+
fontFamily: 'sf-semibold',
|
123
|
+
fontSize: 12,
|
124
|
+
color: Colours.TEXT_SUPER_LIGHT
|
125
|
+
},
|
126
|
+
jobBottomSection: {
|
127
|
+
alignItems: 'center',
|
128
|
+
justifyContent: 'center',
|
129
|
+
paddingVertical: 10,
|
130
|
+
borderTopWidth: 1,
|
131
|
+
borderTopColor: Colours.LINEGREY
|
132
|
+
},
|
133
|
+
jobStatusContainer: {
|
134
|
+
flexDirection: 'row',
|
135
|
+
alignItems: 'center',
|
136
|
+
justifyContent: 'space-between',
|
137
|
+
width: 105,
|
138
|
+
height: 30,
|
139
|
+
paddingHorizontal: 8,
|
140
|
+
borderRadius: 4
|
141
|
+
},
|
142
|
+
jobStatusIcon: {
|
143
|
+
color: '#fff',
|
144
|
+
fontSize: 14
|
145
|
+
},
|
146
|
+
jobStatusText: {
|
147
|
+
color: '#fff',
|
148
|
+
textAlign: 'center',
|
149
|
+
fontFamily: 'sf-semibold',
|
150
|
+
fontSize: 13
|
151
|
+
}
|
152
|
+
});
|
153
|
+
|
154
|
+
const mapStateToProps = state => {
|
155
|
+
return {
|
156
|
+
colourBrandingMain: Colours.getMainBrandingColourFromState(state)
|
157
|
+
};
|
158
|
+
};
|
159
|
+
|
160
|
+
export default connect(mapStateToProps, {})(MaintenanceWidgetItem);
|
161
|
+
//# sourceMappingURL=MaintenanceWidgetItem.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["MaintenanceWidgetItem.js"],"names":["React","Component","Text","View","StyleSheet","TouchableOpacity","connect","Icon","moment","_","getJobStatusProps","jobStatusOptions","Services","Colours","Helper","MaintenanceWidgetItem","navigation","navigate","job","props","render","createdTime","createdUnix","createdTimeText","format","statusText","statusColor","status","seenText","name","seen","id","onPressJob","styles","jobContainer","jobInnerContainer","jobTopSection","jobTitleText","title","jobCreatedTimeText","jobSeenContainer","isEmpty","jobSeenIcon","color","colourBrandingMain","jobSeenText","jobBottomSection","jobStatusContainer","backgroundColor","jobStatusIcon","jobStatusText","create","padding","width","height","getShadowStyle","flex","paddingTop","fontFamily","fontSize","TEXT_DARK","TEXT_LIGHT","flexDirection","alignItems","marginRight","TEXT_SUPER_LIGHT","justifyContent","paddingVertical","borderTopWidth","borderTopColor","LINEGREY","paddingHorizontal","borderRadius","textAlign","mapStateToProps","state","getMainBrandingColourFromState"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { Text, View, StyleSheet, TouchableOpacity } from 'react-native';\nimport { connect } from 'react-redux';\nimport { Icon } from 'react-native-elements';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport { getJobStatusProps, jobStatusOptions } from '../helper';\nimport { Services } from '../feature.config';\nimport { Colours, Helper } from '../core.config';\n\nclass MaintenanceWidgetItem extends Component {\n onPressJob = () => {\n Services.navigation.navigate('requestDetail', { job: this.props.job });\n };\n\n render() {\n const { job } = this.props;\n const createdTime = moment(job.createdUnix);\n const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;\n const { statusText, statusColor } = getJobStatusProps(job.status);\n const seenText = (() => {\n if (!job.status || job.status === jobStatusOptions[0].name) {\n return job.seen ? 'Seen' : 'Unseen';\n }\n return '';\n })();\n\n return (\n <TouchableOpacity key={job.id} onPress={this.onPressJob}>\n <View style={styles.jobContainer}>\n <View style={styles.jobInnerContainer}>\n <View style={styles.jobTopSection}>\n <Text numberOfLines={2} style={styles.jobTitleText}>\n {job.title}\n </Text>\n <Text style={styles.jobCreatedTimeText}>{createdTimeText}</Text>\n <View style={styles.jobSeenContainer}>\n {job.seen && !_.isEmpty(seenText) && (\n <Icon name=\"check\" type=\"font-awesome\" iconStyle={[styles.jobSeenIcon, { color: this.props.colourBrandingMain }]} />\n )}\n <Text style={[styles.jobSeenText, job.seen && { color: this.props.colourBrandingMain }]}>{seenText}</Text>\n </View>\n </View>\n <View style={styles.jobBottomSection}>\n <View style={[styles.jobStatusContainer, { backgroundColor: statusColor }]}>\n <Icon name=\"wrench\" type=\"font-awesome\" iconStyle={styles.jobStatusIcon} />\n <Text style={styles.jobStatusText}>{statusText}</Text>\n </View>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n jobContainer: {\n padding: 10,\n },\n jobInnerContainer: {\n width: 140,\n height: 160,\n ...Helper.getShadowStyle(),\n },\n jobTopSection: {\n flex: 1,\n padding: 10,\n paddingTop: 20,\n },\n jobTitleText: {\n flex: 1,\n fontFamily: 'sf-semibold',\n fontSize: 16,\n color: Colours.TEXT_DARK,\n },\n jobCreatedTimeText: {\n fontFamily: 'sf-medium',\n fontSize: 11,\n color: Colours.TEXT_LIGHT,\n paddingTop: 3,\n },\n jobSeenContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingTop: 5,\n },\n jobSeenIcon: {\n fontSize: 12,\n marginRight: 4,\n },\n jobSeenText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n color: Colours.TEXT_SUPER_LIGHT,\n },\n jobBottomSection: {\n alignItems: 'center',\n justifyContent: 'center',\n paddingVertical: 10,\n borderTopWidth: 1,\n borderTopColor: Colours.LINEGREY,\n },\n jobStatusContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 105,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n jobStatusIcon: {\n color: '#fff',\n fontSize: 14,\n },\n jobStatusText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(MaintenanceWidgetItem);\n"]}
|
@@ -0,0 +1,93 @@
|
|
1
|
+
import React, { PureComponent } from 'react';
|
2
|
+
import { View, StyleSheet, TouchableOpacity, Text } from 'react-native';
|
3
|
+
import { connect } from 'react-redux';
|
4
|
+
import { jobStatusOptions, getJobStatusColour } from '../helper';
|
5
|
+
import { Components, Colours } from '../core.config';
|
6
|
+
|
7
|
+
class StatusSelectorPopup extends PureComponent {
|
8
|
+
render() {
|
9
|
+
const {
|
10
|
+
title,
|
11
|
+
filter,
|
12
|
+
includeAll,
|
13
|
+
allText,
|
14
|
+
onClose,
|
15
|
+
onSelect
|
16
|
+
} = this.props;
|
17
|
+
let statuses = filter ? filter.map(status => {
|
18
|
+
return {
|
19
|
+
name: status,
|
20
|
+
color: getJobStatusColour(status)
|
21
|
+
};
|
22
|
+
}) : jobStatusOptions;
|
23
|
+
if (includeAll) statuses = [{
|
24
|
+
name: allText || 'Show All',
|
25
|
+
color: this.props.colourBrandingMain
|
26
|
+
}, ...statuses];
|
27
|
+
return /*#__PURE__*/React.createElement(Components.MiddlePopup, {
|
28
|
+
style: [styles.statusPopup, {
|
29
|
+
height: statuses.length * 50 + 40
|
30
|
+
}],
|
31
|
+
onClose: onClose
|
32
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
33
|
+
style: styles.statusPopupTitle
|
34
|
+
}, title || 'Select Status'), /*#__PURE__*/React.createElement(View, {
|
35
|
+
style: styles.statusPopupOptionsContainer
|
36
|
+
}, statuses.map(status => {
|
37
|
+
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
38
|
+
key: status.name,
|
39
|
+
onPress: () => onSelect(status.name)
|
40
|
+
}, /*#__PURE__*/React.createElement(View, {
|
41
|
+
style: [styles.jobStatusContainer, {
|
42
|
+
backgroundColor: status.color
|
43
|
+
}]
|
44
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
45
|
+
style: styles.jobStatusText
|
46
|
+
}, status.name)));
|
47
|
+
})));
|
48
|
+
}
|
49
|
+
|
50
|
+
}
|
51
|
+
|
52
|
+
const styles = StyleSheet.create({
|
53
|
+
statusPopup: {
|
54
|
+
width: 160,
|
55
|
+
padding: 16,
|
56
|
+
borderRadius: 12
|
57
|
+
},
|
58
|
+
statusPopupTitle: {
|
59
|
+
fontFamily: 'sf-bold',
|
60
|
+
color: Colours.TEXT_DARK,
|
61
|
+
fontSize: 18,
|
62
|
+
marginBottom: 16
|
63
|
+
},
|
64
|
+
statusPopupOptionsContainer: {
|
65
|
+
flex: 1,
|
66
|
+
justifyContent: 'space-between'
|
67
|
+
},
|
68
|
+
jobStatusContainer: {
|
69
|
+
flexDirection: 'row',
|
70
|
+
alignItems: 'center',
|
71
|
+
justifyContent: 'space-between',
|
72
|
+
width: 105,
|
73
|
+
height: 30,
|
74
|
+
paddingHorizontal: 8,
|
75
|
+
borderRadius: 4
|
76
|
+
},
|
77
|
+
jobStatusText: {
|
78
|
+
color: '#fff',
|
79
|
+
textAlign: 'center',
|
80
|
+
fontFamily: 'sf-semibold',
|
81
|
+
fontSize: 13,
|
82
|
+
flex: 1
|
83
|
+
}
|
84
|
+
});
|
85
|
+
|
86
|
+
const mapStateToProps = state => {
|
87
|
+
return {
|
88
|
+
colourBrandingMain: Colours.getMainBrandingColourFromState(state)
|
89
|
+
};
|
90
|
+
};
|
91
|
+
|
92
|
+
export default connect(mapStateToProps, {})(StatusSelectorPopup);
|
93
|
+
//# sourceMappingURL=StatusSelectorPopup.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["StatusSelectorPopup.js"],"names":["React","PureComponent","View","StyleSheet","TouchableOpacity","Text","connect","jobStatusOptions","getJobStatusColour","Components","Colours","StatusSelectorPopup","render","title","filter","includeAll","allText","onClose","onSelect","props","statuses","map","status","name","color","colourBrandingMain","styles","statusPopup","height","length","statusPopupTitle","statusPopupOptionsContainer","jobStatusContainer","backgroundColor","jobStatusText","create","width","padding","borderRadius","fontFamily","TEXT_DARK","fontSize","marginBottom","flex","justifyContent","flexDirection","alignItems","paddingHorizontal","textAlign","mapStateToProps","state","getMainBrandingColourFromState"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport { View, StyleSheet, TouchableOpacity, Text } from 'react-native';\nimport { connect } from 'react-redux';\nimport { jobStatusOptions, getJobStatusColour } from '../helper';\nimport { Components, Colours } from '../core.config';\n\nclass StatusSelectorPopup extends PureComponent {\n render() {\n const { title, filter, includeAll, allText, onClose, onSelect } = this.props;\n let statuses = filter\n ? filter.map(status => {\n return {\n name: status,\n color: getJobStatusColour(status),\n };\n })\n : jobStatusOptions;\n if (includeAll)\n statuses = [\n {\n name: allText || 'Show All',\n color: this.props.colourBrandingMain,\n },\n ...statuses,\n ];\n\n return (\n <Components.MiddlePopup style={[styles.statusPopup, { height: statuses.length * 50 + 40 }]} onClose={onClose}>\n <Text style={styles.statusPopupTitle}>{title || 'Select Status'}</Text>\n <View style={styles.statusPopupOptionsContainer}>\n {statuses.map(status => {\n return (\n <TouchableOpacity key={status.name} onPress={() => onSelect(status.name)}>\n <View style={[styles.jobStatusContainer, { backgroundColor: status.color }]}>\n <Text style={styles.jobStatusText}>{status.name}</Text>\n </View>\n </TouchableOpacity>\n );\n })}\n </View>\n </Components.MiddlePopup>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n statusPopup: {\n width: 160,\n padding: 16,\n borderRadius: 12,\n },\n statusPopupTitle: {\n fontFamily: 'sf-bold',\n color: Colours.TEXT_DARK,\n fontSize: 18,\n marginBottom: 16,\n },\n statusPopupOptionsContainer: {\n flex: 1,\n justifyContent: 'space-between',\n },\n jobStatusContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 105,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n jobStatusText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n flex: 1,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(StatusSelectorPopup);\n"]}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import React, { PureComponent } from 'react';
|
2
|
+
import MaintenanceList from './MaintenanceList';
|
3
|
+
|
4
|
+
class WidgetLarge extends PureComponent {
|
5
|
+
render() {
|
6
|
+
return /*#__PURE__*/React.createElement(MaintenanceList, this.props);
|
7
|
+
}
|
8
|
+
|
9
|
+
}
|
10
|
+
|
11
|
+
export default WidgetLarge;
|
12
|
+
//# sourceMappingURL=WidgetLarge.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["WidgetLarge.js"],"names":["React","PureComponent","MaintenanceList","WidgetLarge","render","props"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AACA,OAAOC,eAAP,MAA4B,mBAA5B;;AAEA,MAAMC,WAAN,SAA0BF,aAA1B,CAAwC;AACtCG,EAAAA,MAAM,GAAG;AACP,wBAAO,oBAAC,eAAD,EAAqB,KAAKC,KAA1B,CAAP;AACD;;AAHqC;;AAMxC,eAAeF,WAAf","sourcesContent":["import React, { PureComponent } from 'react';\nimport MaintenanceList from './MaintenanceList';\n\nclass WidgetLarge extends PureComponent {\n render() {\n return <MaintenanceList {...this.props} />;\n }\n}\n\nexport default WidgetLarge;\n"]}
|