@plusscommunities/pluss-maintenance-app 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module/actions/JobActions.js.map +1 -1
- package/dist/module/actions/index.js.map +1 -1
- package/dist/module/actions/types.js.map +1 -1
- package/dist/module/apis/generalActions.js.map +1 -1
- package/dist/module/apis/index.js.map +1 -1
- package/dist/module/components/MaintenanceList.js.map +1 -1
- package/dist/module/components/MaintenanceListItem.js +47 -22
- package/dist/module/components/MaintenanceListItem.js.map +1 -1
- package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
- package/dist/module/components/StatusSelectorPopup.js.map +1 -1
- package/dist/module/components/WidgetLarge.js.map +1 -1
- package/dist/module/components/WidgetSmall.js.map +1 -1
- package/dist/module/core.config.js.map +1 -1
- package/dist/module/feature.config.js.map +1 -1
- package/dist/module/helper.js.map +1 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/reducers/JobsReducer.js.map +1 -1
- package/dist/module/screens/JobTypePicker.js.map +1 -1
- package/dist/module/screens/MaintenancePage.js.map +1 -1
- package/dist/module/screens/RequestDetail.js.map +1 -1
- package/dist/module/screens/RequestNotes.js.map +1 -1
- package/dist/module/screens/ServiceRequest.js.map +1 -1
- package/package.json +4 -4
- package/src/components/MaintenanceListItem.js +34 -13
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["ServiceRequest.js"],"names":["React","Component","Dimensions","Platform","KeyboardAvoidingView","ScrollView","Text","TouchableOpacity","View","Switch","FlatList","ImageBackground","Keyboard","_","Icon","connect","jobAdded","generalActions","Services","Components","Colours","Helper","Config","PHOTO_SIZE","get","width","MaintenanceRequest","constructor","props","uploadUri","imageUri","images","state","splice","length","uploading","uploadProgress","allowRetry","setState","progress","map","img","uri","percentage","url","replace","thumbNailExists","thumbNailUrl","getThumb300","waitForThumbnails","get1400","dismiss","uploadingImage","submitting","imageUploader","showUploadMenu","description","isHome","times","setTimeout","scrollContainer","scrollTo","y","filter","add","sendMaintenanceRequest","uid","userName","phone","roomNumber","title","type","getSite","site","then","res","data","success","refreshRequest","searchResult","onSubmissionSuccess","confirmationToShow","catch","err","console","log","id","job","getJob","error","checkThumb","setInterval","Promise","all","image","resolve","newImage","push","imageExists","thumbnailsExist","every","clearInterval","index","showFullscreenVideo","currentVideoUrl","fail","showError","types","componentDidMount","userType","displayName","unit","isEmpty","phoneNumber","getJobTypes","componentWillUnmount","onPressBack","navigation","goBack","onPressType","navigate","currentType","onSelectType","pickType","bind","onCloseConfirmationPopup","onBack","onConfirmationReset","self","getDefaultJob","jobId","typeName","submitRequest","connected","message","submit","renderUploadMenu","ref","onUploadStarted","onUploadSuccess","onUploadFailed","onUploadProgress","onLibrarySelected","renderImage","item","isVideoUrl","isVideo","styles","imageContainer","imageContainerNotEmpty","marginLeft","marginTop","imageCircle","addImageIcon","colourBrandingMain","imageBackground","getImageSource","imagePlayContainer","toggleFullscreenVideo","imageControlIcon","removeImage","renderSuccess","padding","flex","backgroundColor","requestSuccess","renderImageList","imageSection","imageListContainer","imageListContainerEmpty","renderForm","paddingBottom","errorText","paddingHorizontal","paddingVertical","flexDirection","justifyContent","sectionTitle","env","strings","JOB_TYPE","color","marginRight","fontSize","alignItems","position","borderBottomWidth","borderBottomColor","LINEGREY","MAINTENANCE_HOME","value","false","true","OS","renderRegisterConfirmation","renderVideoPlayerPopup","render","viewContainer","container","MAINTENANCE","fontFamily","COLOUR_TANGERINE","TEXT_DARK","textAlign","BOXGREY","minHeight","height","borderStyle","borderWidth","borderColor","borderRadius","PINKISH_GREY","top","left","right","bottom","textShadowColor","textShadowOffset","mapStateToProps","user","connection","profilePic","getMainBrandingColourFromState"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport {\n Dimensions,\n Platform,\n KeyboardAvoidingView,\n ScrollView,\n Text,\n TouchableOpacity,\n View,\n Switch,\n FlatList,\n ImageBackground,\n Keyboard,\n} from 'react-native';\nimport _ from 'lodash';\nimport { Icon } from 'react-native-elements';\nimport { connect } from 'react-redux';\nimport { jobAdded } from '../actions';\nimport { generalActions } from '../apis';\nimport { Services } from '../feature.config';\nimport { Components, Colours, Helper, Config } from '../core.config';\n\nconst PHOTO_SIZE = (Dimensions.get('window').width - 64) / 3;\n\nclass MaintenanceRequest extends Component {\n constructor(props) {\n super(props);\n this.state = {\n submitting: false,\n success: false,\n fail: false,\n error: null,\n showError: false,\n\n userName: '',\n roomNumber: '',\n phone: '',\n title: '',\n description: '',\n times: '',\n\n type: 'General',\n\n uploadingImage: false,\n images: [\n {\n add: true,\n },\n ],\n showFullscreenVideo: false,\n currentVideoUrl: '',\n\n isHome: false,\n\n types: [],\n\n confirmationToShow: false,\n };\n this.checkThumb = null;\n }\n\n componentDidMount() {\n if (this.props.userType !== 'KIOSK') {\n this.setState({\n userName: this.props.displayName,\n roomNumber: this.props.unit,\n phone: !_.isEmpty(this.props.phoneNumber) ? this.props.phoneNumber : '',\n });\n }\n this.getJobTypes();\n }\n\n componentWillUnmount() {\n clearInterval(this.checkThumb);\n }\n\n onUploadStarted = (uploadUri, imageUri) => {\n const images = [...this.state.images];\n images.splice(images.length - 1, 0, {\n uploading: true,\n uploadProgress: '0%',\n uploadUri,\n imageUri,\n allowRetry: true,\n });\n\n this.setState({ images });\n };\n\n onUploadProgress = progress => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === progress.uri) {\n img.uploadProgress = progress.percentage;\n img.uploading = true;\n img.allowRetry = true;\n }\n });\n this.setState({ images });\n };\n\n onUploadSuccess = async (uri, uploadUri) => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === uploadUri && img.uploading) {\n img.url = uri.replace('/general/', '/general1400/');\n img.thumbNailExists = false;\n img.thumbNailUrl = Helper.getThumb300(img.url);\n img.allowRetry = true;\n }\n });\n this.setState({ images }, () => this.waitForThumbnails());\n };\n\n onUploadFailed = uploadUri => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === uploadUri) {\n img.uploading = true; // Requried for retry\n img.uploadProgress = '';\n img.allowRetry = true;\n }\n });\n\n this.setState({ images });\n };\n\n onLibrarySelected = uri => {\n const images = [...this.state.images];\n images.splice(images.length - 1, 0, {\n uploading: false,\n allowRetry: false,\n url: Helper.get1400(uri),\n thumbNailExists: true,\n thumbNailUrl: Helper.getThumb300(uri),\n });\n\n this.setState({ images });\n };\n\n onPressBack() {\n Services.navigation.goBack();\n }\n\n onPressType() {\n Services.navigation.navigate('jobTypePicker', {\n currentType: this.state.type,\n types: this.state.types,\n onSelectType: this.pickType.bind(this),\n });\n }\n\n onCloseConfirmationPopup() {\n this.setState({\n confirmationToShow: false,\n });\n Services.navigation.goBack();\n this.props.onBack && this.props.onBack();\n }\n\n onConfirmationReset() {\n this.setState({\n confirmationToShow: false,\n title: '',\n description: '',\n times: '',\n isHome: false,\n uploadingImage: false,\n images: [\n {\n add: true,\n },\n ],\n submitting: false,\n success: false,\n fail: false,\n });\n }\n\n getJobTypes() {\n const self = this;\n generalActions\n .getJobTypes(Helper.getSite(this.props.site))\n .then(res => {\n self.setState({\n types: res.data,\n });\n self.getDefaultJob();\n })\n .catch(() => {});\n }\n\n getDefaultJob() {\n if (this.state.types.length !== 0 && this.state.jobId == null) {\n this.setState({ type: this.state.types[0].typeName });\n }\n }\n\n pickType(type) {\n this.setState({ type });\n }\n\n showUploadMenu = () => {\n Keyboard.dismiss();\n if (this.state.uploadingImage || this.state.submitting) {\n return;\n }\n this.imageUploader.showUploadMenu();\n };\n\n submit = async () => {\n this.setState({ submitting: true });\n\n let description = this.state.description;\n\n if (this.state.isHome) {\n description = description + `. -- Times Available: ${this.state.times}`;\n }\n\n setTimeout(() => {\n this.scrollContainer.scrollTo({ y: 0 });\n }, 100);\n\n const images = _.filter(this.state.images, img => {\n return !img.uploading && !img.add;\n }).map(img => {\n return img.url;\n });\n\n generalActions\n .sendMaintenanceRequest(\n this.props.uid,\n this.state.userName,\n this.state.phone,\n this.state.roomNumber,\n this.state.title,\n description,\n null,\n this.state.type,\n images,\n Helper.getSite(this.props.site),\n this.state.isHome,\n this.state.times,\n )\n .then(res => {\n if (res.data.success) {\n this.refreshRequest(res.data.searchResult);\n if (this.props.onSubmissionSuccess) this.props.onSubmissionSuccess(res.data);\n this.setState({\n submitting: false,\n success: true,\n confirmationToShow: true,\n });\n } else {\n this.setState({\n submitting: false,\n });\n }\n })\n .catch(err => {\n console.log('maintenance submission fail.');\n console.log(err);\n this.setState({\n submitting: false,\n });\n });\n };\n\n refreshRequest = async id => {\n try {\n const job = await generalActions.getJob(Helper.getSite(this.props.site), id);\n // console.log('refreshRequest', job?.data);\n this.props.jobAdded(job.data);\n } catch (error) {\n console.log('refreshRequest error', error);\n }\n };\n\n submitRequest() {\n if (this.state.submitting || !this.props.connected) {\n if (!this.props.connected) {\n this.setState({ error: { message: 'No internet connection detected' } });\n }\n return;\n }\n if (this.state.uploadingImage) {\n return;\n }\n this.setState({ error: null, showError: false });\n if (this.state.title.length === 0 || !this.state.roomNumber || this.state.roomNumber.length === 0) {\n this.setState({ showError: true });\n return;\n }\n if (this.state.isHome && this.state.times.length < 2) {\n this.setState({ showError: true });\n return;\n }\n this.submit();\n }\n\n waitForThumbnails = () => {\n if (this.checkThumb) return;\n\n this.checkThumb = setInterval(async () => {\n const images = [];\n await Promise.all(\n this.state.images.map(image => {\n return new Promise(async resolve => {\n const newImage = { ...image };\n images.push(newImage);\n if (newImage.url && !newImage.thumbNailExists) {\n newImage.uploading = false;\n newImage.allowRetry = false;\n newImage.thumbNailExists = await Helper.imageExists(newImage.thumbNailUrl);\n resolve(newImage.thumbNailExists);\n }\n resolve(true);\n });\n }),\n );\n const thumbnailsExist = images.every(image => !image.url || image.thumbNailExists);\n if (thumbnailsExist) {\n clearInterval(this.checkThumb);\n this.checkThumb = null;\n this.setState({ images });\n }\n }, 2000);\n };\n\n removeImage = index => {\n const images = [...this.state.images];\n images.splice(index, 1);\n\n this.setState({ images });\n };\n\n toggleFullscreenVideo = url => {\n if (typeof url !== 'string') url = '';\n this.setState({ showFullscreenVideo: url.length > 0, currentVideoUrl: url });\n };\n\n renderUploadMenu() {\n return (\n <Components.ImageUploader\n ref={ref => (this.imageUploader = ref)}\n onUploadStarted={this.onUploadStarted}\n onUploadSuccess={this.onUploadSuccess}\n onUploadFailed={this.onUploadFailed}\n onUploadProgress={this.onUploadProgress}\n onLibrarySelected={this.onLibrarySelected}\n size={{ width: 1400 }}\n quality={0.8}\n fileName={'serviceImage'}\n popupTitle={'Upload Image'}\n userId={this.props.uid}\n allowsEditing={false}\n multiple\n hideLibrary\n />\n );\n }\n\n renderImage(item, index) {\n const isVideoUrl = Helper.isVideo(item.url);\n\n if (item.add) {\n return (\n <TouchableOpacity activeOpacity={0.8} onPress={this.showUploadMenu}>\n <View\n style={[\n styles.imageContainer,\n this.state.images.length > 1 && styles.imageContainerNotEmpty,\n index % 3 === 0 && { marginLeft: 0 },\n index > 2 && { marginTop: 8 },\n ]}\n >\n <View style={styles.imageCircle}>\n <Icon name=\"camera\" type=\"font-awesome\" iconStyle={styles.addImageIcon} />\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n return (\n <View\n style={[\n styles.imageContainer,\n this.state.images.length > 1 && styles.imageContainerNotEmpty,\n index % 3 === 0 && { marginLeft: 0 },\n index > 2 && { marginTop: 8 },\n ]}\n >\n {item.uploading ? (\n <Components.ImageUploadProgress uploader={this.imageUploader} image={item} color={this.props.colourBrandingMain} />\n ) : (\n <ImageBackground\n style={styles.imageBackground}\n source={Helper.getImageSource(item.thumbNailExists ? item.thumbNailUrl : item.url)}\n >\n {isVideoUrl && (\n <View style={styles.imagePlayContainer}>\n <TouchableOpacity onPress={this.toggleFullscreenVideo.bind(this, item.url)}>\n <Icon name=\"play\" type=\"font-awesome\" iconStyle={styles.imageControlIcon} />\n </TouchableOpacity>\n </View>\n )}\n <TouchableOpacity style={styles.removeImage} onPress={this.removeImage.bind(this, index)}>\n <Icon name=\"remove\" type=\"font-awesome\" iconStyle={styles.imageControlIcon} style={styles.removeImage} />\n </TouchableOpacity>\n </ImageBackground>\n )}\n </View>\n );\n }\n\n renderSuccess() {\n return (\n <View style={{ padding: 16, flex: 1, backgroundColor: '#fff' }}>\n <Text style={styles.requestSuccess}>Your request has been submitted. Thank you.</Text>\n </View>\n );\n }\n\n renderImageList() {\n return (\n <View style={styles.imageSection}>\n <View style={[styles.imageListContainer, this.state.images.length < 2 && styles.imageListContainerEmpty]}>\n <FlatList\n keyboardShouldPersistTaps=\"always\"\n enableEmptySections\n data={this.state.images}\n renderItem={({ item, index }) => this.renderImage(item, index)}\n keyExtractor={(item, index) => index}\n numColumns={3}\n />\n </View>\n </View>\n );\n }\n\n renderForm() {\n return (\n <View style={{ flex: 1 }}>\n <ScrollView keyboardShouldPersistTaps=\"always\" style={{ flex: 1 }} ref={ref => (this.scrollContainer = ref)}>\n <View style={{ paddingBottom: 2 }}>\n <Components.LoadingIndicator visible={this.state.submitting} />\n {this.state.error && <Text style={styles.errorText}>{this.state.error}</Text>}\n <Components.FormCard style={{ marginTop: 16 }}>\n <Components.FormCardSection\n label={'Name'}\n placeholder={'Enter your name'}\n textValue={this.state.userName}\n onChangeText={userName => this.setState({ userName })}\n editable={this.props.userType === 'KIOSK' && this.state.submitting === false}\n isValid={() => {\n return this.state.userName.length > 1;\n }}\n required\n errorText=\"Please enter your name.\"\n showError={this.state.showError && this.state.userName.length < 2}\n hasUnderline\n />\n <Components.FormCardSection\n label={'Contact number'}\n placeholder={'Enter phone number'}\n textValue={this.state.phone}\n onChangeText={phone => this.setState({ phone })}\n editable={this.state.submitting === false}\n hasUnderline\n keyboardType={'phone-pad'}\n />\n <Components.FormCardSection\n label={'Address'}\n placeholder={'Enter your address'}\n textValue={this.state.roomNumber}\n onChangeText={roomNumber => this.setState({ roomNumber })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.roomNumber && this.state.roomNumber.length > 1;\n }}\n required\n errorText=\"Please provide your address.\"\n showError={this.state.showError && this.state.roomNumber && this.state.roomNumber.length < 2}\n />\n </Components.FormCard>\n <Components.FormCard\n style={{ marginTop: 16, paddingHorizontal: 24, paddingVertical: 16, flexDirection: 'row', justifyContent: 'space-between' }}\n >\n <Text style={styles.sectionTitle}>{Config.env.strings.JOB_TYPE}</Text>\n <TouchableOpacity onPress={this.onPressType.bind(this)}>\n <View style={{ flexDirection: 'row' }}>\n <Text style={[styles.sectionTitle, { color: this.props.colourBrandingMain, marginRight: 16 }]}>{this.state.type}</Text>\n <Icon\n name=\"angle-right\"\n type=\"font-awesome\"\n iconStyle={[styles.sectionTitle, { fontSize: 20, color: this.props.colourBrandingMain }]}\n />\n </View>\n </TouchableOpacity>\n </Components.FormCard>\n <Components.FormCard style={{ marginTop: 16 }}>\n <Components.FormCardSection\n label={'Title'}\n placeholder={'Enter a title for your request'}\n textValue={this.state.title}\n onChangeText={title => this.setState({ title })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.title.length > 1;\n }}\n required\n errorText=\"Please provide a title.\"\n showError={this.state.showError && this.state.title.length < 2}\n autoCorrect\n multiline\n autoGrow\n />\n <Components.FormCardSection\n label={'Description'}\n placeholder={'Describe your request here in detail'}\n textValue={this.state.description}\n onChangeText={description => this.setState({ description })}\n editable={this.state.submitting === false}\n hasUnderline\n autoCorrect\n multiline\n autoGrow\n />\n </Components.FormCard>\n <Components.FormCard style={{ marginTop: 16, paddingHorizontal: 24 }}>\n <View\n style={[\n {\n width: '100%',\n paddingVertical: 16,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n },\n this.state.isHome && { borderBottomWidth: 1, borderBottomColor: Colours.LINEGREY },\n ]}\n >\n <Text style={styles.sectionTitle}>{Config.env.strings.MAINTENANCE_HOME}</Text>\n <Switch\n value={this.state.isHome}\n disabled={this.state.submitting}\n onValueChange={value => this.setState({ isHome: value })}\n trackColor={{ false: '#ddd', true: this.props.colourBrandingMain }}\n thumbColor={Platform.OS === 'android' ? '#fff' : null}\n />\n </View>\n {this.state.isHome && (\n <Components.FormCardSection\n label={'Available times'}\n placeholder={'Describe your available times here in detail.'}\n textValue={this.state.times}\n onChangeText={times => this.setState({ times })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.times.length > 1;\n }}\n required\n errorText=\"Please provide available times.\"\n showError={this.state.showError && this.state.isHome && this.state.times.length < 2}\n minHeight={40}\n autoCorrect\n multiline\n autoGrow\n />\n )}\n </Components.FormCard>\n {this.renderImageList()}\n </View>\n </ScrollView>\n </View>\n );\n }\n\n renderRegisterConfirmation() {\n return (\n <Components.ConfirmationPopup\n confirmText={'Request submitted'}\n repeatText={'Submit another'}\n visible={this.state.confirmationToShow}\n onClose={this.onCloseConfirmationPopup.bind(this)}\n onPressAction={this.onConfirmationReset.bind(this)}\n />\n );\n }\n\n renderVideoPlayerPopup() {\n const { showFullscreenVideo, currentVideoUrl } = this.state;\n if (!currentVideoUrl) return;\n\n return (\n <Components.VideoPopup\n uri={currentVideoUrl}\n visible={showFullscreenVideo}\n showFullscreenButton={false}\n onClose={this.toggleFullscreenVideo}\n />\n );\n }\n\n render() {\n return (\n <KeyboardAvoidingView behavior={Platform.OS === 'ios' && 'padding'} style={styles.viewContainer}>\n {this.renderUploadMenu()}\n <View style={styles.container}>\n <Components.Header\n leftIcon=\"angle-left\"\n onPressLeft={this.onPressBack.bind(this)}\n text={Config.env.strings.MAINTENANCE}\n rightText={this.state.submitting || this.state.success ? null : 'Done'}\n onPressRight={this.submitRequest.bind(this)}\n absoluteRight\n />\n {this.renderForm()}\n </View>\n {this.renderRegisterConfirmation()}\n {this.renderVideoPlayerPopup()}\n </KeyboardAvoidingView>\n );\n }\n}\n\nconst styles = {\n viewContainer: {\n flex: 1,\n backgroundColor: '#fff',\n },\n container: {\n flex: 1,\n position: 'relative',\n backgroundColor: '#f0f0f5',\n },\n errorText: {\n fontFamily: 'sf-regular',\n color: Colours.COLOUR_TANGERINE,\n fontSize: 16,\n },\n requestSuccess: {\n fontFamily: 'sf-regular',\n color: Colours.TEXT_DARK,\n fontSize: 17,\n textAlign: 'center',\n },\n sectionTitle: {\n fontFamily: 'sf-regular',\n fontSize: 17,\n color: Colours.TEXT_DARK,\n },\n imageListContainer: {\n marginTop: 8,\n padding: 8,\n flexDirection: 'row',\n backgroundColor: Colours.BOXGREY,\n minHeight: 106,\n },\n imageListContainerEmpty: {\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n },\n imageContainer: {\n width: PHOTO_SIZE,\n height: PHOTO_SIZE,\n borderStyle: 'dashed',\n justifyContent: 'center',\n alignItems: 'center',\n borderWidth: 1,\n borderColor: Colours.LINEGREY,\n borderRadius: 4,\n marginLeft: 8,\n },\n imageContainerNotEmpty: {\n borderWidth: 1,\n borderColor: Colours.LINEGREY,\n backgroundColor: '#fff',\n borderStyle: 'dashed',\n },\n imageBackground: {\n flex: 1,\n height: '100%',\n width: '100%',\n borderRadius: 4,\n },\n imageCircle: {\n width: 90,\n height: 90,\n borderRadius: 45,\n backgroundColor: Colours.PINKISH_GREY,\n justifyContent: 'center',\n },\n addImageIcon: {\n color: '#fff',\n fontSize: 32,\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: 20,\n textShadowColor: 'rgba(0,0,0,0.3)',\n textShadowOffset: { width: 2, height: 2 },\n },\n removeImage: {\n position: 'absolute',\n top: 0,\n right: 0,\n padding: 4,\n width: 40,\n height: 40,\n alignItems: 'center',\n justifyContent: 'center',\n },\n};\n\nconst mapStateToProps = state => {\n const { user, connection } = state;\n const { displayName, profilePic, uid, site, unit, phoneNumber } = user;\n return {\n connected: connection.connected,\n userType: user.type,\n displayName,\n profilePic,\n uid,\n site,\n unit,\n phoneNumber,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, { jobAdded })(MaintenanceRequest);\n"]}
|
1
|
+
{"version":3,"names":["React","Component","Dimensions","Platform","KeyboardAvoidingView","ScrollView","Text","TouchableOpacity","View","Switch","FlatList","ImageBackground","Keyboard","_","Icon","connect","jobAdded","generalActions","Services","Components","Colours","Helper","Config","PHOTO_SIZE","get","width","MaintenanceRequest","constructor","props","uploadUri","imageUri","images","state","splice","length","uploading","uploadProgress","allowRetry","setState","progress","map","img","uri","percentage","url","replace","thumbNailExists","thumbNailUrl","getThumb300","waitForThumbnails","get1400","dismiss","uploadingImage","submitting","imageUploader","showUploadMenu","description","isHome","times","setTimeout","scrollContainer","scrollTo","y","filter","add","sendMaintenanceRequest","uid","userName","phone","roomNumber","title","type","getSite","site","then","res","data","success","refreshRequest","searchResult","onSubmissionSuccess","confirmationToShow","catch","err","console","log","id","job","getJob","error","checkThumb","setInterval","Promise","all","image","resolve","newImage","push","imageExists","thumbnailsExist","every","clearInterval","index","showFullscreenVideo","currentVideoUrl","fail","showError","types","componentDidMount","userType","displayName","unit","isEmpty","phoneNumber","getJobTypes","componentWillUnmount","onPressBack","navigation","goBack","onPressType","navigate","currentType","onSelectType","pickType","bind","onCloseConfirmationPopup","onBack","onConfirmationReset","self","getDefaultJob","jobId","typeName","submitRequest","connected","message","submit","renderUploadMenu","ref","onUploadStarted","onUploadSuccess","onUploadFailed","onUploadProgress","onLibrarySelected","renderImage","item","isVideoUrl","isVideo","styles","imageContainer","imageContainerNotEmpty","marginLeft","marginTop","imageCircle","addImageIcon","colourBrandingMain","imageBackground","getImageSource","imagePlayContainer","toggleFullscreenVideo","imageControlIcon","removeImage","renderSuccess","padding","flex","backgroundColor","requestSuccess","renderImageList","imageSection","imageListContainer","imageListContainerEmpty","renderForm","paddingBottom","errorText","paddingHorizontal","paddingVertical","flexDirection","justifyContent","sectionTitle","env","strings","JOB_TYPE","color","marginRight","fontSize","alignItems","position","borderBottomWidth","borderBottomColor","LINEGREY","MAINTENANCE_HOME","value","false","true","OS","renderRegisterConfirmation","renderVideoPlayerPopup","render","viewContainer","container","MAINTENANCE","fontFamily","COLOUR_TANGERINE","TEXT_DARK","textAlign","BOXGREY","minHeight","height","borderStyle","borderWidth","borderColor","borderRadius","PINKISH_GREY","top","left","right","bottom","textShadowColor","textShadowOffset","mapStateToProps","user","connection","profilePic","getMainBrandingColourFromState"],"sources":["ServiceRequest.js"],"sourcesContent":["import React, { Component } from 'react';\nimport {\n Dimensions,\n Platform,\n KeyboardAvoidingView,\n ScrollView,\n Text,\n TouchableOpacity,\n View,\n Switch,\n FlatList,\n ImageBackground,\n Keyboard,\n} from 'react-native';\nimport _ from 'lodash';\nimport { Icon } from 'react-native-elements';\nimport { connect } from 'react-redux';\nimport { jobAdded } from '../actions';\nimport { generalActions } from '../apis';\nimport { Services } from '../feature.config';\nimport { Components, Colours, Helper, Config } from '../core.config';\n\nconst PHOTO_SIZE = (Dimensions.get('window').width - 64) / 3;\n\nclass MaintenanceRequest extends Component {\n constructor(props) {\n super(props);\n this.state = {\n submitting: false,\n success: false,\n fail: false,\n error: null,\n showError: false,\n\n userName: '',\n roomNumber: '',\n phone: '',\n title: '',\n description: '',\n times: '',\n\n type: 'General',\n\n uploadingImage: false,\n images: [\n {\n add: true,\n },\n ],\n showFullscreenVideo: false,\n currentVideoUrl: '',\n\n isHome: false,\n\n types: [],\n\n confirmationToShow: false,\n };\n this.checkThumb = null;\n }\n\n componentDidMount() {\n if (this.props.userType !== 'KIOSK') {\n this.setState({\n userName: this.props.displayName,\n roomNumber: this.props.unit,\n phone: !_.isEmpty(this.props.phoneNumber) ? this.props.phoneNumber : '',\n });\n }\n this.getJobTypes();\n }\n\n componentWillUnmount() {\n clearInterval(this.checkThumb);\n }\n\n onUploadStarted = (uploadUri, imageUri) => {\n const images = [...this.state.images];\n images.splice(images.length - 1, 0, {\n uploading: true,\n uploadProgress: '0%',\n uploadUri,\n imageUri,\n allowRetry: true,\n });\n\n this.setState({ images });\n };\n\n onUploadProgress = progress => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === progress.uri) {\n img.uploadProgress = progress.percentage;\n img.uploading = true;\n img.allowRetry = true;\n }\n });\n this.setState({ images });\n };\n\n onUploadSuccess = async (uri, uploadUri) => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === uploadUri && img.uploading) {\n img.url = uri.replace('/general/', '/general1400/');\n img.thumbNailExists = false;\n img.thumbNailUrl = Helper.getThumb300(img.url);\n img.allowRetry = true;\n }\n });\n this.setState({ images }, () => this.waitForThumbnails());\n };\n\n onUploadFailed = uploadUri => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === uploadUri) {\n img.uploading = true; // Requried for retry\n img.uploadProgress = '';\n img.allowRetry = true;\n }\n });\n\n this.setState({ images });\n };\n\n onLibrarySelected = uri => {\n const images = [...this.state.images];\n images.splice(images.length - 1, 0, {\n uploading: false,\n allowRetry: false,\n url: Helper.get1400(uri),\n thumbNailExists: true,\n thumbNailUrl: Helper.getThumb300(uri),\n });\n\n this.setState({ images });\n };\n\n onPressBack() {\n Services.navigation.goBack();\n }\n\n onPressType() {\n Services.navigation.navigate('jobTypePicker', {\n currentType: this.state.type,\n types: this.state.types,\n onSelectType: this.pickType.bind(this),\n });\n }\n\n onCloseConfirmationPopup() {\n this.setState({\n confirmationToShow: false,\n });\n Services.navigation.goBack();\n this.props.onBack && this.props.onBack();\n }\n\n onConfirmationReset() {\n this.setState({\n confirmationToShow: false,\n title: '',\n description: '',\n times: '',\n isHome: false,\n uploadingImage: false,\n images: [\n {\n add: true,\n },\n ],\n submitting: false,\n success: false,\n fail: false,\n });\n }\n\n getJobTypes() {\n const self = this;\n generalActions\n .getJobTypes(Helper.getSite(this.props.site))\n .then(res => {\n self.setState({\n types: res.data,\n });\n self.getDefaultJob();\n })\n .catch(() => {});\n }\n\n getDefaultJob() {\n if (this.state.types.length !== 0 && this.state.jobId == null) {\n this.setState({ type: this.state.types[0].typeName });\n }\n }\n\n pickType(type) {\n this.setState({ type });\n }\n\n showUploadMenu = () => {\n Keyboard.dismiss();\n if (this.state.uploadingImage || this.state.submitting) {\n return;\n }\n this.imageUploader.showUploadMenu();\n };\n\n submit = async () => {\n this.setState({ submitting: true });\n\n let description = this.state.description;\n\n if (this.state.isHome) {\n description = description + `. -- Times Available: ${this.state.times}`;\n }\n\n setTimeout(() => {\n this.scrollContainer.scrollTo({ y: 0 });\n }, 100);\n\n const images = _.filter(this.state.images, img => {\n return !img.uploading && !img.add;\n }).map(img => {\n return img.url;\n });\n\n generalActions\n .sendMaintenanceRequest(\n this.props.uid,\n this.state.userName,\n this.state.phone,\n this.state.roomNumber,\n this.state.title,\n description,\n null,\n this.state.type,\n images,\n Helper.getSite(this.props.site),\n this.state.isHome,\n this.state.times,\n )\n .then(res => {\n if (res.data.success) {\n this.refreshRequest(res.data.searchResult);\n if (this.props.onSubmissionSuccess) this.props.onSubmissionSuccess(res.data);\n this.setState({\n submitting: false,\n success: true,\n confirmationToShow: true,\n });\n } else {\n this.setState({\n submitting: false,\n });\n }\n })\n .catch(err => {\n console.log('maintenance submission fail.');\n console.log(err);\n this.setState({\n submitting: false,\n });\n });\n };\n\n refreshRequest = async id => {\n try {\n const job = await generalActions.getJob(Helper.getSite(this.props.site), id);\n // console.log('refreshRequest', job?.data);\n this.props.jobAdded(job.data);\n } catch (error) {\n console.log('refreshRequest error', error);\n }\n };\n\n submitRequest() {\n if (this.state.submitting || !this.props.connected) {\n if (!this.props.connected) {\n this.setState({ error: { message: 'No internet connection detected' } });\n }\n return;\n }\n if (this.state.uploadingImage) {\n return;\n }\n this.setState({ error: null, showError: false });\n if (this.state.title.length === 0 || !this.state.roomNumber || this.state.roomNumber.length === 0) {\n this.setState({ showError: true });\n return;\n }\n if (this.state.isHome && this.state.times.length < 2) {\n this.setState({ showError: true });\n return;\n }\n this.submit();\n }\n\n waitForThumbnails = () => {\n if (this.checkThumb) return;\n\n this.checkThumb = setInterval(async () => {\n const images = [];\n await Promise.all(\n this.state.images.map(image => {\n return new Promise(async resolve => {\n const newImage = { ...image };\n images.push(newImage);\n if (newImage.url && !newImage.thumbNailExists) {\n newImage.uploading = false;\n newImage.allowRetry = false;\n newImage.thumbNailExists = await Helper.imageExists(newImage.thumbNailUrl);\n resolve(newImage.thumbNailExists);\n }\n resolve(true);\n });\n }),\n );\n const thumbnailsExist = images.every(image => !image.url || image.thumbNailExists);\n if (thumbnailsExist) {\n clearInterval(this.checkThumb);\n this.checkThumb = null;\n this.setState({ images });\n }\n }, 2000);\n };\n\n removeImage = index => {\n const images = [...this.state.images];\n images.splice(index, 1);\n\n this.setState({ images });\n };\n\n toggleFullscreenVideo = url => {\n if (typeof url !== 'string') url = '';\n this.setState({ showFullscreenVideo: url.length > 0, currentVideoUrl: url });\n };\n\n renderUploadMenu() {\n return (\n <Components.ImageUploader\n ref={ref => (this.imageUploader = ref)}\n onUploadStarted={this.onUploadStarted}\n onUploadSuccess={this.onUploadSuccess}\n onUploadFailed={this.onUploadFailed}\n onUploadProgress={this.onUploadProgress}\n onLibrarySelected={this.onLibrarySelected}\n size={{ width: 1400 }}\n quality={0.8}\n fileName={'serviceImage'}\n popupTitle={'Upload Image'}\n userId={this.props.uid}\n allowsEditing={false}\n multiple\n hideLibrary\n />\n );\n }\n\n renderImage(item, index) {\n const isVideoUrl = Helper.isVideo(item.url);\n\n if (item.add) {\n return (\n <TouchableOpacity activeOpacity={0.8} onPress={this.showUploadMenu}>\n <View\n style={[\n styles.imageContainer,\n this.state.images.length > 1 && styles.imageContainerNotEmpty,\n index % 3 === 0 && { marginLeft: 0 },\n index > 2 && { marginTop: 8 },\n ]}\n >\n <View style={styles.imageCircle}>\n <Icon name=\"camera\" type=\"font-awesome\" iconStyle={styles.addImageIcon} />\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n return (\n <View\n style={[\n styles.imageContainer,\n this.state.images.length > 1 && styles.imageContainerNotEmpty,\n index % 3 === 0 && { marginLeft: 0 },\n index > 2 && { marginTop: 8 },\n ]}\n >\n {item.uploading ? (\n <Components.ImageUploadProgress uploader={this.imageUploader} image={item} color={this.props.colourBrandingMain} />\n ) : (\n <ImageBackground\n style={styles.imageBackground}\n source={Helper.getImageSource(item.thumbNailExists ? item.thumbNailUrl : item.url)}\n >\n {isVideoUrl && (\n <View style={styles.imagePlayContainer}>\n <TouchableOpacity onPress={this.toggleFullscreenVideo.bind(this, item.url)}>\n <Icon name=\"play\" type=\"font-awesome\" iconStyle={styles.imageControlIcon} />\n </TouchableOpacity>\n </View>\n )}\n <TouchableOpacity style={styles.removeImage} onPress={this.removeImage.bind(this, index)}>\n <Icon name=\"remove\" type=\"font-awesome\" iconStyle={styles.imageControlIcon} style={styles.removeImage} />\n </TouchableOpacity>\n </ImageBackground>\n )}\n </View>\n );\n }\n\n renderSuccess() {\n return (\n <View style={{ padding: 16, flex: 1, backgroundColor: '#fff' }}>\n <Text style={styles.requestSuccess}>Your request has been submitted. Thank you.</Text>\n </View>\n );\n }\n\n renderImageList() {\n return (\n <View style={styles.imageSection}>\n <View style={[styles.imageListContainer, this.state.images.length < 2 && styles.imageListContainerEmpty]}>\n <FlatList\n keyboardShouldPersistTaps=\"always\"\n enableEmptySections\n data={this.state.images}\n renderItem={({ item, index }) => this.renderImage(item, index)}\n keyExtractor={(item, index) => index}\n numColumns={3}\n />\n </View>\n </View>\n );\n }\n\n renderForm() {\n return (\n <View style={{ flex: 1 }}>\n <ScrollView keyboardShouldPersistTaps=\"always\" style={{ flex: 1 }} ref={ref => (this.scrollContainer = ref)}>\n <View style={{ paddingBottom: 2 }}>\n <Components.LoadingIndicator visible={this.state.submitting} />\n {this.state.error && <Text style={styles.errorText}>{this.state.error}</Text>}\n <Components.FormCard style={{ marginTop: 16 }}>\n <Components.FormCardSection\n label={'Name'}\n placeholder={'Enter your name'}\n textValue={this.state.userName}\n onChangeText={userName => this.setState({ userName })}\n editable={this.props.userType === 'KIOSK' && this.state.submitting === false}\n isValid={() => {\n return this.state.userName.length > 1;\n }}\n required\n errorText=\"Please enter your name.\"\n showError={this.state.showError && this.state.userName.length < 2}\n hasUnderline\n />\n <Components.FormCardSection\n label={'Contact number'}\n placeholder={'Enter phone number'}\n textValue={this.state.phone}\n onChangeText={phone => this.setState({ phone })}\n editable={this.state.submitting === false}\n hasUnderline\n keyboardType={'phone-pad'}\n />\n <Components.FormCardSection\n label={'Address'}\n placeholder={'Enter your address'}\n textValue={this.state.roomNumber}\n onChangeText={roomNumber => this.setState({ roomNumber })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.roomNumber && this.state.roomNumber.length > 1;\n }}\n required\n errorText=\"Please provide your address.\"\n showError={this.state.showError && this.state.roomNumber && this.state.roomNumber.length < 2}\n />\n </Components.FormCard>\n <Components.FormCard\n style={{ marginTop: 16, paddingHorizontal: 24, paddingVertical: 16, flexDirection: 'row', justifyContent: 'space-between' }}\n >\n <Text style={styles.sectionTitle}>{Config.env.strings.JOB_TYPE}</Text>\n <TouchableOpacity onPress={this.onPressType.bind(this)}>\n <View style={{ flexDirection: 'row' }}>\n <Text style={[styles.sectionTitle, { color: this.props.colourBrandingMain, marginRight: 16 }]}>{this.state.type}</Text>\n <Icon\n name=\"angle-right\"\n type=\"font-awesome\"\n iconStyle={[styles.sectionTitle, { fontSize: 20, color: this.props.colourBrandingMain }]}\n />\n </View>\n </TouchableOpacity>\n </Components.FormCard>\n <Components.FormCard style={{ marginTop: 16 }}>\n <Components.FormCardSection\n label={'Title'}\n placeholder={'Enter a title for your request'}\n textValue={this.state.title}\n onChangeText={title => this.setState({ title })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.title.length > 1;\n }}\n required\n errorText=\"Please provide a title.\"\n showError={this.state.showError && this.state.title.length < 2}\n autoCorrect\n multiline\n autoGrow\n />\n <Components.FormCardSection\n label={'Description'}\n placeholder={'Describe your request here in detail'}\n textValue={this.state.description}\n onChangeText={description => this.setState({ description })}\n editable={this.state.submitting === false}\n hasUnderline\n autoCorrect\n multiline\n autoGrow\n />\n </Components.FormCard>\n <Components.FormCard style={{ marginTop: 16, paddingHorizontal: 24 }}>\n <View\n style={[\n {\n width: '100%',\n paddingVertical: 16,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n },\n this.state.isHome && { borderBottomWidth: 1, borderBottomColor: Colours.LINEGREY },\n ]}\n >\n <Text style={styles.sectionTitle}>{Config.env.strings.MAINTENANCE_HOME}</Text>\n <Switch\n value={this.state.isHome}\n disabled={this.state.submitting}\n onValueChange={value => this.setState({ isHome: value })}\n trackColor={{ false: '#ddd', true: this.props.colourBrandingMain }}\n thumbColor={Platform.OS === 'android' ? '#fff' : null}\n />\n </View>\n {this.state.isHome && (\n <Components.FormCardSection\n label={'Available times'}\n placeholder={'Describe your available times here in detail.'}\n textValue={this.state.times}\n onChangeText={times => this.setState({ times })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.times.length > 1;\n }}\n required\n errorText=\"Please provide available times.\"\n showError={this.state.showError && this.state.isHome && this.state.times.length < 2}\n minHeight={40}\n autoCorrect\n multiline\n autoGrow\n />\n )}\n </Components.FormCard>\n {this.renderImageList()}\n </View>\n </ScrollView>\n </View>\n );\n }\n\n renderRegisterConfirmation() {\n return (\n <Components.ConfirmationPopup\n confirmText={'Request submitted'}\n repeatText={'Submit another'}\n visible={this.state.confirmationToShow}\n onClose={this.onCloseConfirmationPopup.bind(this)}\n onPressAction={this.onConfirmationReset.bind(this)}\n />\n );\n }\n\n renderVideoPlayerPopup() {\n const { showFullscreenVideo, currentVideoUrl } = this.state;\n if (!currentVideoUrl) return;\n\n return (\n <Components.VideoPopup\n uri={currentVideoUrl}\n visible={showFullscreenVideo}\n showFullscreenButton={false}\n onClose={this.toggleFullscreenVideo}\n />\n );\n }\n\n render() {\n return (\n <KeyboardAvoidingView behavior={Platform.OS === 'ios' && 'padding'} style={styles.viewContainer}>\n {this.renderUploadMenu()}\n <View style={styles.container}>\n <Components.Header\n leftIcon=\"angle-left\"\n onPressLeft={this.onPressBack.bind(this)}\n text={Config.env.strings.MAINTENANCE}\n rightText={this.state.submitting || this.state.success ? null : 'Done'}\n onPressRight={this.submitRequest.bind(this)}\n absoluteRight\n />\n {this.renderForm()}\n </View>\n {this.renderRegisterConfirmation()}\n {this.renderVideoPlayerPopup()}\n </KeyboardAvoidingView>\n );\n }\n}\n\nconst styles = {\n viewContainer: {\n flex: 1,\n backgroundColor: '#fff',\n },\n container: {\n flex: 1,\n position: 'relative',\n backgroundColor: '#f0f0f5',\n },\n errorText: {\n fontFamily: 'sf-regular',\n color: Colours.COLOUR_TANGERINE,\n fontSize: 16,\n },\n requestSuccess: {\n fontFamily: 'sf-regular',\n color: Colours.TEXT_DARK,\n fontSize: 17,\n textAlign: 'center',\n },\n sectionTitle: {\n fontFamily: 'sf-regular',\n fontSize: 17,\n color: Colours.TEXT_DARK,\n },\n imageListContainer: {\n marginTop: 8,\n padding: 8,\n flexDirection: 'row',\n backgroundColor: Colours.BOXGREY,\n minHeight: 106,\n },\n imageListContainerEmpty: {\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n },\n imageContainer: {\n width: PHOTO_SIZE,\n height: PHOTO_SIZE,\n borderStyle: 'dashed',\n justifyContent: 'center',\n alignItems: 'center',\n borderWidth: 1,\n borderColor: Colours.LINEGREY,\n borderRadius: 4,\n marginLeft: 8,\n },\n imageContainerNotEmpty: {\n borderWidth: 1,\n borderColor: Colours.LINEGREY,\n backgroundColor: '#fff',\n borderStyle: 'dashed',\n },\n imageBackground: {\n flex: 1,\n height: '100%',\n width: '100%',\n borderRadius: 4,\n },\n imageCircle: {\n width: 90,\n height: 90,\n borderRadius: 45,\n backgroundColor: Colours.PINKISH_GREY,\n justifyContent: 'center',\n },\n addImageIcon: {\n color: '#fff',\n fontSize: 32,\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: 20,\n textShadowColor: 'rgba(0,0,0,0.3)',\n textShadowOffset: { width: 2, height: 2 },\n },\n removeImage: {\n position: 'absolute',\n top: 0,\n right: 0,\n padding: 4,\n width: 40,\n height: 40,\n alignItems: 'center',\n justifyContent: 'center',\n },\n};\n\nconst mapStateToProps = state => {\n const { user, connection } = state;\n const { displayName, profilePic, uid, site, unit, phoneNumber } = user;\n return {\n connected: connection.connected,\n userType: user.type,\n displayName,\n profilePic,\n uid,\n site,\n unit,\n phoneNumber,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, { jobAdded })(MaintenanceRequest);\n"],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@plusscommunities/pluss-maintenance-app",
|
3
|
-
"version": "2.1.
|
3
|
+
"version": "2.1.1",
|
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",
|
@@ -25,11 +25,11 @@
|
|
25
25
|
"axios": "^0.16.2",
|
26
26
|
"lodash": "^4.17.4",
|
27
27
|
"moment": "^2.18.1",
|
28
|
-
"react": "17.0.
|
29
|
-
"react-native": "0.
|
28
|
+
"react": "17.0.1",
|
29
|
+
"react-native": "0.64.3",
|
30
30
|
"react-native-elements": "^0.17.0",
|
31
31
|
"react-native-iphone-x-helper": "^1.3.1",
|
32
|
-
"react-native-webview": "11.
|
32
|
+
"react-native-webview": "11.15.0",
|
33
33
|
"react-redux": "^7.2.6"
|
34
34
|
},
|
35
35
|
"peerDependencies": {
|
@@ -25,13 +25,43 @@ class MaintenanceListItem extends Component {
|
|
25
25
|
Services.navigation.navigate('requestDetail', { job: this.props.job });
|
26
26
|
};
|
27
27
|
|
28
|
+
renderCommentCount() {
|
29
|
+
if (!job.commentCount) {
|
30
|
+
return null;
|
31
|
+
}
|
32
|
+
return (
|
33
|
+
<View style={styles.commentCountContainer}>
|
34
|
+
<Text style={styles.commentCountText}>{job.commentCount > 99 ? '99' : job.commentCount}</Text>
|
35
|
+
</View>
|
36
|
+
);
|
37
|
+
}
|
38
|
+
|
39
|
+
renderDescription() {
|
40
|
+
if (_.isEmpty(job.description)) {
|
41
|
+
return null;
|
42
|
+
}
|
43
|
+
return <Text style={styles.jobDescriptionText}>{job.description}</Text>;
|
44
|
+
}
|
45
|
+
|
46
|
+
renderSeen() {
|
47
|
+
const showSeen = !job.status || job.status === jobStatusOptions[0].name;
|
48
|
+
if (!showSeen || !job.seen) {
|
49
|
+
return null;
|
50
|
+
}
|
51
|
+
return (
|
52
|
+
<View style={styles.jobSeenContainer}>
|
53
|
+
<Icon name="check" type="font-awesome" iconStyle={[styles.jobSeenIcon, { color: this.props.colourBrandingMain }]} />
|
54
|
+
<Text style={[styles.jobSeenText, { color: this.props.colourBrandingMain }]}>Seen</Text>
|
55
|
+
</View>
|
56
|
+
);
|
57
|
+
}
|
58
|
+
|
28
59
|
render() {
|
29
60
|
const { job } = this.props;
|
30
61
|
const createdTime = moment(job.createdUnix);
|
31
62
|
const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;
|
32
63
|
const activityTimeText = job.expectedDate ? moment(job.expectedDate).format('D MMMM') : '--';
|
33
64
|
const { statusText, statusColor } = getJobStatusProps(job.status);
|
34
|
-
const showSeen = !job.status || job.status === jobStatusOptions[0].name;
|
35
65
|
|
36
66
|
return (
|
37
67
|
<TouchableOpacity onPress={this.onPressJob}>
|
@@ -44,25 +74,16 @@ class MaintenanceListItem extends Component {
|
|
44
74
|
<View style={[styles.jobTypeContainer, { backgroundColor: Colours.hexToRGBAstring(this.props.colourBrandingMain, 0.2) }]}>
|
45
75
|
<Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]}>{job.type}</Text>
|
46
76
|
</View>
|
47
|
-
{
|
48
|
-
<View style={styles.jobSeenContainer}>
|
49
|
-
<Icon name="check" type="font-awesome" iconStyle={[styles.jobSeenIcon, { color: this.props.colourBrandingMain }]} />
|
50
|
-
<Text style={[styles.jobSeenText, { color: this.props.colourBrandingMain }]}>Seen</Text>
|
51
|
-
</View>
|
52
|
-
)}
|
77
|
+
{this.renderSeen()}
|
53
78
|
</View>
|
54
79
|
</View>
|
55
80
|
<View style={styles.jobTopRight}>
|
56
81
|
<Image style={styles.jobCommentImage} source={require('../images/speechbubble.png')} />
|
57
|
-
{
|
58
|
-
<View style={styles.commentCountContainer}>
|
59
|
-
<Text style={styles.commentCountText}>{job.commentCount > 99 ? '99' : job.commentCount}</Text>
|
60
|
-
</View>
|
61
|
-
)}
|
82
|
+
{this.renderCommentCount()}
|
62
83
|
</View>
|
63
84
|
</View>
|
64
85
|
<View style={styles.jobBottomSection}>
|
65
|
-
{
|
86
|
+
{this.renderDescription()}
|
66
87
|
<Text style={styles.jobCreatedText}>{createdTimeText}</Text>
|
67
88
|
<View style={styles.jobActivityContainer}>
|
68
89
|
<View style={[styles.jobStatusContainer, { backgroundColor: statusColor }]}>
|