@plusscommunities/pluss-maintenance-app 6.0.4-auth.0 → 6.0.5-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 (38) hide show
  1. package/dist/module/apis/index.js +1 -1
  2. package/dist/module/apis/index.js.map +1 -1
  3. package/dist/module/apis/{generalActions.js → maintenanceActions.js} +22 -39
  4. package/dist/module/apis/maintenanceActions.js.map +1 -0
  5. package/dist/module/components/FilterPopupMenu.js +46 -10
  6. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  7. package/dist/module/components/MaintenanceList.js +47 -13
  8. package/dist/module/components/MaintenanceList.js.map +1 -1
  9. package/dist/module/components/MaintenanceListItem.js +5 -9
  10. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  11. package/dist/module/components/MaintenanceWidgetItem.js +1 -5
  12. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  13. package/dist/module/components/StatusSelectorPopup.js +2 -1
  14. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  15. package/dist/module/components/WidgetSmall.js +2 -2
  16. package/dist/module/components/WidgetSmall.js.map +1 -1
  17. package/dist/module/helper.js +10 -2
  18. package/dist/module/helper.js.map +1 -1
  19. package/dist/module/screens/RequestDetail.js +122 -32
  20. package/dist/module/screens/RequestDetail.js.map +1 -1
  21. package/dist/module/screens/RequestNotes.js +4 -4
  22. package/dist/module/screens/RequestNotes.js.map +1 -1
  23. package/dist/module/screens/ServiceRequest.js +4 -4
  24. package/dist/module/screens/ServiceRequest.js.map +1 -1
  25. package/package.json +2 -2
  26. package/src/apis/index.js +1 -1
  27. package/src/apis/{generalActions.js → maintenanceActions.js} +19 -38
  28. package/src/components/FilterPopupMenu.js +39 -7
  29. package/src/components/MaintenanceList.js +56 -16
  30. package/src/components/MaintenanceListItem.js +5 -5
  31. package/src/components/MaintenanceWidgetItem.js +1 -1
  32. package/src/components/StatusSelectorPopup.js +2 -1
  33. package/src/components/WidgetSmall.js +2 -2
  34. package/src/helper.js +11 -2
  35. package/src/screens/RequestDetail.js +118 -11
  36. package/src/screens/RequestNotes.js +4 -4
  37. package/src/screens/ServiceRequest.js +4 -4
  38. package/dist/module/apis/generalActions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Image","Text","TouchableOpacity","View","StyleSheet","_","Icon","connect","moment","getJobStatusProps","jobStatusOptions","Services","Helper","Colours","MaintenanceListItem","constructor","args","_defineProperty","navigation","navigate","job","props","renderCommentCount","commentCount","createElement","style","styles","commentCountContainer","commentCountText","renderDescription","isEmpty","description","jobDescriptionText","renderSeen","showSeen","status","name","seen","jobSeenContainer","type","iconStyle","jobSeenIcon","color","colourBrandingMain","jobSeenText","render","createdTime","createdUnix","createdTimeText","format","activityTimeText","expectedDate","statusText","statusColor","onPress","onPressJob","jobContainer","jobInnerContainer","jobTopSection","jobTopLeft","jobId","jobIdText","jobTitleText","title","room","jobLocationText","jobTypeSeenContainer","jobTypeContainer","backgroundColor","hexToRGBAstring","jobTypeText","jobTopRight","jobCommentImage","source","require","jobBottomSection","jobCreatedText","jobActivityContainer","jobStatusContainer","jobStatusIcon","jobStatusText","jobStatusLine","borderColor","jobStatusLineMask","jobStatusCircle","jobStatusDateText","create","marginVertical","paddingHorizontal","getShadowStyle","flexDirection","alignItems","paddingVertical","borderBottomWidth","borderBottomColor","LINEGREY","flex","fontFamily","fontSize","marginBottom","TEXT_DARK","TEXT_LIGHT","marginTop","height","width","borderRadius","justifyContent","textAlign","marginLeft","paddingTop","resizeMode","position","top","right","borderWidth","COLOUR_GREEN","borderStyle","left","zIndex","mapStateToProps","state","getMainBrandingColourFromState"],"sources":["MaintenanceListItem.js"],"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 renderCommentCount() {\n const { job } = this.props;\n if (!job.commentCount) {\n return null;\n }\n return (\n <View style={styles.commentCountContainer}>\n <Text style={styles.commentCountText}>{job.commentCount > 99 ? '99' : job.commentCount}</Text>\n </View>\n );\n }\n\n renderDescription() {\n const { job } = this.props;\n if (_.isEmpty(job.description)) {\n return null;\n }\n return <Text style={styles.jobDescriptionText}>{job.description}</Text>;\n }\n\n renderSeen() {\n const { job } = this.props;\n const showSeen = !job.status || job.status === jobStatusOptions[0].name;\n if (!showSeen || !job.seen) {\n return null;\n }\n return (\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 }\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\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 {job.jobId ? <Text style={[styles.jobIdText, { color: this.props.colourBrandingMain }]}>{`Job #${job.jobId}`}</Text> : null}\n <Text style={styles.jobTitleText}>{job.title}</Text>\n {job.room ? <Text style={styles.jobLocationText}>{job.room}</Text> : null}\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 {this.renderSeen()}\n </View>\n </View>\n <View style={styles.jobTopRight}>\n <Image style={styles.jobCommentImage} source={require('../images/speechbubble.png')} />\n {this.renderCommentCount()}\n </View>\n </View>\n <View style={styles.jobBottomSection}>\n {/* {this.renderDescription()} */}\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: 'flex-end',\n paddingHorizontal: 10,\n paddingVertical: 10,\n borderBottomWidth: 1,\n borderBottomColor: Colours.LINEGREY,\n },\n jobTopLeft: {\n flex: 1,\n },\n jobIdText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n marginBottom: 4,\n },\n jobTitleText: {\n fontFamily: 'sf-semibold',\n fontSize: 18,\n color: Colours.TEXT_DARK,\n marginBottom: 4,\n },\n jobLocationText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n color: Colours.TEXT_LIGHT,\n marginBottom: 4,\n },\n jobTypeSeenContainer: {\n marginTop: 4,\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","Image","Text","TouchableOpacity","View","StyleSheet","_","Icon","connect","moment","getJobStatusProps","jobStatusOptions","Services","Helper","Colours","MaintenanceListItem","constructor","args","_defineProperty","navigation","navigate","job","props","renderCommentCount","commentCount","createElement","style","styles","commentCountContainer","commentCountText","renderDescription","isEmpty","description","jobDescriptionText","renderSeen","showSeen","status","name","seen","jobSeenContainer","type","iconStyle","jobSeenIcon","color","colourBrandingMain","jobSeenText","render","createdTime","createdUnix","createdTimeText","format","assigneeText","Assignee","displayName","statusText","statusColor","onPress","onPressJob","jobContainer","jobInnerContainer","jobTopSection","jobTopLeft","jobId","jobIdText","jobTitleText","title","room","jobLocationText","jobTypeSeenContainer","jobTypeContainer","backgroundColor","hexToRGBAstring","jobTypeText","jobTopRight","jobCommentImage","source","require","jobBottomSection","jobCreatedText","jobActivityContainer","jobStatusContainer","jobStatusText","jobStatusLine","borderColor","jobStatusLineMask","jobStatusCircle","jobStatusDateText","create","marginVertical","paddingHorizontal","getShadowStyle","flexDirection","alignItems","paddingVertical","borderBottomWidth","borderBottomColor","LINEGREY","flex","fontFamily","fontSize","marginBottom","TEXT_DARK","TEXT_LIGHT","marginTop","height","width","borderRadius","justifyContent","textAlign","marginLeft","paddingTop","resizeMode","position","top","right","borderWidth","COLOUR_GREEN","jobStatusIcon","borderStyle","left","zIndex","mapStateToProps","state","getMainBrandingColourFromState"],"sources":["MaintenanceListItem.js"],"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 renderCommentCount() {\n const { job } = this.props;\n if (!job.commentCount) {\n return null;\n }\n return (\n <View style={styles.commentCountContainer}>\n <Text style={styles.commentCountText}>{job.commentCount > 99 ? '99' : job.commentCount}</Text>\n </View>\n );\n }\n\n renderDescription() {\n const { job } = this.props;\n if (_.isEmpty(job.description)) {\n return null;\n }\n return <Text style={styles.jobDescriptionText}>{job.description}</Text>;\n }\n\n renderSeen() {\n const { job } = this.props;\n const showSeen = !job.status || job.status === jobStatusOptions[0].name;\n if (!showSeen || !job.seen) {\n return null;\n }\n return (\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 }\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 assigneeText = job.Assignee ? `Assigned to\\n${job.Assignee.displayName}` : '';\n const { statusText, statusColor } = getJobStatusProps(job.status);\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 {job.jobId ? <Text style={[styles.jobIdText, { color: this.props.colourBrandingMain }]}>{`Job #${job.jobId}`}</Text> : null}\n <Text style={styles.jobTitleText}>{job.title}</Text>\n {job.room ? <Text style={styles.jobLocationText}>{job.room}</Text> : null}\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 {this.renderSeen()}\n </View>\n </View>\n <View style={styles.jobTopRight}>\n <Image style={styles.jobCommentImage} source={require('../images/speechbubble.png')} />\n {this.renderCommentCount()}\n </View>\n </View>\n <View style={styles.jobBottomSection}>\n {/* {this.renderDescription()} */}\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}>{assigneeText}</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: 'flex-end',\n paddingHorizontal: 10,\n paddingVertical: 10,\n borderBottomWidth: 1,\n borderBottomColor: Colours.LINEGREY,\n },\n jobTopLeft: {\n flex: 1,\n },\n jobIdText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n marginBottom: 4,\n },\n jobTitleText: {\n fontFamily: 'sf-semibold',\n fontSize: 18,\n color: Colours.TEXT_DARK,\n marginBottom: 4,\n },\n jobLocationText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n color: Colours.TEXT_LIGHT,\n marginBottom: 4,\n },\n jobTypeSeenContainer: {\n marginTop: 4,\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: 'center',\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-medium',\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"],"mappings":"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","ignoreList":[]}
@@ -67,11 +67,7 @@ class MaintenanceWidgetItem extends Component {
67
67
  style: [styles.jobStatusContainer, {
68
68
  backgroundColor: statusColor
69
69
  }]
70
- }, /*#__PURE__*/React.createElement(Icon, {
71
- name: "wrench",
72
- type: "font-awesome",
73
- iconStyle: styles.jobStatusIcon
74
- }), /*#__PURE__*/React.createElement(Text, {
70
+ }, /*#__PURE__*/React.createElement(Text, {
75
71
  style: styles.jobStatusText
76
72
  }, statusText))))));
77
73
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Text","View","StyleSheet","TouchableOpacity","connect","Icon","moment","_","getJobStatusProps","jobStatusOptions","Services","Colours","Helper","MaintenanceWidgetItem","constructor","args","_defineProperty","navigation","navigate","job","props","render","createdTime","createdUnix","createdTimeText","format","statusText","statusColor","status","seenText","name","seen","createElement","key","id","onPress","onPressJob","style","styles","jobContainer","jobInnerContainer","jobTopSection","numberOfLines","jobTitleText","title","jobCreatedTimeText","jobSeenContainer","isEmpty","type","iconStyle","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"],"sources":["MaintenanceWidgetItem.js"],"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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","Text","View","StyleSheet","TouchableOpacity","connect","Icon","moment","_","getJobStatusProps","jobStatusOptions","Services","Colours","Helper","MaintenanceWidgetItem","constructor","args","_defineProperty","navigation","navigate","job","props","render","createdTime","createdUnix","createdTimeText","format","statusText","statusColor","status","seenText","name","seen","createElement","key","id","onPress","onPressJob","style","styles","jobContainer","jobInnerContainer","jobTopSection","numberOfLines","jobTitleText","title","jobCreatedTimeText","jobSeenContainer","isEmpty","type","iconStyle","jobSeenIcon","color","colourBrandingMain","jobSeenText","jobBottomSection","jobStatusContainer","backgroundColor","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","jobStatusIcon","textAlign","mapStateToProps","state","getMainBrandingColourFromState"],"sources":["MaintenanceWidgetItem.js"],"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"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,7 @@ class StatusSelectorPopup extends PureComponent {
16
16
  let statuses = filter ? filter.map(status => {
17
17
  return {
18
18
  name: status,
19
+ label: getJobStatusLabel(status),
19
20
  color: getJobStatusColour(status)
20
21
  };
21
22
  }) : jobStatusOptions;
@@ -42,7 +43,7 @@ class StatusSelectorPopup extends PureComponent {
42
43
  }]
43
44
  }, /*#__PURE__*/React.createElement(Text, {
44
45
  style: styles.jobStatusText
45
- }, status.name)));
46
+ }, status.label)));
46
47
  })));
47
48
  }
48
49
  }
@@ -1 +1 @@
1
- {"version":3,"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","createElement","MiddlePopup","style","styles","statusPopup","height","length","statusPopupTitle","statusPopupOptionsContainer","key","onPress","jobStatusContainer","backgroundColor","jobStatusText","create","width","padding","borderRadius","fontFamily","TEXT_DARK","fontSize","marginBottom","flex","justifyContent","flexDirection","alignItems","paddingHorizontal","textAlign","mapStateToProps","state","getMainBrandingColourFromState"],"sources":["StatusSelectorPopup.js"],"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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"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","label","getJobStatusLabel","color","colourBrandingMain","createElement","MiddlePopup","style","styles","statusPopup","height","length","statusPopupTitle","statusPopupOptionsContainer","key","onPress","jobStatusContainer","backgroundColor","jobStatusText","create","width","padding","borderRadius","fontFamily","TEXT_DARK","fontSize","marginBottom","flex","justifyContent","flexDirection","alignItems","paddingHorizontal","textAlign","mapStateToProps","state","getMainBrandingColourFromState"],"sources":["StatusSelectorPopup.js"],"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 label: getJobStatusLabel(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.label}</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"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import React, { Component } from 'react';
5
5
  import { Text, View, ScrollView, StyleSheet } from 'react-native';
6
6
  import { connect } from 'react-redux';
7
7
  import _ from 'lodash';
8
- import { generalActions } from '../apis';
8
+ import { maintenanceActions } from '../apis';
9
9
  import { jobsLoaded } from '../actions';
10
10
  import MaintenanceWidgetItem from './MaintenanceWidgetItem';
11
11
  import { Services } from '../feature.config';
@@ -32,7 +32,7 @@ class WidgetSmall extends Component {
32
32
  _defineProperty(this, "refresh", () => {
33
33
  this.onLoadingChanged(true, async () => {
34
34
  try {
35
- const res = await generalActions.getJobsRecursive(this.props.site);
35
+ const res = await maintenanceActions.getJobsRecursive(this.props.site);
36
36
  // console.log('WidgetSmall - refresh', res.data);
37
37
  this.props.jobsLoaded(res);
38
38
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Text","View","ScrollView","StyleSheet","connect","_","generalActions","jobsLoaded","MaintenanceWidgetItem","Services","Colours","Components","Config","MAX_ITEMS","WidgetSmall","constructor","props","_defineProperty","options","isEmpty","Title","env","strings","MAINTENANCE","userCategory","EmptyText","EMPTY_REQUESTS_STAFF","EMPTY_REQUESTS_USER","onLoadingChanged","res","getJobsRecursive","site","error","console","log","loading","callback","setState","state","navigation","navigate","componentDidMount","refresh","componentDidUpdate","prevProps","dataUpdated","renderContent","jobs","createElement","style","styles","loadingPadding","LoadingStateWidget","height","EmptyStateWidget","title","getEmptyStateText","horizontal","contentContainerStyle","paddingLeft","paddingRight","showsHorizontalScrollIndicator","slice","map","job","key","id","render","colourBrandingMain","sectionContainer","sectionPadding","sectionHeading","sectionTitle","getTitle","InlineButton","onPress","onPressAll","color","touchableStyle","paddingTop","textStyle","create","backgroundColor","paddingHorizontal","paddingBottom","marginBottom","flexDirection","alignContent","justifyContent","fontFamily","fontSize","TEXT_DARKEST","mapStateToProps","user","notifications","getMainBrandingColourFromState","orderBy","category","forwardRef"],"sources":["WidgetSmall.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Text, View, ScrollView, StyleSheet } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { generalActions } from '../apis';\nimport { jobsLoaded } from '../actions';\nimport MaintenanceWidgetItem from './MaintenanceWidgetItem';\nimport { Services } from '../feature.config';\nimport { Colours, Components, Config } from '../core.config';\n\nconst MAX_ITEMS = 10;\n\nclass WidgetSmall extends Component {\n constructor(props) {\n super(props);\n this.state = { loading: false };\n }\n\n componentDidMount() {\n this.refresh();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();\n }\n\n getTitle = () => {\n const { options } = this.props;\n if (options && !_.isEmpty(options.Title)) return options.Title;\n return Config.env.strings.MAINTENANCE;\n };\n\n getEmptyStateText = () => {\n const { options, userCategory } = this.props;\n if (options && !_.isEmpty(options.EmptyText)) return options.EmptyText;\n return userCategory === 'staff' ? Config.env.strings.EMPTY_REQUESTS_STAFF : Config.env.strings.EMPTY_REQUESTS_USER;\n };\n\n refresh = () => {\n this.onLoadingChanged(true, async () => {\n try {\n const res = await generalActions.getJobsRecursive(this.props.site);\n // console.log('WidgetSmall - refresh', res.data);\n this.props.jobsLoaded(res);\n } catch (error) {\n console.log('refresh error', error);\n } finally {\n this.onLoadingChanged(false);\n }\n });\n };\n\n onLoadingChanged = (loading, callback) => {\n this.setState({ loading }, () => {\n if (this.props.onLoadingChanged) this.props.onLoadingChanged(this.state.loading);\n if (callback) callback();\n });\n };\n\n onPressAll = () => {\n Services.navigation.navigate('maintenance', { options: this.props.options });\n };\n\n renderContent() {\n const { jobs } = this.props;\n if (_.isEmpty(jobs)) {\n if (this.state.loading) {\n return (\n <View style={styles.loadingPadding}>\n <Components.LoadingStateWidget height={180} />\n </View>\n );\n }\n return (\n <View style={styles.loadingPadding}>\n <Components.EmptyStateWidget title={this.getEmptyStateText()} height={180} />\n </View>\n );\n }\n return (\n <ScrollView horizontal contentContainerStyle={{ paddingLeft: 6, paddingRight: 8 }} showsHorizontalScrollIndicator={false}>\n {jobs.slice(0, MAX_ITEMS).map(job => {\n return <MaintenanceWidgetItem key={job.id} job={job} />;\n })}\n </ScrollView>\n );\n }\n\n render() {\n const { colourBrandingMain } = this.props;\n\n return (\n <View style={styles.sectionContainer}>\n <View style={styles.sectionPadding}>\n <View style={styles.sectionHeading}>\n <Text style={styles.sectionTitle}>{this.getTitle()}</Text>\n <Components.InlineButton\n onPress={this.onPressAll}\n color={colourBrandingMain}\n touchableStyle={{ paddingTop: 6 }}\n textStyle={{ color: '#fff' }}\n >\n View All\n </Components.InlineButton>\n </View>\n </View>\n {this.renderContent()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n sectionContainer: {\n backgroundColor: '#fff',\n paddingTop: 16,\n },\n sectionPadding: {\n paddingHorizontal: 16,\n paddingBottom: 6,\n },\n loadingPadding: {\n paddingHorizontal: 16,\n },\n sectionHeading: {\n marginBottom: 4,\n flexDirection: 'row',\n alignContent: 'flex-start',\n justifyContent: 'space-between',\n },\n sectionTitle: {\n fontFamily: 'sf-bold',\n fontSize: 24,\n color: Colours.TEXT_DARKEST,\n },\n});\n\nconst mapStateToProps = state => {\n const { user, jobs, notifications } = state;\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n jobs: _.orderBy(jobs.jobs, ['createdUnix'], ['desc']),\n site: user.site,\n userCategory: user.category,\n dataUpdated: notifications.dataUpdated.jobs,\n };\n};\n\nexport default connect(mapStateToProps, { jobsLoaded }, null, { forwardRef: true })(WidgetSmall);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","Text","View","ScrollView","StyleSheet","connect","_","maintenanceActions","jobsLoaded","MaintenanceWidgetItem","Services","Colours","Components","Config","MAX_ITEMS","WidgetSmall","constructor","props","_defineProperty","options","isEmpty","Title","env","strings","MAINTENANCE","userCategory","EmptyText","EMPTY_REQUESTS_STAFF","EMPTY_REQUESTS_USER","onLoadingChanged","res","getJobsRecursive","site","error","console","log","loading","callback","setState","state","navigation","navigate","componentDidMount","refresh","componentDidUpdate","prevProps","dataUpdated","renderContent","jobs","createElement","style","styles","loadingPadding","LoadingStateWidget","height","EmptyStateWidget","title","getEmptyStateText","horizontal","contentContainerStyle","paddingLeft","paddingRight","showsHorizontalScrollIndicator","slice","map","job","key","id","render","colourBrandingMain","sectionContainer","sectionPadding","sectionHeading","sectionTitle","getTitle","InlineButton","onPress","onPressAll","color","touchableStyle","paddingTop","textStyle","create","backgroundColor","paddingHorizontal","paddingBottom","marginBottom","flexDirection","alignContent","justifyContent","fontFamily","fontSize","TEXT_DARKEST","mapStateToProps","user","notifications","getMainBrandingColourFromState","orderBy","category","forwardRef"],"sources":["WidgetSmall.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Text, View, ScrollView, StyleSheet } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { maintenanceActions } from '../apis';\nimport { jobsLoaded } from '../actions';\nimport MaintenanceWidgetItem from './MaintenanceWidgetItem';\nimport { Services } from '../feature.config';\nimport { Colours, Components, Config } from '../core.config';\n\nconst MAX_ITEMS = 10;\n\nclass WidgetSmall extends Component {\n constructor(props) {\n super(props);\n this.state = { loading: false };\n }\n\n componentDidMount() {\n this.refresh();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();\n }\n\n getTitle = () => {\n const { options } = this.props;\n if (options && !_.isEmpty(options.Title)) return options.Title;\n return Config.env.strings.MAINTENANCE;\n };\n\n getEmptyStateText = () => {\n const { options, userCategory } = this.props;\n if (options && !_.isEmpty(options.EmptyText)) return options.EmptyText;\n return userCategory === 'staff' ? Config.env.strings.EMPTY_REQUESTS_STAFF : Config.env.strings.EMPTY_REQUESTS_USER;\n };\n\n refresh = () => {\n this.onLoadingChanged(true, async () => {\n try {\n const res = await maintenanceActions.getJobsRecursive(this.props.site);\n // console.log('WidgetSmall - refresh', res.data);\n this.props.jobsLoaded(res);\n } catch (error) {\n console.log('refresh error', error);\n } finally {\n this.onLoadingChanged(false);\n }\n });\n };\n\n onLoadingChanged = (loading, callback) => {\n this.setState({ loading }, () => {\n if (this.props.onLoadingChanged) this.props.onLoadingChanged(this.state.loading);\n if (callback) callback();\n });\n };\n\n onPressAll = () => {\n Services.navigation.navigate('maintenance', { options: this.props.options });\n };\n\n renderContent() {\n const { jobs } = this.props;\n if (_.isEmpty(jobs)) {\n if (this.state.loading) {\n return (\n <View style={styles.loadingPadding}>\n <Components.LoadingStateWidget height={180} />\n </View>\n );\n }\n return (\n <View style={styles.loadingPadding}>\n <Components.EmptyStateWidget title={this.getEmptyStateText()} height={180} />\n </View>\n );\n }\n return (\n <ScrollView horizontal contentContainerStyle={{ paddingLeft: 6, paddingRight: 8 }} showsHorizontalScrollIndicator={false}>\n {jobs.slice(0, MAX_ITEMS).map(job => {\n return <MaintenanceWidgetItem key={job.id} job={job} />;\n })}\n </ScrollView>\n );\n }\n\n render() {\n const { colourBrandingMain } = this.props;\n\n return (\n <View style={styles.sectionContainer}>\n <View style={styles.sectionPadding}>\n <View style={styles.sectionHeading}>\n <Text style={styles.sectionTitle}>{this.getTitle()}</Text>\n <Components.InlineButton\n onPress={this.onPressAll}\n color={colourBrandingMain}\n touchableStyle={{ paddingTop: 6 }}\n textStyle={{ color: '#fff' }}\n >\n View All\n </Components.InlineButton>\n </View>\n </View>\n {this.renderContent()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n sectionContainer: {\n backgroundColor: '#fff',\n paddingTop: 16,\n },\n sectionPadding: {\n paddingHorizontal: 16,\n paddingBottom: 6,\n },\n loadingPadding: {\n paddingHorizontal: 16,\n },\n sectionHeading: {\n marginBottom: 4,\n flexDirection: 'row',\n alignContent: 'flex-start',\n justifyContent: 'space-between',\n },\n sectionTitle: {\n fontFamily: 'sf-bold',\n fontSize: 24,\n color: Colours.TEXT_DARKEST,\n },\n});\n\nconst mapStateToProps = state => {\n const { user, jobs, notifications } = state;\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n jobs: _.orderBy(jobs.jobs, ['createdUnix'], ['desc']),\n site: user.site,\n userCategory: user.category,\n dataUpdated: notifications.dataUpdated.jobs,\n };\n};\n\nexport default connect(mapStateToProps, { jobsLoaded }, null, { forwardRef: true })(WidgetSmall);\n"],"mappings":"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","ignoreList":[]}
@@ -1,25 +1,33 @@
1
+ import { label } from 'aws-amplify';
1
2
  import { Colours } from './core.config';
2
3
  const jobStatusOptions = [{
3
4
  name: 'Unassigned',
5
+ label: 'Open',
4
6
  color: Colours.LINEGREY
5
7
  }, {
6
8
  name: 'In Progress',
9
+ label: 'In Progress',
7
10
  color: Colours.COLOUR_TEAL
8
11
  }, {
9
12
  name: 'Completed',
13
+ label: 'Completed',
10
14
  color: Colours.COLOUR_GREEN_LIGHT
11
15
  }];
12
16
  const getJobStatusColour = status => {
13
17
  const option = jobStatusOptions.find(item => item.name === status);
14
18
  return option ? option.color : jobStatusOptions[0].color;
15
19
  };
20
+ const getJobStatusLabel = status => {
21
+ const option = jobStatusOptions.find(item => item.name === status);
22
+ return option ? option.label : jobStatusOptions[0].label;
23
+ };
16
24
  const getJobStatusProps = status => {
17
- const statusText = status || jobStatusOptions[0].name;
25
+ const statusText = getJobStatusLabel(status) || jobStatusOptions[0].label;
18
26
  const statusColor = getJobStatusColour(statusText);
19
27
  return {
20
28
  statusText,
21
29
  statusColor
22
30
  };
23
31
  };
24
- export { jobStatusOptions, getJobStatusColour, getJobStatusProps };
32
+ export { jobStatusOptions, getJobStatusColour, getJobStatusProps, getJobStatusLabel };
25
33
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Colours","jobStatusOptions","name","color","LINEGREY","COLOUR_TEAL","COLOUR_GREEN_LIGHT","getJobStatusColour","status","option","find","item","getJobStatusProps","statusText","statusColor"],"sources":["helper.js"],"sourcesContent":["import { Colours } from './core.config';\n\nconst jobStatusOptions = [\n {\n name: 'Unassigned',\n color: Colours.LINEGREY,\n },\n {\n name: 'In Progress',\n color: Colours.COLOUR_TEAL,\n },\n {\n name: 'Completed',\n color: Colours.COLOUR_GREEN_LIGHT,\n },\n];\n\nconst getJobStatusColour = status => {\n const option = jobStatusOptions.find(item => item.name === status);\n return option ? option.color : jobStatusOptions[0].color;\n};\n\nconst getJobStatusProps = status => {\n const statusText = status || jobStatusOptions[0].name;\n const statusColor = getJobStatusColour(statusText);\n\n return { statusText, statusColor };\n};\n\nexport { jobStatusOptions, getJobStatusColour, getJobStatusProps };\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,eAAe;AAEvC,MAAMC,gBAAgB,GAAG,CACvB;EACEC,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAEH,OAAO,CAACI;AACjB,CAAC,EACD;EACEF,IAAI,EAAE,aAAa;EACnBC,KAAK,EAAEH,OAAO,CAACK;AACjB,CAAC,EACD;EACEH,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAEH,OAAO,CAACM;AACjB,CAAC,CACF;AAED,MAAMC,kBAAkB,GAAGC,MAAM,IAAI;EACnC,MAAMC,MAAM,GAAGR,gBAAgB,CAACS,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACT,IAAI,KAAKM,MAAM,CAAC;EAClE,OAAOC,MAAM,GAAGA,MAAM,CAACN,KAAK,GAAGF,gBAAgB,CAAC,CAAC,CAAC,CAACE,KAAK;AAC1D,CAAC;AAED,MAAMS,iBAAiB,GAAGJ,MAAM,IAAI;EAClC,MAAMK,UAAU,GAAGL,MAAM,IAAIP,gBAAgB,CAAC,CAAC,CAAC,CAACC,IAAI;EACrD,MAAMY,WAAW,GAAGP,kBAAkB,CAACM,UAAU,CAAC;EAElD,OAAO;IAAEA,UAAU;IAAEC;EAAY,CAAC;AACpC,CAAC;AAED,SAASb,gBAAgB,EAAEM,kBAAkB,EAAEK,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["label","Colours","jobStatusOptions","name","color","LINEGREY","COLOUR_TEAL","COLOUR_GREEN_LIGHT","getJobStatusColour","status","option","find","item","getJobStatusLabel","getJobStatusProps","statusText","statusColor"],"sources":["helper.js"],"sourcesContent":["import { label } from 'aws-amplify';\nimport { Colours } from './core.config';\n\nconst jobStatusOptions = [\n {\n name: 'Unassigned',\n label: 'Open',\n color: Colours.LINEGREY,\n },\n {\n name: 'In Progress',\n label: 'In Progress',\n color: Colours.COLOUR_TEAL,\n },\n {\n name: 'Completed',\n label: 'Completed',\n color: Colours.COLOUR_GREEN_LIGHT,\n },\n];\n\nconst getJobStatusColour = status => {\n const option = jobStatusOptions.find(item => item.name === status);\n return option ? option.color : jobStatusOptions[0].color;\n};\n\nconst getJobStatusLabel = status => {\n const option = jobStatusOptions.find(item => item.name === status);\n return option ? option.label : jobStatusOptions[0].label;\n};\n\nconst getJobStatusProps = status => {\n const statusText = getJobStatusLabel(status) || jobStatusOptions[0].label;\n const statusColor = getJobStatusColour(statusText);\n\n return { statusText, statusColor };\n};\n\nexport { jobStatusOptions, getJobStatusColour, getJobStatusProps, getJobStatusLabel };\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,OAAO,QAAQ,eAAe;AAEvC,MAAMC,gBAAgB,GAAG,CACvB;EACEC,IAAI,EAAE,YAAY;EAClBH,KAAK,EAAE,MAAM;EACbI,KAAK,EAAEH,OAAO,CAACI;AACjB,CAAC,EACD;EACEF,IAAI,EAAE,aAAa;EACnBH,KAAK,EAAE,aAAa;EACpBI,KAAK,EAAEH,OAAO,CAACK;AACjB,CAAC,EACD;EACEH,IAAI,EAAE,WAAW;EACjBH,KAAK,EAAE,WAAW;EAClBI,KAAK,EAAEH,OAAO,CAACM;AACjB,CAAC,CACF;AAED,MAAMC,kBAAkB,GAAGC,MAAM,IAAI;EACnC,MAAMC,MAAM,GAAGR,gBAAgB,CAACS,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACT,IAAI,KAAKM,MAAM,CAAC;EAClE,OAAOC,MAAM,GAAGA,MAAM,CAACN,KAAK,GAAGF,gBAAgB,CAAC,CAAC,CAAC,CAACE,KAAK;AAC1D,CAAC;AAED,MAAMS,iBAAiB,GAAGJ,MAAM,IAAI;EAClC,MAAMC,MAAM,GAAGR,gBAAgB,CAACS,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACT,IAAI,KAAKM,MAAM,CAAC;EAClE,OAAOC,MAAM,GAAGA,MAAM,CAACV,KAAK,GAAGE,gBAAgB,CAAC,CAAC,CAAC,CAACF,KAAK;AAC1D,CAAC;AAED,MAAMc,iBAAiB,GAAGL,MAAM,IAAI;EAClC,MAAMM,UAAU,GAAGF,iBAAiB,CAACJ,MAAM,CAAC,IAAIP,gBAAgB,CAAC,CAAC,CAAC,CAACF,KAAK;EACzE,MAAMgB,WAAW,GAAGR,kBAAkB,CAACO,UAAU,CAAC;EAElD,OAAO;IAAEA,UAAU;IAAEC;EAAY,CAAC;AACpC,CAAC;AAED,SAASd,gBAAgB,EAAEM,kBAAkB,EAAEM,iBAAiB,EAAED,iBAAiB","ignoreList":[]}
@@ -2,13 +2,13 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
3
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
4
  import React, { Component } from 'react';
5
- import { ScrollView, View, StyleSheet, Text, KeyboardAvoidingView, TouchableOpacity, ImageBackground } from 'react-native';
5
+ import { ScrollView, View, StyleSheet, Text, KeyboardAvoidingView, TouchableOpacity, ImageBackground, Platform } from 'react-native';
6
6
  import DateTimePicker from 'react-native-modal-datetime-picker';
7
7
  import { Icon } from 'react-native-elements';
8
8
  import _ from 'lodash';
9
9
  import moment from 'moment';
10
10
  import { connect } from 'react-redux';
11
- import { generalActions } from '../apis';
11
+ import { maintenanceActions } from '../apis';
12
12
  import { jobAdded } from '../actions';
13
13
  import StatusSelectorPopup from '../components/StatusSelectorPopup';
14
14
  import { jobStatusOptions, getJobStatusProps } from '../helper';
@@ -17,6 +17,42 @@ import { Colours, Helper, Components, Config } from '../core.config';
17
17
  class RequestDetail extends Component {
18
18
  constructor(props) {
19
19
  super(props);
20
+ _defineProperty(this, "getJob", async () => {
21
+ console.log('getting job');
22
+ this.setState({
23
+ loading: true
24
+ }, async () => {
25
+ try {
26
+ const res = await maintenanceActions.getJob(this.props.job.site, this.props.job.id);
27
+ this.props.jobAdded(res.data);
28
+ console.log('got the job');
29
+ } catch (error) {
30
+ console.log('getJob error', error.toString());
31
+ // check for 403 or 404 error
32
+ if (error.response.status === 403 || error.response.status === 404) {
33
+ this.setState({
34
+ forbidden: true
35
+ });
36
+ }
37
+ console.log('getJob error', error);
38
+ } finally {
39
+ this.setState({
40
+ loading: false
41
+ });
42
+ }
43
+ });
44
+ });
45
+ _defineProperty(this, "getAssignees", async () => {
46
+ if (!this.hasPermission()) return;
47
+ try {
48
+ const res = await maintenanceActions.getAssignees(this.props.user.site);
49
+ this.setState({
50
+ assignees: res.data.Users
51
+ });
52
+ } catch (error) {
53
+ console.log('getAssignees error', error);
54
+ }
55
+ });
20
56
  _defineProperty(this, "markSeen", () => {
21
57
  const {
22
58
  user
@@ -38,7 +74,7 @@ class RequestDetail extends Component {
38
74
  seen: true,
39
75
  status: job.status || 'Unassigned'
40
76
  };
41
- const res = await generalActions.editJob(updated, user.site);
77
+ const res = await maintenanceActions.editJob(updated, user.site);
42
78
  // console.log('markSeen updated');
43
79
  this.props.jobAdded(res.data.job);
44
80
  this.setState({
@@ -70,7 +106,7 @@ class RequestDetail extends Component {
70
106
  if (this.state.expectedDate) {
71
107
  updated.expectedDate = moment(this.state.expectedDate).utc().toISOString();
72
108
  }
73
- const res = await generalActions.editJob(updated, user.site);
109
+ const res = await maintenanceActions.editJob(updated, user.site);
74
110
  this.props.jobAdded(res.data.job);
75
111
  } catch (error) {
76
112
  console.log('updateJob error', error);
@@ -86,7 +122,7 @@ class RequestDetail extends Component {
86
122
  loading: true
87
123
  }, async () => {
88
124
  try {
89
- const res = await generalActions.editJobStatus(this.props.job.id, this.state.status);
125
+ const res = await maintenanceActions.editJobStatus(this.props.job.id, this.state.status);
90
126
  this.props.jobAdded(res.data.job);
91
127
  } catch (error) {
92
128
  console.log('updateJobStatus error', error);
@@ -168,7 +204,7 @@ class RequestDetail extends Component {
168
204
  loading: true
169
205
  }, async () => {
170
206
  try {
171
- const job = await generalActions.getJob(this.props.user.site, this.props.job.id);
207
+ const job = await maintenanceActions.getJob(this.props.user.site, this.props.job.id);
172
208
  // console.log('onCommentAdded', job?.data);
173
209
  this.props.jobAdded(job.data);
174
210
  } catch (error) {
@@ -181,10 +217,19 @@ class RequestDetail extends Component {
181
217
  });
182
218
  });
183
219
  _defineProperty(this, "hasPermission", () => {
220
+ const {
221
+ job
222
+ } = this.state;
184
223
  const {
185
224
  permissions
186
225
  } = this.props.user;
187
- return _.includes(permissions, 'maintenanceTracking');
226
+ if (_.includes(permissions, 'maintenanceTracking')) {
227
+ return true;
228
+ }
229
+ if (_.includes(permissions, 'maintenanceAssignment')) {
230
+ return job.AssigneeId === this.props.user.Id;
231
+ }
232
+ return false;
188
233
  });
189
234
  _defineProperty(this, "toggleFullscreenVideo", url => {
190
235
  if (typeof url !== 'string') url = '';
@@ -193,6 +238,37 @@ class RequestDetail extends Component {
193
238
  currentVideoUrl: url
194
239
  });
195
240
  });
241
+ _defineProperty(this, "onOpenAssigneePicker", () => {
242
+ const options = this.state.assignees.map(a => {
243
+ return {
244
+ key: a.id,
245
+ name: a.displayName
246
+ };
247
+ });
248
+ Services.navigation.navigate('optionSelector', {
249
+ options,
250
+ selection: this.state.job.AssigneeId,
251
+ title: 'Assign request',
252
+ onSelect: this.onSelectAssignee
253
+ });
254
+ });
255
+ _defineProperty(this, "onSelectAssignee", assignee => {
256
+ this.setState({
257
+ loading: true
258
+ }, async () => {
259
+ try {
260
+ console.log('onSelectAssignee', this.props.job.id, assignee.key);
261
+ const res = await maintenanceActions.assignJob(this.props.job.id, assignee.key);
262
+ this.props.jobAdded(res.data.job);
263
+ } catch (error) {
264
+ console.log('onSelectAssignee error', error);
265
+ } finally {
266
+ this.setState({
267
+ loading: false
268
+ });
269
+ }
270
+ });
271
+ });
196
272
  this.state = {
197
273
  job: {},
198
274
  isDateTimePickerVisible: false,
@@ -201,20 +277,23 @@ class RequestDetail extends Component {
201
277
  expectedDate: null,
202
278
  expectedDateText: '',
203
279
  seen: false,
204
- showMore: false,
280
+ showMore: true,
205
281
  showStatusPopup: false,
206
282
  loading: false,
207
283
  showFullscreenVideo: false,
208
284
  currentVideoUrl: '',
209
285
  galleryOpen: false,
210
- showMessages: false
286
+ showMessages: false,
287
+ assignees: []
211
288
  };
212
289
  this.scrollView = /*#__PURE__*/React.createRef();
213
290
  this.commentReply = /*#__PURE__*/React.createRef();
214
291
  this.commentSection = /*#__PURE__*/React.createRef();
215
292
  }
216
293
  componentDidMount() {
294
+ this.getJob();
217
295
  this.updateJobState();
296
+ this.getAssignees();
218
297
  }
219
298
  componentDidUpdate(prevProps) {
220
299
  if (prevProps.jobs !== this.props.jobs) {
@@ -301,23 +380,7 @@ class RequestDetail extends Component {
301
380
  style: styles.textSectionTextContainer
302
381
  }, /*#__PURE__*/React.createElement(Text, {
303
382
  style: styles.textSectionText
304
- }, moment(job.lastActivityUnix).format('ddd D MMMM, h:mm A')))), /*#__PURE__*/React.createElement(View, {
305
- style: styles.textSectionInner
306
- }, /*#__PURE__*/React.createElement(Text, {
307
- style: styles.textSectionLabel
308
- }, "Expected Date"), /*#__PURE__*/React.createElement(TouchableOpacity, {
309
- onPress: this.onOpenDatePicker
310
- }, /*#__PURE__*/React.createElement(View, {
311
- style: styles.textSectionTextContainer
312
- }, /*#__PURE__*/React.createElement(Text, {
313
- style: styles.textSectionText
314
- }, this.state.expectedDateText || 'Select Date'), /*#__PURE__*/React.createElement(Icon, {
315
- name: "angle-right",
316
- type: "font-awesome",
317
- iconStyle: [styles.textSectionAngleRight, {
318
- color: this.props.colourBrandingMain
319
- }]
320
- }))))), /*#__PURE__*/React.createElement(View, {
383
+ }, moment(job.lastActivityUnix).format('ddd D MMMM, h:mm A'))))), /*#__PURE__*/React.createElement(View, {
321
384
  style: styles.jobStatusExpectedContainer
322
385
  }, /*#__PURE__*/React.createElement(View, {
323
386
  style: styles.jobStatusOuterContainer
@@ -329,11 +392,7 @@ class RequestDetail extends Component {
329
392
  style: [styles.jobStatusContainer, {
330
393
  backgroundColor: statusColor
331
394
  }]
332
- }, /*#__PURE__*/React.createElement(Icon, {
333
- name: "wrench",
334
- type: "font-awesome",
335
- iconStyle: styles.jobStatusIcon
336
- }), /*#__PURE__*/React.createElement(Text, {
395
+ }, /*#__PURE__*/React.createElement(Text, {
337
396
  style: styles.jobStatusText
338
397
  }, statusText)))), this.hasPermission() && /*#__PURE__*/React.createElement(View, {
339
398
  style: styles.jobStatusOuterContainer
@@ -419,6 +478,34 @@ class RequestDetail extends Component {
419
478
  ref: "imagePopup"
420
479
  });
421
480
  }
481
+ renderAssignee() {
482
+ const {
483
+ job
484
+ } = this.state;
485
+ if (!this.hasPermission() && !job.Assignee) return null;
486
+ const content = /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, {
487
+ style: styles.locationLabel
488
+ }, "Assigned To"), /*#__PURE__*/React.createElement(View, null, job.Assignee && /*#__PURE__*/React.createElement(View, {
489
+ style: styles.profileContainer
490
+ }, /*#__PURE__*/React.createElement(Components.ProfilePic, {
491
+ ProfilePic: job.Assignee.profilePic,
492
+ Diameter: 40
493
+ }), /*#__PURE__*/React.createElement(View, {
494
+ style: styles.nameContainer
495
+ }, /*#__PURE__*/React.createElement(Text, {
496
+ style: styles.nameText
497
+ }, job.Assignee.displayName)))));
498
+ if (this.hasPermission()) {
499
+ return /*#__PURE__*/React.createElement(Components.FormCardSectionOptionLauncher, {
500
+ onPress: this.onOpenAssigneePicker,
501
+ title: "Assigned To",
502
+ value: job.Assignee ? job.Assignee.displayName : 'Unassigned',
503
+ textStyle: styles.detailsText,
504
+ sectionStyle: styles.detailsSection
505
+ }, content);
506
+ }
507
+ return content;
508
+ }
422
509
  rendeDetails() {
423
510
  const {
424
511
  job
@@ -516,6 +603,9 @@ class RequestDetail extends Component {
516
603
  });
517
604
  }
518
605
  render() {
606
+ if (this.state.forbidden) {
607
+ return /*#__PURE__*/React.createElement(Components.Forbidden, null);
608
+ }
519
609
  return /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
520
610
  behavior: Platform.OS === 'ios' && 'padding',
521
611
  style: styles.container
@@ -533,7 +623,7 @@ class RequestDetail extends Component {
533
623
  }
534
624
  }, /*#__PURE__*/React.createElement(View, {
535
625
  style: styles.innerContainer
536
- }, this.renderTop(), this.rendeDetails(), this.renderMessages())), this.renderMessagesReply(), this.renderStatusPopup(), this.renderImagePopup(), /*#__PURE__*/React.createElement(DateTimePicker, {
626
+ }, this.renderTop(), this.renderAssignee(), this.rendeDetails(), this.renderMessages())), this.renderMessagesReply(), this.renderStatusPopup(), this.renderImagePopup(), /*#__PURE__*/React.createElement(DateTimePicker, {
537
627
  isVisible: this.state.isDateTimePickerVisible,
538
628
  onConfirm: this.onDateSelected,
539
629
  onCancel: this.onCloseDatePicker,