@plusscommunities/pluss-maintenance-app 6.0.5-auth.0 → 6.0.5
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/index.js.map +1 -1
- package/dist/module/apis/maintenanceActions.js.map +1 -1
- package/dist/module/components/FilterPopupMenu.js +2 -2
- package/dist/module/components/FilterPopupMenu.js.map +1 -1
- package/dist/module/components/MaintenanceList.js +2 -2
- package/dist/module/components/MaintenanceList.js.map +1 -1
- package/dist/module/components/MaintenanceListItem.js +9 -6
- package/dist/module/components/MaintenanceListItem.js.map +1 -1
- package/dist/module/components/MaintenanceWidgetItem.js +2 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/module/screens/JobTypePicker.js.map +1 -1
- package/dist/module/screens/MaintenancePage.js +2 -2
- package/dist/module/screens/MaintenancePage.js.map +1 -1
- package/dist/module/screens/RequestDetail.js +33 -16
- package/dist/module/screens/RequestDetail.js.map +1 -1
- package/dist/module/screens/RequestNotes.js +5 -3
- package/dist/module/screens/RequestNotes.js.map +1 -1
- package/dist/module/screens/ServiceRequest.js +2 -2
- package/dist/module/screens/ServiceRequest.js.map +1 -1
- package/package.json +2 -5
- package/src/components/MaintenanceListItem.js +7 -3
- package/src/screens/RequestDetail.js +27 -14
- package/src/screens/RequestNotes.js +3 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","Component","Dimensions","Platform","KeyboardAvoidingView","ScrollView","Text","TouchableOpacity","View","Switch","FlatList","ImageBackground","Keyboard","_","Icon","connect","jobAdded","maintenanceActions","Services","Components","Colours","Helper","Config","PHOTO_SIZE","get","width","MaintenanceRequest","constructor","props","_defineProperty","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","createElement","ImageUploader","ref","onUploadStarted","onUploadSuccess","onUploadFailed","onUploadProgress","onLibrarySelected","size","quality","fileName","popupTitle","userId","allowsEditing","multiple","hideLibrary","renderImage","item","isVideoUrl","isVideo","activeOpacity","onPress","style","styles","imageContainer","imageContainerNotEmpty","marginLeft","marginTop","imageCircle","name","iconStyle","addImageIcon","ImageUploadProgress","uploader","color","colourBrandingMain","imageBackground","source","getImageSource","imagePlayContainer","toggleFullscreenVideo","imageControlIcon","removeImage","renderSuccess","padding","flex","backgroundColor","requestSuccess","renderImageList","imageSection","imageListContainer","imageListContainerEmpty","keyboardShouldPersistTaps","enableEmptySections","renderItem","keyExtractor","numColumns","renderForm","paddingBottom","LoadingIndicator","visible","errorText","FormCard","FormCardSection","label","placeholder","textValue","onChangeText","editable","isValid","required","hasUnderline","keyboardType","paddingHorizontal","paddingVertical","flexDirection","justifyContent","sectionTitle","env","strings","JOB_TYPE","marginRight","fontSize","autoCorrect","multiline","autoGrow","alignItems","position","borderBottomWidth","borderBottomColor","LINEGREY","MAINTENANCE_HOME","value","disabled","onValueChange","trackColor","false","true","thumbColor","OS","minHeight","renderRegisterConfirmation","ConfirmationPopup","confirmText","repeatText","onClose","onPressAction","renderVideoPlayerPopup","VideoPopup","showFullscreenButton","render","behavior","viewContainer","container","Header","leftIcon","onPressLeft","text","MAINTENANCE","rightText","onPressRight","absoluteRight","fontFamily","COLOUR_TANGERINE","TEXT_DARK","textAlign","BOXGREY","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 { maintenanceActions } 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 maintenanceActions\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 maintenanceActions\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 maintenanceActions.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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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["React","Component","Dimensions","Platform","KeyboardAvoidingView","ScrollView","Text","TouchableOpacity","View","Switch","FlatList","ImageBackground","Keyboard","_","Icon","connect","jobAdded","maintenanceActions","Services","Components","Colours","Helper","Config","PHOTO_SIZE","get","width","MaintenanceRequest","constructor","props","_defineProperty","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","createElement","ImageUploader","ref","onUploadStarted","onUploadSuccess","onUploadFailed","onUploadProgress","onLibrarySelected","size","quality","fileName","popupTitle","userId","allowsEditing","multiple","hideLibrary","renderImage","item","isVideoUrl","isVideo","activeOpacity","onPress","style","styles","imageContainer","imageContainerNotEmpty","marginLeft","marginTop","imageCircle","name","iconStyle","addImageIcon","ImageUploadProgress","uploader","color","colourBrandingMain","imageBackground","source","getImageSource","imagePlayContainer","toggleFullscreenVideo","imageControlIcon","removeImage","renderSuccess","padding","flex","backgroundColor","requestSuccess","renderImageList","imageSection","imageListContainer","imageListContainerEmpty","keyboardShouldPersistTaps","enableEmptySections","renderItem","keyExtractor","numColumns","renderForm","paddingBottom","LoadingIndicator","visible","errorText","FormCard","FormCardSection","label","placeholder","textValue","onChangeText","editable","isValid","required","hasUnderline","keyboardType","paddingHorizontal","paddingVertical","flexDirection","justifyContent","sectionTitle","env","strings","JOB_TYPE","marginRight","fontSize","autoCorrect","multiline","autoGrow","alignItems","position","borderBottomWidth","borderBottomColor","LINEGREY","MAINTENANCE_HOME","value","disabled","onValueChange","trackColor","false","true","thumbColor","OS","minHeight","renderRegisterConfirmation","ConfirmationPopup","confirmText","repeatText","onClose","onPressAction","renderVideoPlayerPopup","VideoPopup","showFullscreenButton","render","behavior","viewContainer","container","Header","leftIcon","onPressLeft","text","MAINTENANCE","rightText","onPressRight","absoluteRight","fontFamily","COLOUR_TANGERINE","TEXT_DARK","textAlign","BOXGREY","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 { maintenanceActions } 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 maintenanceActions\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 maintenanceActions\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 maintenanceActions.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": "6.0.5
|
3
|
+
"version": "6.0.5",
|
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",
|
@@ -15,9 +15,6 @@
|
|
15
15
|
"patch": "npm version patch",
|
16
16
|
"betaupload": "npm run build && npm publish --access public --tag beta",
|
17
17
|
"betaupload:p": "npm run betapatch && npm run betaupload",
|
18
|
-
"authpatch": "npm version prepatch --preid=auth",
|
19
|
-
"authupload": "npm run build && npm publish --access public --tag auth",
|
20
|
-
"authupload:p": "npm run authpatch && npm run authupload",
|
21
18
|
"upload": "npm run build && npm publish --access public",
|
22
19
|
"upload:p": "npm run patch && npm run upload"
|
23
20
|
},
|
@@ -25,7 +22,7 @@
|
|
25
22
|
"license": "ISC",
|
26
23
|
"dependencies": {},
|
27
24
|
"peerDependencies": {
|
28
|
-
"@plusscommunities/pluss-core-app": "^6.0.
|
25
|
+
"@plusscommunities/pluss-core-app": "^6.0.3",
|
29
26
|
"axios": "^1.6.8",
|
30
27
|
"lodash": "^4.17.4",
|
31
28
|
"moment": "^2.30.1",
|
@@ -77,7 +77,9 @@ class MaintenanceListItem extends Component {
|
|
77
77
|
{job.room ? <Text style={styles.jobLocationText}>{job.room}</Text> : null}
|
78
78
|
<View style={styles.jobTypeSeenContainer}>
|
79
79
|
<View style={[styles.jobTypeContainer, { backgroundColor: Colours.hexToRGBAstring(this.props.colourBrandingMain, 0.2) }]}>
|
80
|
-
<Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]}
|
80
|
+
<Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]} numberOfLines={2}>
|
81
|
+
{job.type}
|
82
|
+
</Text>
|
81
83
|
</View>
|
82
84
|
{this.renderSeen()}
|
83
85
|
</View>
|
@@ -151,8 +153,9 @@ const styles = StyleSheet.create({
|
|
151
153
|
alignItems: 'center',
|
152
154
|
},
|
153
155
|
jobTypeContainer: {
|
154
|
-
|
155
|
-
|
156
|
+
padding: 4,
|
157
|
+
minWidth: 80,
|
158
|
+
maxWidth: 140,
|
156
159
|
borderRadius: 4,
|
157
160
|
justifyContent: 'center',
|
158
161
|
},
|
@@ -160,6 +163,7 @@ const styles = StyleSheet.create({
|
|
160
163
|
fontFamily: 'sf-semibold',
|
161
164
|
fontSize: 12,
|
162
165
|
textAlign: 'center',
|
166
|
+
maxWidth: '100%',
|
163
167
|
},
|
164
168
|
jobSeenContainer: {
|
165
169
|
flexDirection: 'row',
|
@@ -41,23 +41,17 @@ class RequestDetail extends Component {
|
|
41
41
|
|
42
42
|
componentDidMount() {
|
43
43
|
this.getJob();
|
44
|
-
this.updateJobState();
|
44
|
+
this.updateJobState(this.props.job);
|
45
45
|
this.getAssignees();
|
46
46
|
}
|
47
47
|
|
48
|
-
componentDidUpdate(prevProps) {
|
49
|
-
if (prevProps.jobs !== this.props.jobs) {
|
50
|
-
this.updateJobState();
|
51
|
-
}
|
52
|
-
}
|
53
|
-
|
54
48
|
getJob = async () => {
|
55
49
|
console.log('getting job');
|
56
50
|
this.setState({ loading: true }, async () => {
|
57
51
|
try {
|
58
52
|
const res = await maintenanceActions.getJob(this.props.job.site, this.props.job.id);
|
59
53
|
this.props.jobAdded(res.data);
|
60
|
-
|
54
|
+
this.updateJobState(res.data);
|
61
55
|
} catch (error) {
|
62
56
|
console.log('getJob error', error.toString());
|
63
57
|
// check for 403 or 404 error
|
@@ -83,8 +77,12 @@ class RequestDetail extends Component {
|
|
83
77
|
}
|
84
78
|
};
|
85
79
|
|
86
|
-
updateJobState() {
|
87
|
-
const job = _.find(this.props.jobs, j => j.id === this.props.job.id) ||
|
80
|
+
updateJobState(defaultJob) {
|
81
|
+
const job = _.find(this.props.jobs, j => j.id === this.props.job.id) || defaultJob;
|
82
|
+
if (!job) {
|
83
|
+
this.getJob();
|
84
|
+
return;
|
85
|
+
}
|
88
86
|
const newState = { job, status: job.status };
|
89
87
|
if (job.expectedDate) {
|
90
88
|
newState.expectedDate = moment(job.expectedDate);
|
@@ -111,6 +109,7 @@ class RequestDetail extends Component {
|
|
111
109
|
const res = await maintenanceActions.editJob(updated, user.site);
|
112
110
|
// console.log('markSeen updated');
|
113
111
|
this.props.jobAdded(res.data.job);
|
112
|
+
this.getJob();
|
114
113
|
this.setState({ loading: false, seen: true });
|
115
114
|
} catch (error) {
|
116
115
|
console.log('markSeen error', error);
|
@@ -132,6 +131,7 @@ class RequestDetail extends Component {
|
|
132
131
|
}
|
133
132
|
const res = await maintenanceActions.editJob(updated, user.site);
|
134
133
|
this.props.jobAdded(res.data.job);
|
134
|
+
this.getJob();
|
135
135
|
} catch (error) {
|
136
136
|
console.log('updateJob error', error);
|
137
137
|
} finally {
|
@@ -145,6 +145,7 @@ class RequestDetail extends Component {
|
|
145
145
|
try {
|
146
146
|
const res = await maintenanceActions.editJobStatus(this.props.job.id, this.state.status);
|
147
147
|
this.props.jobAdded(res.data.job);
|
148
|
+
this.getJob();
|
148
149
|
} catch (error) {
|
149
150
|
console.log('updateJobStatus error', error);
|
150
151
|
} finally {
|
@@ -172,7 +173,7 @@ class RequestDetail extends Component {
|
|
172
173
|
};
|
173
174
|
|
174
175
|
openStaffNotes = () => {
|
175
|
-
Services.navigation.navigate('requestNotes', { job: this.state.job });
|
176
|
+
Services.navigation.navigate('requestNotes', { job: this.state.job, onChange: this.getJob });
|
176
177
|
};
|
177
178
|
|
178
179
|
onOpenDatePicker = () => {
|
@@ -219,6 +220,7 @@ class RequestDetail extends Component {
|
|
219
220
|
const job = await maintenanceActions.getJob(this.props.user.site, this.props.job.id);
|
220
221
|
// console.log('onCommentAdded', job?.data);
|
221
222
|
this.props.jobAdded(job.data);
|
223
|
+
this.getJob();
|
222
224
|
} catch (error) {
|
223
225
|
console.log('onCommentAdded error', error);
|
224
226
|
} finally {
|
@@ -275,6 +277,7 @@ class RequestDetail extends Component {
|
|
275
277
|
console.log('onSelectAssignee', this.props.job.id, assignee.key);
|
276
278
|
const res = await maintenanceActions.assignJob(this.props.job.id, assignee.key);
|
277
279
|
this.props.jobAdded(res.data.job);
|
280
|
+
this.getJob();
|
278
281
|
} catch (error) {
|
279
282
|
console.log('onSelectAssignee error', error);
|
280
283
|
} finally {
|
@@ -296,10 +299,13 @@ class RequestDetail extends Component {
|
|
296
299
|
return (
|
297
300
|
<View style={{ ...Helper.getShadowStyle() }}>
|
298
301
|
<View style={styles.jobTitleContainer}>
|
302
|
+
{job.jobId ? <Text style={[styles.jobIdText, { color: this.props.colourBrandingMain }]}>{`Job #${job.jobId}`}</Text> : null}
|
299
303
|
<Text style={styles.jobTitleText}>{job.title}</Text>
|
300
304
|
<View style={styles.jobTypeSeenContainer}>
|
301
305
|
<View style={[styles.jobTypeContainer, { backgroundColor: Colours.hexToRGBAstring(this.props.colourBrandingMain, 0.2) }]}>
|
302
|
-
<Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]}
|
306
|
+
<Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]} numberOfLines={2}>
|
307
|
+
{job.type}
|
308
|
+
</Text>
|
303
309
|
</View>
|
304
310
|
{showSeen && this.state.seen && (
|
305
311
|
<View style={styles.jobSeenContainer}>
|
@@ -598,6 +604,11 @@ const styles = StyleSheet.create({
|
|
598
604
|
paddingVertical: 14,
|
599
605
|
paddingHorizontal: 12,
|
600
606
|
},
|
607
|
+
jobIdText: {
|
608
|
+
fontFamily: 'sf-medium',
|
609
|
+
fontSize: 12,
|
610
|
+
marginBottom: 4,
|
611
|
+
},
|
601
612
|
jobTitleText: {
|
602
613
|
fontFamily: 'sf-semibold',
|
603
614
|
fontSize: 20,
|
@@ -609,8 +620,9 @@ const styles = StyleSheet.create({
|
|
609
620
|
alignItems: 'center',
|
610
621
|
},
|
611
622
|
jobTypeContainer: {
|
612
|
-
|
613
|
-
|
623
|
+
padding: 4,
|
624
|
+
minWidth: 80,
|
625
|
+
maxWidth: 140,
|
614
626
|
borderRadius: 4,
|
615
627
|
justifyContent: 'center',
|
616
628
|
},
|
@@ -618,6 +630,7 @@ const styles = StyleSheet.create({
|
|
618
630
|
fontFamily: 'sf-semibold',
|
619
631
|
fontSize: 12,
|
620
632
|
textAlign: 'center',
|
633
|
+
maxWidth: '100%',
|
621
634
|
},
|
622
635
|
jobSeenContainer: {
|
623
636
|
flexDirection: 'row',
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React, { Component } from 'react';
|
2
|
-
import { ScrollView, View, Text, TouchableOpacity, Modal, KeyboardAvoidingView } from 'react-native';
|
2
|
+
import { ScrollView, View, Text, TouchableOpacity, Modal, KeyboardAvoidingView, Platform } from 'react-native';
|
3
3
|
import { connect } from 'react-redux';
|
4
4
|
import { Icon } from 'react-native-elements';
|
5
5
|
import _ from 'lodash';
|
@@ -68,6 +68,7 @@ class RequestNotes extends Component {
|
|
68
68
|
const newJob = { ...this.props.job };
|
69
69
|
newJob.Notes = newNotes;
|
70
70
|
this.props.jobAdded(newJob);
|
71
|
+
this.props.onChange && this.props.onChange();
|
71
72
|
this.setState({
|
72
73
|
job: newJob,
|
73
74
|
noteToDelete: null,
|
@@ -158,6 +159,7 @@ class RequestNotes extends Component {
|
|
158
159
|
},
|
159
160
|
() => {
|
160
161
|
this.props.jobAdded(res.data.job);
|
162
|
+
this.props.onChange && this.props.onChange();
|
161
163
|
},
|
162
164
|
);
|
163
165
|
} catch (err) {
|