@plusscommunities/pluss-maintenance-app 1.2.3 → 1.2.4

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.
@@ -230,6 +230,9 @@ class RequestDetail extends Component {
230
230
  galleryOpen: false,
231
231
  showMessages: false
232
232
  };
233
+ this.scrollView = /*#__PURE__*/React.createRef();
234
+ this.commentReply = /*#__PURE__*/React.createRef();
235
+ this.commentSection = /*#__PURE__*/React.createRef();
233
236
  }
234
237
 
235
238
  componentDidMount() {
@@ -489,15 +492,14 @@ class RequestDetail extends Component {
489
492
 
490
493
  renderMessages() {
491
494
  return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Components.CommentSection, {
492
- ref: ref => {
493
- this.commentSection = ref;
494
- },
495
+ ref: this.commentSection,
495
496
  commentReply: this.commentReply,
496
497
  scrollView: this.scrollView,
497
498
  adminPermission: "maintenanceTracking",
498
499
  entityType: "maintenancerequest",
499
500
  entityId: this.props.job.id,
500
501
  entityName: this.props.job.title,
502
+ site: this.state.job.site || this.state.job.location,
501
503
  live: true,
502
504
  refreshFrequency: 10000,
503
505
  placeHolder: '',
@@ -529,9 +531,7 @@ class RequestDetail extends Component {
529
531
  renderMessagesReply() {
530
532
  if (!this.state.showMessages) return null;
531
533
  return /*#__PURE__*/React.createElement(Components.CommentReply, {
532
- ref: ref => {
533
- this.commentReply = ref;
534
- },
534
+ ref: this.commentReply,
535
535
  commentSection: this.commentSection,
536
536
  scrollView: this.scrollView,
537
537
  entityType: "maintenancerequest",
@@ -560,9 +560,7 @@ class RequestDetail extends Component {
560
560
  onPressLeft: this.onPressBack,
561
561
  text: Config.env.strings.MAINTENANCE_REQUEST_DETAILS
562
562
  }), this.renderLoading(), /*#__PURE__*/React.createElement(ScrollView, {
563
- ref: ref => {
564
- this.scrollView = ref;
565
- },
563
+ ref: this.scrollView,
566
564
  contentContainerStyle: {
567
565
  paddingBottom: 26
568
566
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["RequestDetail.js"],"names":["React","Component","ScrollView","View","StyleSheet","Text","KeyboardAvoidingView","TouchableOpacity","ImageBackground","DateTimePicker","Icon","_","moment","connect","generalActions","jobAdded","StatusSelectorPopup","jobStatusOptions","getJobStatusProps","Services","Colours","Helper","Components","Config","RequestDetail","constructor","props","user","job","state","seen","hasPermission","Id","userID","setState","loading","updated","id","status","res","editJob","site","data","error","console","log","expectedDate","utc","toISOString","editJobStatus","navigation","goBack","showStatusPopup","updateJobStatus","navigate","popUpType","isDateTimePickerVisible","date","expectedDateText","format","updateJob","showMore","showMessages","count","getJob","permissions","includes","url","showFullscreenVideo","length","currentVideoUrl","galleryOpen","componentDidMount","updateJobState","componentDidUpdate","prevProps","jobs","find","j","newState","markSeen","openGallery","index","refs","imagePopup","scrollTo","closeGallery","renderLoading","renderTop","statusText","statusColor","canEdit","showSeen","name","getShadowStyle","styles","jobTitleContainer","jobTitleText","title","jobTypeSeenContainer","jobTypeContainer","backgroundColor","hexToRGBAstring","colourBrandingMain","jobTypeText","color","type","jobSeenContainer","jobSeenIcon","jobSeenText","lastActivityUnix","textSectionInner","textSectionLabel","textSectionTextContainer","textSectionText","onOpenDatePicker","textSectionAngleRight","jobStatusExpectedContainer","jobStatusOuterContainer","jobStatusHeading","onOpenStatusPicker","jobStatusContainer","jobStatusIcon","jobStatusText","openStaffNotes","Notes","renderPlayableImageUrl","containerStyle","thumbUrl","getThumb300","isVideo","flex","uri","imagePlayContainer","toggleFullscreenVideo","bind","imageControlIcon","imageUrl","get1400","imageContainer","plusImages","images","renderPlayableImage","renderImage","isNil","isEmpty","sideBySideImages","sideBySideImageContainer","singleImageContainer","image","renderImagePopup","rendeDetails","onToggleDetails","detailsText","detailsSection","description","jobDescriptionText","locationLabel","locationText","room","requesterLabel","profileContainer","userProfilePic","nameContainer","nameText","userName","phone","phoneText","renderMessages","ref","commentSection","commentReply","scrollView","paddingHorizontal","paddingTop","onCommentsLoaded","onCommentAdded","onLeaveMessage","marginTop","height","renderMessagesReply","location","renderStatusPopup","onCloseStatusPopup","onSelectStatus","render","Platform","OS","container","onPressBack","env","strings","MAINTENANCE_REQUEST_DETAILS","paddingBottom","innerContainer","onDateSelected","onCloseDatePicker","create","paddingVertical","fontFamily","fontSize","TEXT_DARKEST","marginBottom","flexDirection","alignItems","width","borderRadius","justifyContent","textAlign","marginLeft","jobStatusDateText","TEXT_LIGHT","borderTopWidth","borderTopColor","LINEGREY","letterSpacing","TEXT_DARK","marginRight","jobExpectedDateContainer","BOXGREY","paddingLeft","jobExpectedDate","overflow","position","top","left","right","bottom","textShadowColor","textShadowOffset","textShadowRadius","lineHeight","mapStateToProps","getMainBrandingColourFromState"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { ScrollView, View, StyleSheet, Text, KeyboardAvoidingView, TouchableOpacity, ImageBackground } from 'react-native';\nimport DateTimePicker from 'react-native-modal-datetime-picker';\nimport { Icon } from 'react-native-elements';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { connect } from 'react-redux';\nimport { generalActions } from '../apis';\nimport { jobAdded } from '../actions';\nimport StatusSelectorPopup from '../components/StatusSelectorPopup';\nimport { jobStatusOptions, getJobStatusProps } from '../helper';\nimport { Services } from '../feature.config';\nimport { Colours, Helper, Components, Config } from '../core.config';\n\nclass RequestDetail extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n job: {},\n isDateTimePickerVisible: false,\n popUpType: '',\n status: '',\n expectedDate: null,\n expectedDateText: '',\n seen: false,\n showMore: false,\n showStatusPopup: false,\n loading: false,\n showFullscreenVideo: false,\n currentVideoUrl: '',\n galleryOpen: false,\n showMessages: false,\n };\n }\n\n componentDidMount() {\n this.updateJobState();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.jobs !== this.props.jobs) {\n this.updateJobState();\n }\n }\n\n updateJobState() {\n const job = _.find(this.props.jobs, j => j.id === this.props.job.id) || this.props.job;\n const newState = { job, status: job.status };\n if (job.expectedDate) {\n newState.expectedDate = moment(job.expectedDate);\n newState.expectedDateText = newState.expectedDate.format('DD/MM/YYYY');\n }\n if (job.seen) newState.seen = job.seen;\n this.setState(newState, () => {\n this.markSeen();\n });\n }\n\n markSeen = () => {\n const { user } = this.props;\n const { job } = this.state;\n // Must have maintenance permission and not the requester\n // console.log('markSeen check', job.userID, user.Id);\n if (job.seen === true) return;\n if (!this.hasPermission()) return;\n if (user.Id === job.userID) return;\n\n this.setState({ loading: true }, async () => {\n try {\n const updated = { id: job.id, seen: true, status: job.status || 'Unassigned' };\n const res = await generalActions.editJob(updated, user.site);\n // console.log('markSeen updated');\n this.props.jobAdded(res.data.job);\n this.setState({ loading: false, seen: true });\n } catch (error) {\n console.log('markSeen error', error);\n this.setState({ loading: false });\n }\n });\n };\n\n updateJob = () => {\n this.setState({ loading: true }, async () => {\n const { user } = this.props;\n const { job } = this.state;\n try {\n const updated = { id: job.id };\n if (this.state.expectedDate) {\n updated.expectedDate = moment(this.state.expectedDate)\n .utc()\n .toISOString();\n }\n const res = await generalActions.editJob(updated, user.site);\n this.props.jobAdded(res.data.job);\n } catch (error) {\n console.log('updateJob error', error);\n } finally {\n this.setState({ loading: false });\n }\n });\n };\n\n updateJobStatus = () => {\n this.setState({ loading: true }, async () => {\n try {\n const res = await generalActions.editJobStatus(this.props.job.id, this.state.status);\n this.props.jobAdded(res.data.job);\n } catch (error) {\n console.log('updateJobStatus error', error);\n } finally {\n this.setState({ loading: false });\n }\n });\n };\n\n onPressBack = () => {\n Services.navigation.goBack();\n };\n\n onOpenStatusPicker = () => {\n this.setState({ showStatusPopup: true });\n };\n\n onCloseStatusPopup = () => {\n this.setState({ showStatusPopup: false });\n };\n\n onSelectStatus = status => {\n this.setState({ status, showStatusPopup: false }, () => {\n this.updateJobStatus();\n });\n };\n\n openStaffNotes = () => {\n Services.navigation.navigate('requestNotes', { job: this.state.job });\n };\n\n onOpenDatePicker = () => {\n this.setState({ popUpType: 'date', isDateTimePickerVisible: true });\n };\n\n onCloseDatePicker = () => {\n this.setState({ isDateTimePickerVisible: false });\n };\n\n onDateSelected = date => {\n if (this.state.popUpType === 'date') {\n date = moment(date);\n this.setState(\n {\n expectedDate: date,\n expectedDateText: date.format('DD/MM/YYYY'),\n isDateTimePickerVisible: false,\n },\n () => {\n this.updateJob();\n },\n );\n }\n };\n\n onToggleDetails = () => {\n this.setState({ showMore: !this.state.showMore });\n };\n\n onLeaveMessage = () => {\n this.setState({ showMessages: true });\n };\n\n onCommentsLoaded = count => {\n if (count > 0) {\n this.setState({ showMessages: true });\n }\n };\n\n onCommentAdded = () => {\n this.setState({ loading: true }, async () => {\n try {\n const job = await generalActions.getJob(this.props.user.site, this.props.job.id);\n // console.log('onCommentAdded', job?.data);\n this.props.jobAdded(job.data);\n } catch (error) {\n console.log('onCommentAdded error', error);\n } finally {\n this.setState({ loading: false });\n }\n });\n };\n\n hasPermission = () => {\n const { permissions } = this.props.user;\n return _.includes(permissions, 'maintenanceTracking');\n };\n\n toggleFullscreenVideo = url => {\n if (typeof url !== 'string') url = '';\n this.setState({ showFullscreenVideo: url.length > 0, currentVideoUrl: url });\n };\n\n openGallery(index) {\n this.setState({\n galleryOpen: true,\n });\n this.refs.imagePopup.scrollTo(index);\n }\n\n closeGallery() {\n this.setState({\n galleryOpen: false,\n });\n }\n\n renderLoading() {\n return <Components.LoadingIndicator visible={this.state.loading} />;\n }\n\n renderTop() {\n const { status, job } = this.state;\n const { statusText, statusColor } = getJobStatusProps(status);\n const canEdit = this.hasPermission();\n const showSeen = !status || status === jobStatusOptions[0].name;\n\n return (\n <View style={{ ...Helper.getShadowStyle() }}>\n <View style={styles.jobTitleContainer}>\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 && this.state.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\n {job.lastActivityUnix && (\n <View style={styles.textSectionInner}>\n <Text style={styles.textSectionLabel}>Last Updated On</Text>\n <View style={styles.textSectionTextContainer}>\n <Text style={styles.textSectionText}>{moment(job.lastActivityUnix).format('ddd D MMMM, h:mm A')}</Text>\n </View>\n </View>\n )}\n <View style={styles.textSectionInner}>\n <Text style={styles.textSectionLabel}>Expected Date</Text>\n <TouchableOpacity onPress={this.onOpenDatePicker}>\n <View style={styles.textSectionTextContainer}>\n <Text style={styles.textSectionText}>{this.state.expectedDateText || 'Select Date'}</Text>\n <Icon\n name=\"angle-right\"\n type=\"font-awesome\"\n iconStyle={[styles.textSectionAngleRight, { color: this.props.colourBrandingMain }]}\n />\n </View>\n </TouchableOpacity>\n </View>\n </View>\n <View style={styles.jobStatusExpectedContainer}>\n <View style={styles.jobStatusOuterContainer}>\n <Text style={styles.jobStatusHeading}>STATUS</Text>\n <TouchableOpacity onPress={canEdit ? this.onOpenStatusPicker : null}>\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 </TouchableOpacity>\n </View>\n {this.hasPermission() && (\n <View style={styles.jobStatusOuterContainer}>\n <Text style={styles.jobStatusHeading}>STAFF NOTES</Text>\n <TouchableOpacity onPress={this.openStaffNotes}>\n <View style={[styles.jobStatusContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"pencil-square-o\" type=\"font-awesome\" iconStyle={styles.jobStatusIcon} />\n <Text style={styles.jobStatusText}>Notes ({(job.Notes || []).length})</Text>\n </View>\n </TouchableOpacity>\n </View>\n )}\n </View>\n </View>\n );\n }\n\n renderPlayableImageUrl(url, index, containerStyle, showMore) {\n const thumbUrl = Helper.getThumb300(url);\n\n if (Helper.isVideo(url)) {\n return (\n <ImageBackground style={[{ flex: 1 }, containerStyle]} source={{ uri: thumbUrl }}>\n <View style={styles.imagePlayContainer}>\n <TouchableOpacity onPress={this.toggleFullscreenVideo.bind(this, url)}>\n <Icon name=\"play\" type=\"font-awesome\" iconStyle={styles.imageControlIcon} />\n </TouchableOpacity>\n </View>\n </ImageBackground>\n );\n }\n\n const imageUrl = Helper.get1400(url);\n return (\n <TouchableOpacity style={containerStyle} onPress={this.openGallery.bind(this, index || 0)}>\n <ImageBackground style={styles.imageContainer} source={{ uri: imageUrl }}>\n {showMore && <Text style={styles.plusImages}>+{this.state.job.images.length - 2}</Text>}\n </ImageBackground>\n </TouchableOpacity>\n );\n }\n\n renderPlayableImage(index, containerStyle, showMore) {\n const url = this.state.job.images[index];\n return this.renderPlayableImageUrl(url, index, containerStyle, showMore);\n }\n\n renderImage() {\n const { job } = this.state;\n if (!_.isNil(job.images) && !_.isEmpty(job.images)) {\n if (job.images.length >= 2) {\n return (\n <View style={styles.sideBySideImages}>\n {this.renderPlayableImage(0, styles.sideBySideImageContainer)}\n {this.renderPlayableImage(1, styles.sideBySideImageContainer, job.images.length > 2)}\n </View>\n );\n } else {\n return <View style={styles.singleImageContainer}>{this.renderPlayableImage(0)}</View>;\n }\n } else if (!_.isNil(job.image)) {\n return <View style={styles.singleImageContainer}>{this.renderPlayableImageUrl(job.image)}</View>;\n }\n return null;\n }\n\n renderImagePopup() {\n return (\n <Components.ImagePopup\n visible={this.state.galleryOpen}\n images={this.state.job.images || [this.state.job.image]}\n onClose={this.closeGallery.bind(this)}\n ref=\"imagePopup\"\n />\n );\n }\n\n rendeDetails() {\n const { job } = this.state;\n\n return (\n <View>\n <Components.FormCardSectionOptionLauncher\n onPress={this.onToggleDetails}\n title=\"Details\"\n icon={this.state.showMore ? 'angle-up' : 'angle-down'}\n textStyle={styles.detailsText}\n sectionStyle={styles.detailsSection}\n />\n {this.state.showMore && (\n <View>\n {this.renderImage()}\n {!_.isEmpty(job.description) && (\n <Text numberOfLines={10} style={styles.jobDescriptionText}>\n {job.description}\n </Text>\n )}\n <Text style={styles.locationLabel}>Location</Text>\n <Text style={styles.locationText}>{job.room}</Text>\n <Text style={styles.requesterLabel}>Person Requesting</Text>\n <View style={styles.profileContainer}>\n <Components.ProfilePic ProfilePic={job.userProfilePic} Diameter={40} />\n <View style={styles.nameContainer}>\n <Text style={styles.nameText}>{job.userName}</Text>\n {!_.isEmpty(job.phone) && <Text style={styles.phoneText}>{job.phone}</Text>}\n </View>\n </View>\n </View>\n )}\n </View>\n );\n }\n\n renderMessages() {\n return (\n <View>\n <Components.CommentSection\n ref={ref => {\n this.commentSection = ref;\n }}\n commentReply={this.commentReply}\n scrollView={this.scrollView}\n adminPermission=\"maintenanceTracking\"\n entityType=\"maintenancerequest\"\n entityId={this.props.job.id}\n entityName={this.props.job.title}\n live\n refreshFrequency={10000}\n placeHolder={''}\n style={{ flex: 1, paddingHorizontal: 0, paddingTop: 16 }}\n onCommentsLoaded={this.onCommentsLoaded}\n onCommentAdded={this.onCommentAdded}\n hideAddComment\n disableFlag\n />\n {!this.state.showMessages && (\n <Components.InlineButton\n onPress={this.onLeaveMessage}\n color={this.props.colourBrandingMain}\n touchableStyle={{ marginTop: 10 }}\n style={{ height: 36 }}\n textStyle={{ color: '#fff' }}\n fullWidth\n >\n Leave Message\n </Components.InlineButton>\n )}\n </View>\n );\n }\n\n renderMessagesReply() {\n if (!this.state.showMessages) return null;\n\n return (\n <Components.CommentReply\n ref={ref => {\n this.commentReply = ref;\n }}\n commentSection={this.commentSection}\n scrollView={this.scrollView}\n entityType=\"maintenancerequest\"\n entityId={this.props.job.id}\n entityName={this.props.job.title}\n site={this.state.job.site || this.state.job.location}\n // noScroll={true}\n // style={{ position: 'absolute', bottom: 0, left: 0, right: 0 }}\n />\n );\n }\n\n renderStatusPopup() {\n if (!this.state.showStatusPopup) return null;\n return <StatusSelectorPopup onClose={this.onCloseStatusPopup} onSelect={this.onSelectStatus} />;\n }\n\n render() {\n return (\n <KeyboardAvoidingView behavior={Platform.OS === 'ios' && 'padding'} style={styles.container}>\n <Components.Header leftIcon=\"angle-left\" onPressLeft={this.onPressBack} text={Config.env.strings.MAINTENANCE_REQUEST_DETAILS} />\n {this.renderLoading()}\n <ScrollView\n ref={ref => {\n this.scrollView = ref;\n }}\n contentContainerStyle={{ paddingBottom: 26 }}\n style={{ height: '100%' }}\n >\n <View style={styles.innerContainer}>\n {this.renderTop()}\n {this.rendeDetails()}\n {this.renderMessages()}\n </View>\n </ScrollView>\n {this.renderMessagesReply()}\n {this.renderStatusPopup()}\n {this.renderImagePopup()}\n <DateTimePicker\n isVisible={this.state.isDateTimePickerVisible}\n onConfirm={this.onDateSelected}\n onCancel={this.onCloseDatePicker}\n mode={this.state.popUpType}\n headerTextIOS={`Pick a ${this.state.popUpType}`}\n />\n </KeyboardAvoidingView>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#fff',\n },\n innerContainer: {\n paddingTop: 23,\n paddingHorizontal: 16,\n },\n jobTitleContainer: {\n paddingVertical: 14,\n paddingHorizontal: 12,\n },\n jobTitleText: {\n fontFamily: 'sf-semibold',\n fontSize: 20,\n color: Colours.TEXT_DARKEST,\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 jobStatusDateText: {\n marginTop: 8,\n fontFamily: 'sf-medium',\n fontSize: 13,\n color: Colours.TEXT_LIGHT,\n },\n jobStatusExpectedContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n borderTopWidth: 1,\n borderTopColor: Colours.LINEGREY,\n paddingVertical: 14,\n paddingHorizontal: 12,\n },\n jobStatusOuterContainer: {\n // marginRight: 50,\n },\n jobStatusHeading: {\n fontFamily: 'sf-bold',\n fontSize: 11,\n letterSpacing: 0.8,\n color: Colours.TEXT_DARK,\n marginBottom: 6,\n },\n jobStatusContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n width: 120,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n jobStatusIcon: {\n color: '#fff',\n fontSize: 14,\n marginRight: 8,\n },\n jobStatusText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n flex: 1,\n textAlign: 'center',\n },\n jobExpectedDateContainer: {\n backgroundColor: Colours.BOXGREY,\n flexDirection: 'row',\n width: 115,\n height: 30,\n borderRadius: 4,\n alignItems: 'center',\n paddingLeft: 8,\n },\n jobExpectedDate: {\n fontFamily: 'sf-regular',\n fontSize: 13,\n color: Colours.hexToRGBAstring(Colours.TEXT_DARKEST, 0.5),\n },\n detailsText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n color: Colours.TEXT_DARKEST,\n },\n detailsSection: {\n marginTop: 8,\n paddingHorizontal: 0,\n paddingBottom: 12,\n },\n sideBySideImages: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginBottom: 16,\n },\n sideBySideImageContainer: {\n backgroundColor: '#fff',\n width: '48%',\n height: 150,\n borderRadius: 2,\n overflow: 'hidden',\n },\n singleImageContainer: {\n backgroundColor: '#fff',\n width: '100%',\n height: 150,\n flex: 1,\n borderRadius: 2,\n overflow: 'hidden',\n marginBottom: 16,\n },\n imageContainer: {\n height: 150,\n width: 'auto',\n justifyContent: 'center',\n },\n imagePlayContainer: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n },\n imageControlIcon: {\n color: '#fff',\n fontSize: 30,\n textShadowColor: 'rgba(0,0,0,0.3)',\n textShadowOffset: { width: 2, height: 2 },\n },\n plusImages: {\n fontFamily: 'sf-bold',\n fontSize: 32,\n textAlign: 'center',\n color: '#fff',\n textShadowColor: 'rgba(0, 0, 0, 0.5)',\n textShadowOffset: { width: 0, height: 2 },\n textShadowRadius: 8,\n },\n jobDescriptionText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: Colours.TEXT_LIGHT,\n paddingBottom: 16,\n },\n locationLabel: {\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: Colours.TEXT_DARKEST,\n },\n locationText: {\n fontFamily: 'sf-regular',\n fontSize: 16,\n color: Colours.TEXT_DARKEST,\n paddingVertical: 8,\n },\n requesterLabel: {\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: Colours.TEXT_DARKEST,\n paddingVertical: 10,\n },\n profileContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n nameContainer: {\n marginLeft: 18,\n },\n nameText: {\n fontSize: 'sf-semibold',\n fontSize: 14,\n color: Colours.TEXT_DARKEST,\n marginBottom: 4,\n },\n phoneText: {\n fontSize: 'sf-medium',\n fontSize: 14,\n color: Colours.TEXT_LIGHT,\n },\n textSectionInner: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: 8,\n },\n textSectionLabel: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n lineHeight: 24,\n color: Colours.TEXT_DARKEST,\n },\n textSectionTextContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n textSectionText: {\n fontFamily: 'sf-regular',\n fontSize: 13,\n lineHeight: 24,\n color: Colours.TEXT_LIGHT,\n },\n textSectionAngleRight: {\n fontSize: 24,\n marginLeft: 10,\n lineHeight: 24,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n user: state.user,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n jobs: state.jobs.jobs,\n };\n};\n\nexport default connect(mapStateToProps, { jobAdded })(RequestDetail);\n"]}
1
+ {"version":3,"sources":["RequestDetail.js"],"names":["React","Component","ScrollView","View","StyleSheet","Text","KeyboardAvoidingView","TouchableOpacity","ImageBackground","DateTimePicker","Icon","_","moment","connect","generalActions","jobAdded","StatusSelectorPopup","jobStatusOptions","getJobStatusProps","Services","Colours","Helper","Components","Config","RequestDetail","constructor","props","user","job","state","seen","hasPermission","Id","userID","setState","loading","updated","id","status","res","editJob","site","data","error","console","log","expectedDate","utc","toISOString","editJobStatus","navigation","goBack","showStatusPopup","updateJobStatus","navigate","popUpType","isDateTimePickerVisible","date","expectedDateText","format","updateJob","showMore","showMessages","count","getJob","permissions","includes","url","showFullscreenVideo","length","currentVideoUrl","galleryOpen","scrollView","createRef","commentReply","commentSection","componentDidMount","updateJobState","componentDidUpdate","prevProps","jobs","find","j","newState","markSeen","openGallery","index","refs","imagePopup","scrollTo","closeGallery","renderLoading","renderTop","statusText","statusColor","canEdit","showSeen","name","getShadowStyle","styles","jobTitleContainer","jobTitleText","title","jobTypeSeenContainer","jobTypeContainer","backgroundColor","hexToRGBAstring","colourBrandingMain","jobTypeText","color","type","jobSeenContainer","jobSeenIcon","jobSeenText","lastActivityUnix","textSectionInner","textSectionLabel","textSectionTextContainer","textSectionText","onOpenDatePicker","textSectionAngleRight","jobStatusExpectedContainer","jobStatusOuterContainer","jobStatusHeading","onOpenStatusPicker","jobStatusContainer","jobStatusIcon","jobStatusText","openStaffNotes","Notes","renderPlayableImageUrl","containerStyle","thumbUrl","getThumb300","isVideo","flex","uri","imagePlayContainer","toggleFullscreenVideo","bind","imageControlIcon","imageUrl","get1400","imageContainer","plusImages","images","renderPlayableImage","renderImage","isNil","isEmpty","sideBySideImages","sideBySideImageContainer","singleImageContainer","image","renderImagePopup","rendeDetails","onToggleDetails","detailsText","detailsSection","description","jobDescriptionText","locationLabel","locationText","room","requesterLabel","profileContainer","userProfilePic","nameContainer","nameText","userName","phone","phoneText","renderMessages","location","paddingHorizontal","paddingTop","onCommentsLoaded","onCommentAdded","onLeaveMessage","marginTop","height","renderMessagesReply","renderStatusPopup","onCloseStatusPopup","onSelectStatus","render","Platform","OS","container","onPressBack","env","strings","MAINTENANCE_REQUEST_DETAILS","paddingBottom","innerContainer","onDateSelected","onCloseDatePicker","create","paddingVertical","fontFamily","fontSize","TEXT_DARKEST","marginBottom","flexDirection","alignItems","width","borderRadius","justifyContent","textAlign","marginLeft","jobStatusDateText","TEXT_LIGHT","borderTopWidth","borderTopColor","LINEGREY","letterSpacing","TEXT_DARK","marginRight","jobExpectedDateContainer","BOXGREY","paddingLeft","jobExpectedDate","overflow","position","top","left","right","bottom","textShadowColor","textShadowOffset","textShadowRadius","lineHeight","mapStateToProps","getMainBrandingColourFromState"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { ScrollView, View, StyleSheet, Text, KeyboardAvoidingView, TouchableOpacity, ImageBackground } from 'react-native';\nimport DateTimePicker from 'react-native-modal-datetime-picker';\nimport { Icon } from 'react-native-elements';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { connect } from 'react-redux';\nimport { generalActions } from '../apis';\nimport { jobAdded } from '../actions';\nimport StatusSelectorPopup from '../components/StatusSelectorPopup';\nimport { jobStatusOptions, getJobStatusProps } from '../helper';\nimport { Services } from '../feature.config';\nimport { Colours, Helper, Components, Config } from '../core.config';\n\nclass RequestDetail extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n job: {},\n isDateTimePickerVisible: false,\n popUpType: '',\n status: '',\n expectedDate: null,\n expectedDateText: '',\n seen: false,\n showMore: false,\n showStatusPopup: false,\n loading: false,\n showFullscreenVideo: false,\n currentVideoUrl: '',\n galleryOpen: false,\n showMessages: false,\n };\n\n this.scrollView = React.createRef();\n this.commentReply = React.createRef();\n this.commentSection = React.createRef();\n }\n\n componentDidMount() {\n this.updateJobState();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.jobs !== this.props.jobs) {\n this.updateJobState();\n }\n }\n\n updateJobState() {\n const job = _.find(this.props.jobs, j => j.id === this.props.job.id) || this.props.job;\n const newState = { job, status: job.status };\n if (job.expectedDate) {\n newState.expectedDate = moment(job.expectedDate);\n newState.expectedDateText = newState.expectedDate.format('DD/MM/YYYY');\n }\n if (job.seen) newState.seen = job.seen;\n this.setState(newState, () => {\n this.markSeen();\n });\n }\n\n markSeen = () => {\n const { user } = this.props;\n const { job } = this.state;\n // Must have maintenance permission and not the requester\n // console.log('markSeen check', job.userID, user.Id);\n if (job.seen === true) return;\n if (!this.hasPermission()) return;\n if (user.Id === job.userID) return;\n\n this.setState({ loading: true }, async () => {\n try {\n const updated = { id: job.id, seen: true, status: job.status || 'Unassigned' };\n const res = await generalActions.editJob(updated, user.site);\n // console.log('markSeen updated');\n this.props.jobAdded(res.data.job);\n this.setState({ loading: false, seen: true });\n } catch (error) {\n console.log('markSeen error', error);\n this.setState({ loading: false });\n }\n });\n };\n\n updateJob = () => {\n this.setState({ loading: true }, async () => {\n const { user } = this.props;\n const { job } = this.state;\n try {\n const updated = { id: job.id };\n if (this.state.expectedDate) {\n updated.expectedDate = moment(this.state.expectedDate)\n .utc()\n .toISOString();\n }\n const res = await generalActions.editJob(updated, user.site);\n this.props.jobAdded(res.data.job);\n } catch (error) {\n console.log('updateJob error', error);\n } finally {\n this.setState({ loading: false });\n }\n });\n };\n\n updateJobStatus = () => {\n this.setState({ loading: true }, async () => {\n try {\n const res = await generalActions.editJobStatus(this.props.job.id, this.state.status);\n this.props.jobAdded(res.data.job);\n } catch (error) {\n console.log('updateJobStatus error', error);\n } finally {\n this.setState({ loading: false });\n }\n });\n };\n\n onPressBack = () => {\n Services.navigation.goBack();\n };\n\n onOpenStatusPicker = () => {\n this.setState({ showStatusPopup: true });\n };\n\n onCloseStatusPopup = () => {\n this.setState({ showStatusPopup: false });\n };\n\n onSelectStatus = status => {\n this.setState({ status, showStatusPopup: false }, () => {\n this.updateJobStatus();\n });\n };\n\n openStaffNotes = () => {\n Services.navigation.navigate('requestNotes', { job: this.state.job });\n };\n\n onOpenDatePicker = () => {\n this.setState({ popUpType: 'date', isDateTimePickerVisible: true });\n };\n\n onCloseDatePicker = () => {\n this.setState({ isDateTimePickerVisible: false });\n };\n\n onDateSelected = date => {\n if (this.state.popUpType === 'date') {\n date = moment(date);\n this.setState(\n {\n expectedDate: date,\n expectedDateText: date.format('DD/MM/YYYY'),\n isDateTimePickerVisible: false,\n },\n () => {\n this.updateJob();\n },\n );\n }\n };\n\n onToggleDetails = () => {\n this.setState({ showMore: !this.state.showMore });\n };\n\n onLeaveMessage = () => {\n this.setState({ showMessages: true });\n };\n\n onCommentsLoaded = count => {\n if (count > 0) {\n this.setState({ showMessages: true });\n }\n };\n\n onCommentAdded = () => {\n this.setState({ loading: true }, async () => {\n try {\n const job = await generalActions.getJob(this.props.user.site, this.props.job.id);\n // console.log('onCommentAdded', job?.data);\n this.props.jobAdded(job.data);\n } catch (error) {\n console.log('onCommentAdded error', error);\n } finally {\n this.setState({ loading: false });\n }\n });\n };\n\n hasPermission = () => {\n const { permissions } = this.props.user;\n return _.includes(permissions, 'maintenanceTracking');\n };\n\n toggleFullscreenVideo = url => {\n if (typeof url !== 'string') url = '';\n this.setState({ showFullscreenVideo: url.length > 0, currentVideoUrl: url });\n };\n\n openGallery(index) {\n this.setState({\n galleryOpen: true,\n });\n this.refs.imagePopup.scrollTo(index);\n }\n\n closeGallery() {\n this.setState({\n galleryOpen: false,\n });\n }\n\n renderLoading() {\n return <Components.LoadingIndicator visible={this.state.loading} />;\n }\n\n renderTop() {\n const { status, job } = this.state;\n const { statusText, statusColor } = getJobStatusProps(status);\n const canEdit = this.hasPermission();\n const showSeen = !status || status === jobStatusOptions[0].name;\n\n return (\n <View style={{ ...Helper.getShadowStyle() }}>\n <View style={styles.jobTitleContainer}>\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 && this.state.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\n {job.lastActivityUnix && (\n <View style={styles.textSectionInner}>\n <Text style={styles.textSectionLabel}>Last Updated On</Text>\n <View style={styles.textSectionTextContainer}>\n <Text style={styles.textSectionText}>{moment(job.lastActivityUnix).format('ddd D MMMM, h:mm A')}</Text>\n </View>\n </View>\n )}\n <View style={styles.textSectionInner}>\n <Text style={styles.textSectionLabel}>Expected Date</Text>\n <TouchableOpacity onPress={this.onOpenDatePicker}>\n <View style={styles.textSectionTextContainer}>\n <Text style={styles.textSectionText}>{this.state.expectedDateText || 'Select Date'}</Text>\n <Icon\n name=\"angle-right\"\n type=\"font-awesome\"\n iconStyle={[styles.textSectionAngleRight, { color: this.props.colourBrandingMain }]}\n />\n </View>\n </TouchableOpacity>\n </View>\n </View>\n <View style={styles.jobStatusExpectedContainer}>\n <View style={styles.jobStatusOuterContainer}>\n <Text style={styles.jobStatusHeading}>STATUS</Text>\n <TouchableOpacity onPress={canEdit ? this.onOpenStatusPicker : null}>\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 </TouchableOpacity>\n </View>\n {this.hasPermission() && (\n <View style={styles.jobStatusOuterContainer}>\n <Text style={styles.jobStatusHeading}>STAFF NOTES</Text>\n <TouchableOpacity onPress={this.openStaffNotes}>\n <View style={[styles.jobStatusContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"pencil-square-o\" type=\"font-awesome\" iconStyle={styles.jobStatusIcon} />\n <Text style={styles.jobStatusText}>Notes ({(job.Notes || []).length})</Text>\n </View>\n </TouchableOpacity>\n </View>\n )}\n </View>\n </View>\n );\n }\n\n renderPlayableImageUrl(url, index, containerStyle, showMore) {\n const thumbUrl = Helper.getThumb300(url);\n\n if (Helper.isVideo(url)) {\n return (\n <ImageBackground style={[{ flex: 1 }, containerStyle]} source={{ uri: thumbUrl }}>\n <View style={styles.imagePlayContainer}>\n <TouchableOpacity onPress={this.toggleFullscreenVideo.bind(this, url)}>\n <Icon name=\"play\" type=\"font-awesome\" iconStyle={styles.imageControlIcon} />\n </TouchableOpacity>\n </View>\n </ImageBackground>\n );\n }\n\n const imageUrl = Helper.get1400(url);\n return (\n <TouchableOpacity style={containerStyle} onPress={this.openGallery.bind(this, index || 0)}>\n <ImageBackground style={styles.imageContainer} source={{ uri: imageUrl }}>\n {showMore && <Text style={styles.plusImages}>+{this.state.job.images.length - 2}</Text>}\n </ImageBackground>\n </TouchableOpacity>\n );\n }\n\n renderPlayableImage(index, containerStyle, showMore) {\n const url = this.state.job.images[index];\n return this.renderPlayableImageUrl(url, index, containerStyle, showMore);\n }\n\n renderImage() {\n const { job } = this.state;\n if (!_.isNil(job.images) && !_.isEmpty(job.images)) {\n if (job.images.length >= 2) {\n return (\n <View style={styles.sideBySideImages}>\n {this.renderPlayableImage(0, styles.sideBySideImageContainer)}\n {this.renderPlayableImage(1, styles.sideBySideImageContainer, job.images.length > 2)}\n </View>\n );\n } else {\n return <View style={styles.singleImageContainer}>{this.renderPlayableImage(0)}</View>;\n }\n } else if (!_.isNil(job.image)) {\n return <View style={styles.singleImageContainer}>{this.renderPlayableImageUrl(job.image)}</View>;\n }\n return null;\n }\n\n renderImagePopup() {\n return (\n <Components.ImagePopup\n visible={this.state.galleryOpen}\n images={this.state.job.images || [this.state.job.image]}\n onClose={this.closeGallery.bind(this)}\n ref=\"imagePopup\"\n />\n );\n }\n\n rendeDetails() {\n const { job } = this.state;\n\n return (\n <View>\n <Components.FormCardSectionOptionLauncher\n onPress={this.onToggleDetails}\n title=\"Details\"\n icon={this.state.showMore ? 'angle-up' : 'angle-down'}\n textStyle={styles.detailsText}\n sectionStyle={styles.detailsSection}\n />\n {this.state.showMore && (\n <View>\n {this.renderImage()}\n {!_.isEmpty(job.description) && (\n <Text numberOfLines={10} style={styles.jobDescriptionText}>\n {job.description}\n </Text>\n )}\n <Text style={styles.locationLabel}>Location</Text>\n <Text style={styles.locationText}>{job.room}</Text>\n <Text style={styles.requesterLabel}>Person Requesting</Text>\n <View style={styles.profileContainer}>\n <Components.ProfilePic ProfilePic={job.userProfilePic} Diameter={40} />\n <View style={styles.nameContainer}>\n <Text style={styles.nameText}>{job.userName}</Text>\n {!_.isEmpty(job.phone) && <Text style={styles.phoneText}>{job.phone}</Text>}\n </View>\n </View>\n </View>\n )}\n </View>\n );\n }\n\n renderMessages() {\n return (\n <View>\n <Components.CommentSection\n ref={this.commentSection}\n commentReply={this.commentReply}\n scrollView={this.scrollView}\n adminPermission=\"maintenanceTracking\"\n entityType=\"maintenancerequest\"\n entityId={this.props.job.id}\n entityName={this.props.job.title}\n site={this.state.job.site || this.state.job.location}\n live\n refreshFrequency={10000}\n placeHolder={''}\n style={{ flex: 1, paddingHorizontal: 0, paddingTop: 16 }}\n onCommentsLoaded={this.onCommentsLoaded}\n onCommentAdded={this.onCommentAdded}\n hideAddComment\n disableFlag\n />\n {!this.state.showMessages && (\n <Components.InlineButton\n onPress={this.onLeaveMessage}\n color={this.props.colourBrandingMain}\n touchableStyle={{ marginTop: 10 }}\n style={{ height: 36 }}\n textStyle={{ color: '#fff' }}\n fullWidth\n >\n Leave Message\n </Components.InlineButton>\n )}\n </View>\n );\n }\n\n renderMessagesReply() {\n if (!this.state.showMessages) return null;\n\n return (\n <Components.CommentReply\n ref={this.commentReply}\n commentSection={this.commentSection}\n scrollView={this.scrollView}\n entityType=\"maintenancerequest\"\n entityId={this.props.job.id}\n entityName={this.props.job.title}\n site={this.state.job.site || this.state.job.location}\n // noScroll={true}\n // style={{ position: 'absolute', bottom: 0, left: 0, right: 0 }}\n />\n );\n }\n\n renderStatusPopup() {\n if (!this.state.showStatusPopup) return null;\n return <StatusSelectorPopup onClose={this.onCloseStatusPopup} onSelect={this.onSelectStatus} />;\n }\n\n render() {\n return (\n <KeyboardAvoidingView behavior={Platform.OS === 'ios' && 'padding'} style={styles.container}>\n <Components.Header leftIcon=\"angle-left\" onPressLeft={this.onPressBack} text={Config.env.strings.MAINTENANCE_REQUEST_DETAILS} />\n {this.renderLoading()}\n <ScrollView ref={this.scrollView} contentContainerStyle={{ paddingBottom: 26 }} style={{ height: '100%' }}>\n <View style={styles.innerContainer}>\n {this.renderTop()}\n {this.rendeDetails()}\n {this.renderMessages()}\n </View>\n </ScrollView>\n {this.renderMessagesReply()}\n {this.renderStatusPopup()}\n {this.renderImagePopup()}\n <DateTimePicker\n isVisible={this.state.isDateTimePickerVisible}\n onConfirm={this.onDateSelected}\n onCancel={this.onCloseDatePicker}\n mode={this.state.popUpType}\n headerTextIOS={`Pick a ${this.state.popUpType}`}\n />\n </KeyboardAvoidingView>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#fff',\n },\n innerContainer: {\n paddingTop: 23,\n paddingHorizontal: 16,\n },\n jobTitleContainer: {\n paddingVertical: 14,\n paddingHorizontal: 12,\n },\n jobTitleText: {\n fontFamily: 'sf-semibold',\n fontSize: 20,\n color: Colours.TEXT_DARKEST,\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 jobStatusDateText: {\n marginTop: 8,\n fontFamily: 'sf-medium',\n fontSize: 13,\n color: Colours.TEXT_LIGHT,\n },\n jobStatusExpectedContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n borderTopWidth: 1,\n borderTopColor: Colours.LINEGREY,\n paddingVertical: 14,\n paddingHorizontal: 12,\n },\n jobStatusOuterContainer: {\n // marginRight: 50,\n },\n jobStatusHeading: {\n fontFamily: 'sf-bold',\n fontSize: 11,\n letterSpacing: 0.8,\n color: Colours.TEXT_DARK,\n marginBottom: 6,\n },\n jobStatusContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n width: 120,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n jobStatusIcon: {\n color: '#fff',\n fontSize: 14,\n marginRight: 8,\n },\n jobStatusText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n flex: 1,\n textAlign: 'center',\n },\n jobExpectedDateContainer: {\n backgroundColor: Colours.BOXGREY,\n flexDirection: 'row',\n width: 115,\n height: 30,\n borderRadius: 4,\n alignItems: 'center',\n paddingLeft: 8,\n },\n jobExpectedDate: {\n fontFamily: 'sf-regular',\n fontSize: 13,\n color: Colours.hexToRGBAstring(Colours.TEXT_DARKEST, 0.5),\n },\n detailsText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n color: Colours.TEXT_DARKEST,\n },\n detailsSection: {\n marginTop: 8,\n paddingHorizontal: 0,\n paddingBottom: 12,\n },\n sideBySideImages: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginBottom: 16,\n },\n sideBySideImageContainer: {\n backgroundColor: '#fff',\n width: '48%',\n height: 150,\n borderRadius: 2,\n overflow: 'hidden',\n },\n singleImageContainer: {\n backgroundColor: '#fff',\n width: '100%',\n height: 150,\n flex: 1,\n borderRadius: 2,\n overflow: 'hidden',\n marginBottom: 16,\n },\n imageContainer: {\n height: 150,\n width: 'auto',\n justifyContent: 'center',\n },\n imagePlayContainer: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n },\n imageControlIcon: {\n color: '#fff',\n fontSize: 30,\n textShadowColor: 'rgba(0,0,0,0.3)',\n textShadowOffset: { width: 2, height: 2 },\n },\n plusImages: {\n fontFamily: 'sf-bold',\n fontSize: 32,\n textAlign: 'center',\n color: '#fff',\n textShadowColor: 'rgba(0, 0, 0, 0.5)',\n textShadowOffset: { width: 0, height: 2 },\n textShadowRadius: 8,\n },\n jobDescriptionText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: Colours.TEXT_LIGHT,\n paddingBottom: 16,\n },\n locationLabel: {\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: Colours.TEXT_DARKEST,\n },\n locationText: {\n fontFamily: 'sf-regular',\n fontSize: 16,\n color: Colours.TEXT_DARKEST,\n paddingVertical: 8,\n },\n requesterLabel: {\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: Colours.TEXT_DARKEST,\n paddingVertical: 10,\n },\n profileContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n nameContainer: {\n marginLeft: 18,\n },\n nameText: {\n fontSize: 'sf-semibold',\n fontSize: 14,\n color: Colours.TEXT_DARKEST,\n marginBottom: 4,\n },\n phoneText: {\n fontSize: 'sf-medium',\n fontSize: 14,\n color: Colours.TEXT_LIGHT,\n },\n textSectionInner: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: 8,\n },\n textSectionLabel: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n lineHeight: 24,\n color: Colours.TEXT_DARKEST,\n },\n textSectionTextContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n textSectionText: {\n fontFamily: 'sf-regular',\n fontSize: 13,\n lineHeight: 24,\n color: Colours.TEXT_LIGHT,\n },\n textSectionAngleRight: {\n fontSize: 24,\n marginLeft: 10,\n lineHeight: 24,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n user: state.user,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n jobs: state.jobs.jobs,\n };\n};\n\nexport default connect(mapStateToProps, { jobAdded })(RequestDetail);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-maintenance-app",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "description": "Extension package to enable maintenance on Pluss Communities Platform",
5
5
  "main": "dist/module/index.js",
6
6
  "module": "dist/module/index.js",
@@ -21,7 +21,7 @@
21
21
  "author": "Phillip Suh",
22
22
  "license": "ISC",
23
23
  "dependencies": {
24
- "@plusscommunities/pluss-core-app": "1.5.6",
24
+ "@plusscommunities/pluss-core-app": "1.5.5",
25
25
  "axios": "^0.16.2",
26
26
  "lodash": "^4.17.4",
27
27
  "moment": "^2.18.1",
@@ -32,6 +32,10 @@ class RequestDetail extends Component {
32
32
  galleryOpen: false,
33
33
  showMessages: false,
34
34
  };
35
+
36
+ this.scrollView = React.createRef();
37
+ this.commentReply = React.createRef();
38
+ this.commentSection = React.createRef();
35
39
  }
36
40
 
37
41
  componentDidMount() {
@@ -385,15 +389,14 @@ class RequestDetail extends Component {
385
389
  return (
386
390
  <View>
387
391
  <Components.CommentSection
388
- ref={ref => {
389
- this.commentSection = ref;
390
- }}
392
+ ref={this.commentSection}
391
393
  commentReply={this.commentReply}
392
394
  scrollView={this.scrollView}
393
395
  adminPermission="maintenanceTracking"
394
396
  entityType="maintenancerequest"
395
397
  entityId={this.props.job.id}
396
398
  entityName={this.props.job.title}
399
+ site={this.state.job.site || this.state.job.location}
397
400
  live
398
401
  refreshFrequency={10000}
399
402
  placeHolder={''}
@@ -424,9 +427,7 @@ class RequestDetail extends Component {
424
427
 
425
428
  return (
426
429
  <Components.CommentReply
427
- ref={ref => {
428
- this.commentReply = ref;
429
- }}
430
+ ref={this.commentReply}
430
431
  commentSection={this.commentSection}
431
432
  scrollView={this.scrollView}
432
433
  entityType="maintenancerequest"
@@ -449,13 +450,7 @@ class RequestDetail extends Component {
449
450
  <KeyboardAvoidingView behavior={Platform.OS === 'ios' && 'padding'} style={styles.container}>
450
451
  <Components.Header leftIcon="angle-left" onPressLeft={this.onPressBack} text={Config.env.strings.MAINTENANCE_REQUEST_DETAILS} />
451
452
  {this.renderLoading()}
452
- <ScrollView
453
- ref={ref => {
454
- this.scrollView = ref;
455
- }}
456
- contentContainerStyle={{ paddingBottom: 26 }}
457
- style={{ height: '100%' }}
458
- >
453
+ <ScrollView ref={this.scrollView} contentContainerStyle={{ paddingBottom: 26 }} style={{ height: '100%' }}>
459
454
  <View style={styles.innerContainer}>
460
455
  {this.renderTop()}
461
456
  {this.rendeDetails()}