@plusscommunities/pluss-maintenance-app 6.0.0 → 6.0.1-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 (46) hide show
  1. package/package.json +5 -2
  2. package/dist/module/actions/JobActions.js +0 -20
  3. package/dist/module/actions/JobActions.js.map +0 -1
  4. package/dist/module/actions/index.js +0 -2
  5. package/dist/module/actions/index.js.map +0 -1
  6. package/dist/module/actions/types.js +0 -4
  7. package/dist/module/actions/types.js.map +0 -1
  8. package/dist/module/apis/generalActions.js +0 -186
  9. package/dist/module/apis/generalActions.js.map +0 -1
  10. package/dist/module/apis/index.js +0 -2
  11. package/dist/module/apis/index.js.map +0 -1
  12. package/dist/module/components/FilterPopupMenu.js +0 -235
  13. package/dist/module/components/FilterPopupMenu.js.map +0 -1
  14. package/dist/module/components/MaintenanceList.js +0 -325
  15. package/dist/module/components/MaintenanceList.js.map +0 -1
  16. package/dist/module/components/MaintenanceListItem.js +0 -322
  17. package/dist/module/components/MaintenanceListItem.js.map +0 -1
  18. package/dist/module/components/MaintenanceWidgetItem.js +0 -152
  19. package/dist/module/components/MaintenanceWidgetItem.js.map +0 -1
  20. package/dist/module/components/StatusSelectorPopup.js +0 -88
  21. package/dist/module/components/StatusSelectorPopup.js.map +0 -1
  22. package/dist/module/components/WidgetLarge.js +0 -9
  23. package/dist/module/components/WidgetLarge.js.map +0 -1
  24. package/dist/module/components/WidgetSmall.js +0 -168
  25. package/dist/module/components/WidgetSmall.js.map +0 -1
  26. package/dist/module/core.config.js +0 -17
  27. package/dist/module/core.config.js.map +0 -1
  28. package/dist/module/feature.config.js +0 -90
  29. package/dist/module/feature.config.js.map +0 -1
  30. package/dist/module/helper.js +0 -25
  31. package/dist/module/helper.js.map +0 -1
  32. package/dist/module/images/speechbubble.png +0 -0
  33. package/dist/module/index.js +0 -20
  34. package/dist/module/index.js.map +0 -1
  35. package/dist/module/reducers/JobsReducer.js +0 -62
  36. package/dist/module/reducers/JobsReducer.js.map +0 -1
  37. package/dist/module/screens/JobTypePicker.js +0 -130
  38. package/dist/module/screens/JobTypePicker.js.map +0 -1
  39. package/dist/module/screens/MaintenancePage.js +0 -88
  40. package/dist/module/screens/MaintenancePage.js.map +0 -1
  41. package/dist/module/screens/RequestDetail.js +0 -798
  42. package/dist/module/screens/RequestDetail.js.map +0 -1
  43. package/dist/module/screens/RequestNotes.js +0 -387
  44. package/dist/module/screens/RequestNotes.js.map +0 -1
  45. package/dist/module/screens/ServiceRequest.js +0 -748
  46. package/dist/module/screens/ServiceRequest.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"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","_defineProperty","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","createElement","LoadingIndicator","visible","renderTop","statusText","statusColor","canEdit","showSeen","name","style","getShadowStyle","styles","jobTitleContainer","jobTitleText","title","jobTypeSeenContainer","jobTypeContainer","backgroundColor","hexToRGBAstring","colourBrandingMain","jobTypeText","color","type","jobSeenContainer","iconStyle","jobSeenIcon","jobSeenText","lastActivityUnix","textSectionInner","textSectionLabel","textSectionTextContainer","textSectionText","onPress","onOpenDatePicker","textSectionAngleRight","jobStatusExpectedContainer","jobStatusOuterContainer","jobStatusHeading","onOpenStatusPicker","jobStatusContainer","jobStatusIcon","jobStatusText","openStaffNotes","Notes","renderPlayableImageUrl","containerStyle","thumbUrl","getThumb300","isVideo","flex","source","uri","imagePlayContainer","toggleFullscreenVideo","bind","imageControlIcon","imageUrl","get1400","imageContainer","plusImages","images","renderPlayableImage","renderImage","isNil","isEmpty","sideBySideImages","sideBySideImageContainer","singleImageContainer","image","renderImagePopup","ImagePopup","onClose","ref","rendeDetails","FormCardSectionOptionLauncher","onToggleDetails","icon","textStyle","detailsText","sectionStyle","detailsSection","description","numberOfLines","jobDescriptionText","locationLabel","locationText","room","isHome","homeText","requesterLabel","profileContainer","ProfilePic","userProfilePic","Diameter","nameContainer","nameText","userName","phone","phoneText","renderMessages","CommentSection","adminPermission","entityType","entityId","entityName","location","live","refreshFrequency","placeHolder","paddingHorizontal","paddingTop","onCommentsLoaded","onCommentAdded","hideAddComment","disableFlag","InlineButton","onLeaveMessage","touchableStyle","marginTop","height","fullWidth","renderMessagesReply","CommentReply","renderStatusPopup","onCloseStatusPopup","onSelect","onSelectStatus","render","behavior","Platform","OS","container","Header","leftIcon","onPressLeft","onPressBack","text","env","strings","MAINTENANCE_REQUEST_DETAILS","contentContainerStyle","paddingBottom","innerContainer","isVisible","onConfirm","onDateSelected","onCancel","onCloseDatePicker","mode","headerTextIOS","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"],"sources":["RequestDetail.js"],"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 {job.isHome ? (\n <View style={styles.detailsSection}>\n <Text style={styles.locationLabel}>Must be home</Text>\n <Text style={styles.locationText}>{job.homeText}</Text>\n </View>\n ) : null}\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"],"mappings":"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"}
@@ -1,387 +0,0 @@
1
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
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
- import React, { Component } from 'react';
5
- import { ScrollView, View, Text, TouchableOpacity, Modal, KeyboardAvoidingView } from 'react-native';
6
- import { connect } from 'react-redux';
7
- import { Icon } from 'react-native-elements';
8
- import _ from 'lodash';
9
- import moment from 'moment';
10
- import { jobAdded } from '../actions';
11
- import { generalActions } from '../apis';
12
- import { getBottomSpace } from 'react-native-iphone-x-helper';
13
- import { Services } from '../feature.config';
14
- import { Components, Colours, Helper } from '../core.config';
15
- class RequestNotes extends Component {
16
- constructor(props) {
17
- super(props);
18
- _defineProperty(this, "onPressBack", () => {
19
- Services.navigation.goBack();
20
- });
21
- _defineProperty(this, "onOpenAttachment", a => {
22
- this.setState({
23
- selectedPDF: a
24
- });
25
- });
26
- _defineProperty(this, "onCloseAttachment", () => {
27
- this.setState({
28
- selectedPDF: null
29
- });
30
- });
31
- _defineProperty(this, "onPressDeleteNote", n => {
32
- this.setState({
33
- noteToDelete: n
34
- });
35
- });
36
- _defineProperty(this, "onPressConfirmDelete", () => {
37
- generalActions.deleteNote(this.props.job.id, this.state.noteToDelete.Id);
38
- const newNotes = _.filter(this.state.job.Notes, note => {
39
- return note.Id !== this.state.noteToDelete.Id;
40
- });
41
- const newJob = {
42
- ...this.props.job
43
- };
44
- newJob.Notes = newNotes;
45
- this.props.jobAdded(newJob);
46
- this.setState({
47
- job: newJob,
48
- noteToDelete: null
49
- });
50
- });
51
- _defineProperty(this, "onPressCancelDelete", () => {
52
- this.setState({
53
- noteToDelete: null
54
- });
55
- });
56
- _defineProperty(this, "isReadyToSaveNote", () => {
57
- if (_.some(this.state.noteAttachments, n => {
58
- return n.Uploading;
59
- })) {
60
- return false;
61
- }
62
- return !_.isEmpty(this.state.noteInput) || !_.isEmpty(this.state.noteAttachments);
63
- });
64
- _defineProperty(this, "openAddNote", () => {
65
- this.setState({
66
- addNoteOpen: true,
67
- editingNote: null
68
- });
69
- });
70
- _defineProperty(this, "closeAddNote", () => {
71
- const newState = {
72
- addNoteOpen: false,
73
- editingNote: null
74
- };
75
- if (!!this.state.editingNote) {
76
- newState.noteInput = '';
77
- newState.noteAttachments = [];
78
- }
79
- this.setState(newState);
80
- });
81
- _defineProperty(this, "openEditNote", n => {
82
- this.setState({
83
- noteAttachments: n.Attachments || [],
84
- noteInput: n.Note || '',
85
- addNoteOpen: true,
86
- editingNote: n.Id,
87
- noteMenuOpen: null
88
- });
89
- });
90
- _defineProperty(this, "confirmAddNote", async () => {
91
- if (!this.isReadyToSaveNote()) {
92
- return;
93
- }
94
- try {
95
- this.setState({
96
- submittingNote: true
97
- });
98
- const res = await (this.state.editingNote ? generalActions.editNote(this.props.job.id, this.state.editingNote, this.state.noteInput, this.state.noteAttachments.map(a => {
99
- return {
100
- Title: a.Title,
101
- Source: a.Source
102
- };
103
- })) : generalActions.addNote(this.props.job.id, this.state.noteInput, this.state.noteAttachments.map(a => {
104
- return {
105
- Title: a.Title,
106
- Source: a.Source
107
- };
108
- })));
109
- this.setState({
110
- job: res.data.job,
111
- submittingNote: false,
112
- addNoteOpen: false,
113
- noteInput: '',
114
- noteAttachments: [],
115
- editingNote: null
116
- }, () => {
117
- this.props.jobAdded(res.data.job);
118
- });
119
- } catch (err) {
120
- console.log('error');
121
- console.log(err);
122
- this.setState({
123
- submittingNote: false
124
- });
125
- }
126
- });
127
- this.state = {
128
- job: {},
129
- selectedPDF: null,
130
- noteAttachments: [],
131
- noteInput: '',
132
- addNoteOpen: false
133
- };
134
- }
135
- componentDidMount() {
136
- this.updateJobState();
137
- }
138
- componentDidUpdate(prevProps) {
139
- if (prevProps.jobs !== this.props.jobs) {
140
- this.updateJobState();
141
- }
142
- }
143
- updateJobState() {
144
- const job = _.find(this.props.jobs, j => j.id === this.props.job.id) || this.props.job;
145
- this.setState({
146
- job
147
- });
148
- }
149
- renderAttachment(a, i) {
150
- return /*#__PURE__*/React.createElement(Components.Attachment, {
151
- onPress: () => {
152
- this.onOpenAttachment(a);
153
- },
154
- key: i,
155
- title: a.Title
156
- });
157
- }
158
- renderNote(n) {
159
- return /*#__PURE__*/React.createElement(View, {
160
- style: styles.noteContainer,
161
- key: n.Id
162
- }, /*#__PURE__*/React.createElement(View, {
163
- style: styles.noteContainerTop
164
- }, /*#__PURE__*/React.createElement(Components.ProfilePic, {
165
- Diameter: 30,
166
- ProfilePic: n.User.profilePic,
167
- style: styles.profilePic
168
- }), /*#__PURE__*/React.createElement(View, {
169
- style: styles.noteContainerTopRight
170
- }, this.props.user.uid === n.User.id && /*#__PURE__*/React.createElement(TouchableOpacity, {
171
- onPress: () => {
172
- this.onPressDeleteNote(n);
173
- }
174
- }, /*#__PURE__*/React.createElement(View, {
175
- style: [styles.noteContainerButtonContainer, {
176
- backgroundColor: this.props.colourBrandingMain
177
- }]
178
- }, /*#__PURE__*/React.createElement(Icon, {
179
- name: "trash",
180
- type: "font-awesome",
181
- iconStyle: styles.noteContainerButtonIcon
182
- }))), this.props.user.uid === n.User.id && /*#__PURE__*/React.createElement(TouchableOpacity, {
183
- onPress: () => {
184
- this.openEditNote(n);
185
- }
186
- }, /*#__PURE__*/React.createElement(View, {
187
- style: [styles.noteContainerButtonContainer, {
188
- backgroundColor: this.props.colourBrandingMain
189
- }]
190
- }, /*#__PURE__*/React.createElement(Icon, {
191
- name: "pencil",
192
- type: "font-awesome",
193
- iconStyle: styles.noteContainerButtonIcon
194
- }))), /*#__PURE__*/React.createElement(View, {
195
- style: styles.noteContainerTopFill
196
- }, /*#__PURE__*/React.createElement(Text, {
197
- style: styles.noteContainerName
198
- }, n.User.displayName)))), /*#__PURE__*/React.createElement(Text, {
199
- style: styles.noteContainerText
200
- }, n.Note), (n.Attachments || []).map((a, i) => this.renderAttachment(a, i)), /*#__PURE__*/React.createElement(Text, {
201
- style: styles.noteTimestamp
202
- }, moment.utc(n.Timestamp).local().format(Helper.TIMESTAMP_FORMAT)));
203
- }
204
- renderNotes() {
205
- return (this.state.job.Notes || []).map((n, i) => {
206
- return this.renderNote(n, i);
207
- });
208
- }
209
- renderPDF() {
210
- if (_.isEmpty(this.state.selectedPDF)) {
211
- return null;
212
- }
213
- return /*#__PURE__*/React.createElement(Components.PDFPopup, {
214
- source: this.state.selectedPDF.Source,
215
- onClose: this.onCloseAttachment,
216
- title: this.state.selectedPDF.Title,
217
- pdfCount: 1
218
- });
219
- }
220
- renderNoteDeleteConfirm() {
221
- return /*#__PURE__*/React.createElement(Components.ConfirmPopup, {
222
- visible: !!this.state.noteToDelete,
223
- onConfirm: this.onPressConfirmDelete,
224
- onCancel: this.onPressCancelDelete,
225
- onClose: this.onPressCancelDelete,
226
- text: "Are you sure you want to delete this note?"
227
- });
228
- }
229
- renderFooterContent() {
230
- if (this.state.submittingNote) {
231
- return /*#__PURE__*/React.createElement(Components.Spinner, null);
232
- }
233
- return /*#__PURE__*/React.createElement(Components.InlineButton, {
234
- color: this.props.colourBrandingMain,
235
- onPress: this.confirmAddNote,
236
- fillTouchable: true,
237
- large: true
238
- }, "Save");
239
- }
240
- renderAdd() {
241
- return /*#__PURE__*/React.createElement(Modal, {
242
- animationType: "slide",
243
- visible: this.state.addNoteOpen
244
- }, /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
245
- style: styles.container,
246
- behavior: Platform.OS === 'ios' && 'padding'
247
- }, /*#__PURE__*/React.createElement(Components.Header, {
248
- leftText: "Cancel",
249
- onPressLeft: this.closeAddNote,
250
- text: ""
251
- }), /*#__PURE__*/React.createElement(ScrollView, {
252
- style: styles.scrollContainer,
253
- contentContainerStyle: styles.innerContainer
254
- }, /*#__PURE__*/React.createElement(Components.TextStyle, {
255
- type: "pageHeading"
256
- }, "Add Staff Note"), /*#__PURE__*/React.createElement(Components.GenericInputSection, {
257
- label: "Content",
258
- placeholder: "Insert your notes here...",
259
- value: this.state.noteInput,
260
- onChangeText: noteInput => this.setState({
261
- noteInput
262
- }),
263
- isValid: () => {
264
- return !_.isEmpty(this.state.noteInput);
265
- },
266
- autoCapitalize: "sentences",
267
- minHeight: 135,
268
- autoCorrect: true,
269
- multiline: true,
270
- autoGrow: true,
271
- required: true,
272
- squaredCorners: true,
273
- sectionStyle: styles.inputSection
274
- }), /*#__PURE__*/React.createElement(Components.GenericInputSection, {
275
- label: "Attachments",
276
- sectionStyle: styles.inputSection
277
- }, this.state.editingNote ? (this.state.noteAttachments || []).map((a, i) => this.renderAttachment(a, i)) : /*#__PURE__*/React.createElement(Components.TextStyle, {
278
- type: "body",
279
- style: styles.attachmentInfo
280
- }, "PDFs can only be attached to notes from the Community Manager."))), /*#__PURE__*/React.createElement(View, {
281
- style: styles.popupFooter
282
- }, this.renderFooterContent())));
283
- }
284
- render() {
285
- return /*#__PURE__*/React.createElement(View, {
286
- style: styles.container
287
- }, this.renderPDF(), this.renderNoteDeleteConfirm(), this.renderAdd(), /*#__PURE__*/React.createElement(Components.Header, {
288
- leftIcon: "angle-left",
289
- onPressLeft: this.onPressBack,
290
- text: "Staff Notes"
291
- }), /*#__PURE__*/React.createElement(ScrollView, {
292
- style: styles.scrollContainer,
293
- contentContainerStyle: styles.innerContainer
294
- }, this.renderNotes()), /*#__PURE__*/React.createElement(Components.AddButton, {
295
- onPress: this.openAddNote
296
- }));
297
- }
298
- }
299
- const styles = {
300
- container: {
301
- flex: 1,
302
- position: 'relative',
303
- backgroundColor: '#fff'
304
- },
305
- scrollContainer: {
306
- flex: 1
307
- },
308
- innerContainer: {
309
- padding: 16
310
- },
311
- popupFooter: {
312
- paddingHorizontal: 16,
313
- paddingBottom: getBottomSpace() + 16
314
- },
315
- noteContainer: {
316
- ...Helper.getShadowStyle(),
317
- padding: 8,
318
- marginBottom: 16
319
- },
320
- noteContainerTop: {
321
- flexDirection: 'row',
322
- alignItems: 'center'
323
- },
324
- profilePic: {
325
- marginRight: 8
326
- },
327
- noteContainerTopFill: {
328
- flex: 1
329
- },
330
- noteContainerName: {
331
- fontFamily: 'sf-semibold',
332
- fontSize: 13,
333
- color: Colours.TEXT_DARKEST
334
- },
335
- noteContainerText: {
336
- marginTop: 8,
337
- fontFamily: 'sf-regular',
338
- fontSize: 13,
339
- color: Colours.TEXT_DARKEST
340
- },
341
- noteTimestamp: {
342
- marginTop: 8,
343
- fontFamily: 'sf-semibold',
344
- fontSize: 11,
345
- color: Colours.TEXT_LIGHT
346
- },
347
- noteContainerTopRight: {
348
- flex: 1,
349
- flexDirection: 'row-reverse',
350
- alignItems: 'center'
351
- },
352
- noteContainerButtonContainer: {
353
- width: 24,
354
- height: 24,
355
- borderRadius: 12,
356
- alignItems: 'center',
357
- justifyContent: 'center',
358
- marginLeft: 8
359
- },
360
- noteContainerButtonIcon: {
361
- fontSize: 13,
362
- color: '#fff'
363
- },
364
- inputSection: {
365
- marginTop: 24
366
- },
367
- sectionHeading: {
368
- fontFamily: 'qs-bold',
369
- fontSize: 24,
370
- color: Colours.TEXT_DARKEST
371
- },
372
- attachmentInfo: {
373
- marginTop: 8
374
- }
375
- };
376
- const mapStateToProps = state => {
377
- return {
378
- user: state.user,
379
- colourBrandingMain: Colours.getMainBrandingColourFromState(state),
380
- colourBrandingLight: Colours.getLightBrandingColourFromState(state),
381
- jobs: state.jobs.jobs
382
- };
383
- };
384
- export default connect(mapStateToProps, {
385
- jobAdded
386
- })(RequestNotes);
387
- //# sourceMappingURL=RequestNotes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","Component","ScrollView","View","Text","TouchableOpacity","Modal","KeyboardAvoidingView","connect","Icon","_","moment","jobAdded","generalActions","getBottomSpace","Services","Components","Colours","Helper","RequestNotes","constructor","props","_defineProperty","navigation","goBack","a","setState","selectedPDF","n","noteToDelete","deleteNote","job","id","state","Id","newNotes","filter","Notes","note","newJob","some","noteAttachments","Uploading","isEmpty","noteInput","addNoteOpen","editingNote","newState","Attachments","Note","noteMenuOpen","isReadyToSaveNote","submittingNote","res","editNote","map","Title","Source","addNote","data","err","console","log","componentDidMount","updateJobState","componentDidUpdate","prevProps","jobs","find","j","renderAttachment","i","createElement","Attachment","onPress","onOpenAttachment","key","title","renderNote","style","styles","noteContainer","noteContainerTop","ProfilePic","Diameter","User","profilePic","noteContainerTopRight","user","uid","onPressDeleteNote","noteContainerButtonContainer","backgroundColor","colourBrandingMain","name","type","iconStyle","noteContainerButtonIcon","openEditNote","noteContainerTopFill","noteContainerName","displayName","noteContainerText","noteTimestamp","utc","Timestamp","local","format","TIMESTAMP_FORMAT","renderNotes","renderPDF","PDFPopup","source","onClose","onCloseAttachment","pdfCount","renderNoteDeleteConfirm","ConfirmPopup","visible","onConfirm","onPressConfirmDelete","onCancel","onPressCancelDelete","text","renderFooterContent","Spinner","InlineButton","color","confirmAddNote","fillTouchable","large","renderAdd","animationType","container","behavior","Platform","OS","Header","leftText","onPressLeft","closeAddNote","scrollContainer","contentContainerStyle","innerContainer","TextStyle","GenericInputSection","label","placeholder","value","onChangeText","isValid","autoCapitalize","minHeight","autoCorrect","multiline","autoGrow","required","squaredCorners","sectionStyle","inputSection","attachmentInfo","popupFooter","render","leftIcon","onPressBack","AddButton","openAddNote","flex","position","padding","paddingHorizontal","paddingBottom","getShadowStyle","marginBottom","flexDirection","alignItems","marginRight","fontFamily","fontSize","TEXT_DARKEST","marginTop","TEXT_LIGHT","width","height","borderRadius","justifyContent","marginLeft","sectionHeading","mapStateToProps","getMainBrandingColourFromState","colourBrandingLight","getLightBrandingColourFromState"],"sources":["RequestNotes.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { ScrollView, View, Text, TouchableOpacity, Modal, KeyboardAvoidingView } from 'react-native';\nimport { connect } from 'react-redux';\nimport { Icon } from 'react-native-elements';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { jobAdded } from '../actions';\nimport { generalActions } from '../apis';\nimport { getBottomSpace } from 'react-native-iphone-x-helper';\nimport { Services } from '../feature.config';\nimport { Components, Colours, Helper } from '../core.config';\n\nclass RequestNotes extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n job: {},\n selectedPDF: null,\n noteAttachments: [],\n noteInput: '',\n addNoteOpen: 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 this.setState({ job });\n }\n\n onPressBack = () => {\n Services.navigation.goBack();\n };\n\n onOpenAttachment = a => {\n this.setState({\n selectedPDF: a,\n });\n };\n\n onCloseAttachment = () => {\n this.setState({\n selectedPDF: null,\n });\n };\n\n onPressDeleteNote = n => {\n this.setState({\n noteToDelete: n,\n });\n };\n\n onPressConfirmDelete = () => {\n generalActions.deleteNote(this.props.job.id, this.state.noteToDelete.Id);\n const newNotes = _.filter(this.state.job.Notes, note => {\n return note.Id !== this.state.noteToDelete.Id;\n });\n const newJob = { ...this.props.job };\n newJob.Notes = newNotes;\n this.props.jobAdded(newJob);\n this.setState({\n job: newJob,\n noteToDelete: null,\n });\n };\n\n onPressCancelDelete = () => {\n this.setState({ noteToDelete: null });\n };\n\n isReadyToSaveNote = () => {\n if (\n _.some(this.state.noteAttachments, n => {\n return n.Uploading;\n })\n ) {\n return false;\n }\n return !_.isEmpty(this.state.noteInput) || !_.isEmpty(this.state.noteAttachments);\n };\n\n openAddNote = () => {\n this.setState({\n addNoteOpen: true,\n editingNote: null,\n });\n };\n\n closeAddNote = () => {\n const newState = {\n addNoteOpen: false,\n editingNote: null,\n };\n if (!!this.state.editingNote) {\n newState.noteInput = '';\n newState.noteAttachments = [];\n }\n this.setState(newState);\n };\n\n openEditNote = n => {\n this.setState({\n noteAttachments: n.Attachments || [],\n noteInput: n.Note || '',\n addNoteOpen: true,\n editingNote: n.Id,\n noteMenuOpen: null,\n });\n };\n\n confirmAddNote = async () => {\n if (!this.isReadyToSaveNote()) {\n return;\n }\n\n try {\n this.setState({ submittingNote: true });\n const res = await (this.state.editingNote\n ? generalActions.editNote(\n this.props.job.id,\n this.state.editingNote,\n this.state.noteInput,\n this.state.noteAttachments.map(a => {\n return {\n Title: a.Title,\n Source: a.Source,\n };\n }),\n )\n : generalActions.addNote(\n this.props.job.id,\n this.state.noteInput,\n this.state.noteAttachments.map(a => {\n return {\n Title: a.Title,\n Source: a.Source,\n };\n }),\n ));\n this.setState(\n {\n job: res.data.job,\n submittingNote: false,\n addNoteOpen: false,\n noteInput: '',\n noteAttachments: [],\n editingNote: null,\n },\n () => {\n this.props.jobAdded(res.data.job);\n },\n );\n } catch (err) {\n console.log('error');\n console.log(err);\n this.setState({\n submittingNote: false,\n });\n }\n };\n\n renderAttachment(a, i) {\n return (\n <Components.Attachment\n onPress={() => {\n this.onOpenAttachment(a);\n }}\n key={i}\n title={a.Title}\n />\n );\n }\n\n renderNote(n) {\n return (\n <View style={styles.noteContainer} key={n.Id}>\n <View style={styles.noteContainerTop}>\n <Components.ProfilePic Diameter={30} ProfilePic={n.User.profilePic} style={styles.profilePic} />\n <View style={styles.noteContainerTopRight}>\n {this.props.user.uid === n.User.id && (\n <TouchableOpacity\n onPress={() => {\n this.onPressDeleteNote(n);\n }}\n >\n <View style={[styles.noteContainerButtonContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"trash\" type=\"font-awesome\" iconStyle={styles.noteContainerButtonIcon} />\n </View>\n </TouchableOpacity>\n )}\n {this.props.user.uid === n.User.id && (\n <TouchableOpacity\n onPress={() => {\n this.openEditNote(n);\n }}\n >\n <View style={[styles.noteContainerButtonContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"pencil\" type=\"font-awesome\" iconStyle={styles.noteContainerButtonIcon} />\n </View>\n </TouchableOpacity>\n )}\n <View style={styles.noteContainerTopFill}>\n <Text style={styles.noteContainerName}>{n.User.displayName}</Text>\n </View>\n </View>\n </View>\n <Text style={styles.noteContainerText}>{n.Note}</Text>\n {(n.Attachments || []).map((a, i) => this.renderAttachment(a, i))}\n <Text style={styles.noteTimestamp}>\n {moment\n .utc(n.Timestamp)\n .local()\n .format(Helper.TIMESTAMP_FORMAT)}\n </Text>\n </View>\n );\n }\n\n renderNotes() {\n return (this.state.job.Notes || []).map((n, i) => {\n return this.renderNote(n, i);\n });\n }\n\n renderPDF() {\n if (_.isEmpty(this.state.selectedPDF)) {\n return null;\n }\n return (\n <Components.PDFPopup\n source={this.state.selectedPDF.Source}\n onClose={this.onCloseAttachment}\n title={this.state.selectedPDF.Title}\n pdfCount={1}\n />\n );\n }\n\n renderNoteDeleteConfirm() {\n return (\n <Components.ConfirmPopup\n visible={!!this.state.noteToDelete}\n onConfirm={this.onPressConfirmDelete}\n onCancel={this.onPressCancelDelete}\n onClose={this.onPressCancelDelete}\n text=\"Are you sure you want to delete this note?\"\n />\n );\n }\n\n renderFooterContent() {\n if (this.state.submittingNote) {\n return <Components.Spinner />;\n }\n return (\n <Components.InlineButton color={this.props.colourBrandingMain} onPress={this.confirmAddNote} fillTouchable large>\n Save\n </Components.InlineButton>\n );\n }\n\n renderAdd() {\n return (\n <Modal animationType=\"slide\" visible={this.state.addNoteOpen}>\n <KeyboardAvoidingView style={styles.container} behavior={Platform.OS === 'ios' && 'padding'}>\n <Components.Header leftText=\"Cancel\" onPressLeft={this.closeAddNote} text=\"\" />\n <ScrollView style={styles.scrollContainer} contentContainerStyle={styles.innerContainer}>\n <Components.TextStyle type=\"pageHeading\">Add Staff Note</Components.TextStyle>\n <Components.GenericInputSection\n label=\"Content\"\n placeholder=\"Insert your notes here...\"\n value={this.state.noteInput}\n onChangeText={noteInput => this.setState({ noteInput })}\n isValid={() => {\n return !_.isEmpty(this.state.noteInput);\n }}\n autoCapitalize=\"sentences\"\n minHeight={135}\n autoCorrect\n multiline\n autoGrow\n required\n squaredCorners\n sectionStyle={styles.inputSection}\n />\n <Components.GenericInputSection label=\"Attachments\" sectionStyle={styles.inputSection}>\n {this.state.editingNote ? (\n (this.state.noteAttachments || []).map((a, i) => this.renderAttachment(a, i))\n ) : (\n <Components.TextStyle type=\"body\" style={styles.attachmentInfo}>\n PDFs can only be attached to notes from the Community Manager.\n </Components.TextStyle>\n )}\n </Components.GenericInputSection>\n </ScrollView>\n <View style={styles.popupFooter}>{this.renderFooterContent()}</View>\n </KeyboardAvoidingView>\n </Modal>\n );\n }\n\n render() {\n return (\n <View style={styles.container}>\n {this.renderPDF()}\n {this.renderNoteDeleteConfirm()}\n {this.renderAdd()}\n <Components.Header leftIcon=\"angle-left\" onPressLeft={this.onPressBack} text=\"Staff Notes\" />\n <ScrollView style={styles.scrollContainer} contentContainerStyle={styles.innerContainer}>\n {this.renderNotes()}\n </ScrollView>\n <Components.AddButton onPress={this.openAddNote} />\n </View>\n );\n }\n}\n\nconst styles = {\n container: {\n flex: 1,\n position: 'relative',\n backgroundColor: '#fff',\n },\n scrollContainer: {\n flex: 1,\n },\n innerContainer: {\n padding: 16,\n },\n popupFooter: {\n paddingHorizontal: 16,\n paddingBottom: getBottomSpace() + 16,\n },\n noteContainer: {\n ...Helper.getShadowStyle(),\n padding: 8,\n marginBottom: 16,\n },\n noteContainerTop: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n profilePic: {\n marginRight: 8,\n },\n noteContainerTopFill: {\n flex: 1,\n },\n noteContainerName: {\n fontFamily: 'sf-semibold',\n fontSize: 13,\n color: Colours.TEXT_DARKEST,\n },\n noteContainerText: {\n marginTop: 8,\n fontFamily: 'sf-regular',\n fontSize: 13,\n color: Colours.TEXT_DARKEST,\n },\n noteTimestamp: {\n marginTop: 8,\n fontFamily: 'sf-semibold',\n fontSize: 11,\n color: Colours.TEXT_LIGHT,\n },\n noteContainerTopRight: {\n flex: 1,\n flexDirection: 'row-reverse',\n alignItems: 'center',\n },\n noteContainerButtonContainer: {\n width: 24,\n height: 24,\n borderRadius: 12,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 8,\n },\n noteContainerButtonIcon: {\n fontSize: 13,\n color: '#fff',\n },\n inputSection: {\n marginTop: 24,\n },\n sectionHeading: {\n fontFamily: 'qs-bold',\n fontSize: 24,\n color: Colours.TEXT_DARKEST,\n },\n attachmentInfo: {\n marginTop: 8,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n user: state.user,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n colourBrandingLight: Colours.getLightBrandingColourFromState(state),\n jobs: state.jobs.jobs,\n };\n};\n\nexport default connect(mapStateToProps, { jobAdded })(RequestNotes);\n"],"mappings":"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"}