@plusscommunities/pluss-maintenance-app 8.0.16-beta.0 → 8.0.17-beta.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/components/FilterPopupMenu.js +2 -2
- package/dist/module/components/FilterPopupMenu.js.map +1 -1
- package/dist/module/components/MaintenanceList.js +61 -13
- package/dist/module/components/MaintenanceList.js.map +1 -1
- package/dist/module/screens/ServiceRequest.js.map +1 -1
- package/package.json +2 -2
- package/src/components/FilterPopupMenu.js +1 -4
- package/src/components/MaintenanceList.js +81 -11
- package/src/screens/ServiceRequest.js +4 -3
|
@@ -8,7 +8,7 @@ import { connect } from "react-redux";
|
|
|
8
8
|
import _ from "lodash";
|
|
9
9
|
import { maintenanceActions } from "../apis";
|
|
10
10
|
import { Colours, Helper } from "../core.config";
|
|
11
|
-
import { getJobStatusOptions,
|
|
11
|
+
import { getJobStatusOptions, jobPriorityOptions, getDefaultJobPriority } from "../helper";
|
|
12
12
|
import { values } from "../values.config";
|
|
13
13
|
const SCREEN_HEIGHT = Dimensions.get("window").height;
|
|
14
14
|
class FilterPopupMenu extends Component {
|
|
@@ -21,7 +21,7 @@ class FilterPopupMenu extends Component {
|
|
|
21
21
|
value: ""
|
|
22
22
|
}, {
|
|
23
23
|
label: "Incomplete",
|
|
24
|
-
value:
|
|
24
|
+
value: "Incomplete"
|
|
25
25
|
}, ...statusOptions.map(s => ({
|
|
26
26
|
label: s.text,
|
|
27
27
|
value: s.text
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","Text","View","TouchableOpacity","Modal","ScrollView","Dimensions","connect","_","maintenanceActions","Colours","Helper","getJobStatusOptions","getIncompleteJobStatuses","jobPriorityOptions","getDefaultJobPriority","values","SCREEN_HEIGHT","get","height","FilterPopupMenu","constructor","props","_defineProperty","statusOptions","options","label","value","map","s","text","join","priorityOptions","defaultPriority","p","res","getAssignees","site","assignees","data","Users","t","displayName","id","orderBy","splice","newState","some","a","state","selectedAssignee","setState","error","console","getJobTypes","getSite","types","typeName","key","_this$getStatusOption","_this$getPriorityOpti","_this$state$assignees","onClose","selectedStatus","selectedPriority","selectedType","status","statusText","getStatusOptions","find","o","priority","priorityText","getPriorityOptions","type","assignee","assigneeName","componentDidMount","isEmpty","refreshTypes","componentDidUpdate","prevProps","renderTitle","title","createElement","style","styles","titleContainer","titleText","renderCancel","colourBrandingMain","cancelText","onPress","onDone","cancelContainer","color","renderOptions","selectedKey","optionsContainer","optionsTitle","selected","backgroundColor","onSelectOption","optionContainer","borderColor","optionText","render","isStaff","user","category","canFilterAssignee","includes","permissions","permissionMaintenanceAssignment","visible","transparent","animationType","onRequestClose","container","menu","optionContent","position","bottom","left","right","top","zIndex","borderTopLeftRadius","borderTopRightRadius","maxHeight","paddingVertical","LINEGREY","borderTopWidth","paddingHorizontal","fontFamily","fontSize","textAlign","TEXT_DARK","padding","borderBottomWidth","marginHorizontal","marginBottom","flex","flexDirection","flexWrap","alignItems","justifyContent","minWidth","borderRadius","borderWidth","marginRight","mapStateToProps","getMainBrandingColourFromState","statusTypes","reducerKey","jobstatuses"],"sources":["FilterPopupMenu.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { Text } from \"@plusscommunities/pluss-core-app/components\";\nimport {\n\tView,\n\tTouchableOpacity,\n\tModal,\n\tScrollView,\n\tDimensions,\n} from \"react-native\";\nimport { connect } from \"react-redux\";\nimport _ from \"lodash\";\nimport { maintenanceActions } from \"../apis\";\nimport { Colours, Helper } from \"../core.config\";\nimport {\n\tgetJobStatusOptions,\n\tgetIncompleteJobStatuses,\n\tjobPriorityOptions,\n\tgetDefaultJobPriority,\n} from \"../helper\";\nimport { values } from \"../values.config\";\n\nconst SCREEN_HEIGHT = Dimensions.get(\"window\").height;\n\nclass FilterPopupMenu extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\ttypes: props.types || [],\n\t\t\tselectedStatus: props.status || \"\",\n\t\t\tselectedPriority: props.priority || \"\",\n\t\t\tselectedType: props.type || \"\",\n\t\t\tselectedAssignee: props.assignee || \"\",\n\t\t\tassignees: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.getAssignees();\n\t\tif (_.isEmpty(this.state.types)) this.refreshTypes();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (prevProps.site !== this.props.site) {\n\t\t\tthis.refreshTypes();\n\t\t}\n\t}\n\n\tgetStatusOptions = () => {\n\t\tconst statusOptions = getJobStatusOptions(this.props);\n\t\tconst options = [\n\t\t\t{\n\t\t\t\tlabel: \"All\",\n\t\t\t\tvalue: \"\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: \"Incomplete\",\n\t\t\t\tvalue: `Unassigned|${getIncompleteJobStatuses(this.props)\n\t\t\t\t\t.map((s) => s.text)\n\t\t\t\t\t.join(\"|\")}`,\n\t\t\t},\n\t\t\t...statusOptions.map((s) => ({\n\t\t\t\tlabel: s.text,\n\t\t\t\tvalue: s.text,\n\t\t\t})),\n\t\t];\n\t\t// console.log('getStatusOptions', JSON.stringify(options, null, 2));\n\t\treturn options;\n\t};\n\n\tgetPriorityOptions = () => {\n\t\tconst priorityOptions = jobPriorityOptions;\n\t\tconst defaultPriority = getDefaultJobPriority();\n\t\tconst options = [\n\t\t\t{\n\t\t\t\tlabel: \"All\",\n\t\t\t\tvalue: \"\",\n\t\t\t},\n\t\t\t...priorityOptions.map((p) => ({\n\t\t\t\tlabel: p.label,\n\t\t\t\tvalue:\n\t\t\t\t\tp.label === defaultPriority?.label ? `${p.label}|undefined` : p.label,\n\t\t\t})),\n\t\t];\n\t\t// console.log('getPriorityOptions', JSON.stringify(options, null, 2));\n\t\treturn options;\n\t};\n\n\tgetAssignees = async () => {\n\t\ttry {\n\t\t\tconst res = await maintenanceActions.getAssignees(this.props.site);\n\t\t\tlet assignees = res.data.Users.map((t) => {\n\t\t\t\treturn { label: t.displayName, value: t.id };\n\t\t\t});\n\t\t\tassignees = _.orderBy(assignees, \"label\");\n\n\t\t\tassignees.splice(0, 0, { label: \"All\", value: \"\" });\n\n\t\t\tconst newState = { assignees };\n\n\t\t\tif (!assignees.some((a) => a.value === this.state.selectedAssignee)) {\n\t\t\t\tnewState.selectedAssignee = \"\";\n\t\t\t}\n\t\t\t// console.log('refreshassignees', assignees);\n\t\t\tthis.setState(newState);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"getAssignees\", error);\n\t\t}\n\t};\n\n\trefreshTypes = async () => {\n\t\tconst { data } = await maintenanceActions.getJobTypes(\n\t\t\tHelper.getSite(this.props.site),\n\t\t);\n\t\tconst types = data.map((t) => {\n\t\t\treturn { label: t.typeName, value: t.typeName };\n\t\t});\n\t\ttypes.splice(0, 0, { label: \"All\", value: \"\" });\n\t\t// console.log('refreshTypes', types);\n\t\tthis.setState({ types });\n\t};\n\n\tonSelectOption = (key, value) => {\n\t\tconst newState = {};\n\t\tnewState[key] = value;\n\t\tthis.setState(newState);\n\t};\n\n\tonDone = () => {\n\t\tconst { onClose } = this.props;\n\t\tconst { selectedStatus, selectedPriority, selectedType, selectedAssignee } =\n\t\t\tthis.state;\n\t\tif (onClose)\n\t\t\tonClose({\n\t\t\t\tstatus: selectedStatus,\n\t\t\t\tstatusText: this.getStatusOptions().find(\n\t\t\t\t\t(o) => o.value === selectedStatus,\n\t\t\t\t)?.label,\n\t\t\t\tpriority: selectedPriority,\n\t\t\t\tpriorityText: this.getPriorityOptions().find(\n\t\t\t\t\t(o) => o.value === selectedPriority,\n\t\t\t\t)?.label,\n\t\t\t\ttype: selectedType,\n\t\t\t\tassignee: selectedAssignee,\n\t\t\t\tassigneeName: this.state.assignees.find(\n\t\t\t\t\t(a) => a.value === selectedAssignee,\n\t\t\t\t)?.label,\n\t\t\t});\n\t};\n\n\trenderTitle() {\n\t\tconst { title } = this.props;\n\t\treturn (\n\t\t\t<View style={styles.titleContainer}>\n\t\t\t\t<Text style={styles.titleText}>{title || \"Filter By\"}</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderCancel() {\n\t\tconst { colourBrandingMain, cancelText } = this.props;\n\t\treturn (\n\t\t\t<TouchableOpacity onPress={this.onDone}>\n\t\t\t\t<View style={styles.cancelContainer}>\n\t\t\t\t\t<Text style={[styles.cancelText, { color: colourBrandingMain }]}>\n\t\t\t\t\t\t{cancelText || \"Done\"}\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableOpacity>\n\t\t);\n\t}\n\n\trenderOptions(title, options, selectedKey) {\n\t\tconst { colourBrandingMain } = this.props;\n\t\treturn (\n\t\t\t<View style={styles.optionsContainer}>\n\t\t\t\t<Text style={styles.optionsTitle}>{title}</Text>\n\t\t\t\t<View style={styles.options}>\n\t\t\t\t\t{options.map((o) => {\n\t\t\t\t\t\tconst selected = this.state[selectedKey];\n\t\t\t\t\t\tconst backgroundColor =\n\t\t\t\t\t\t\to.value === selected ? colourBrandingMain : \"#fff\";\n\t\t\t\t\t\tconst color = o.value === selected ? \"#fff\" : colourBrandingMain;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tkey={o.label}\n\t\t\t\t\t\t\t\tonPress={() => this.onSelectOption(selectedKey, o.value)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\tstyles.optionContainer,\n\t\t\t\t\t\t\t\t\t\t{ backgroundColor, borderColor: colourBrandingMain },\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Text style={[styles.optionText, { color }]}>{o.label}</Text>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</View>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\t// console.log('FilterPopupMenu', JSON.stringify({ category: this.props.user.category, permissions: this.props.user.permissions }, null, 2))\n\t\tconst isStaff = this.props.user.category === \"staff\";\n\t\tconst canFilterAssignee = !_.includes(\n\t\t\tthis.props.user.permissions,\n\t\t\tvalues.permissionMaintenanceAssignment,\n\t\t);\n\n\t\treturn (\n\t\t\t<Modal\n\t\t\t\tvisible\n\t\t\t\ttransparent\n\t\t\t\tanimationType=\"slide\"\n\t\t\t\tonRequestClose={this.onDone}\n\t\t\t>\n\t\t\t\t<View style={styles.container}>\n\t\t\t\t\t<View style={styles.menu}>\n\t\t\t\t\t\t{this.renderTitle()}\n\t\t\t\t\t\t<ScrollView style={styles.optionContent}>\n\t\t\t\t\t\t\t{this.renderOptions(\n\t\t\t\t\t\t\t\t\"Status\",\n\t\t\t\t\t\t\t\tthis.getStatusOptions(),\n\t\t\t\t\t\t\t\t\"selectedStatus\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{isStaff\n\t\t\t\t\t\t\t\t? this.renderOptions(\n\t\t\t\t\t\t\t\t\t\t\"Priority\",\n\t\t\t\t\t\t\t\t\t\tthis.getPriorityOptions(),\n\t\t\t\t\t\t\t\t\t\t\"selectedPriority\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t\t{this.renderOptions(\"Type\", this.state.types, \"selectedType\")}\n\t\t\t\t\t\t\t{canFilterAssignee\n\t\t\t\t\t\t\t\t? this.renderOptions(\n\t\t\t\t\t\t\t\t\t\t\"Assigned To\",\n\t\t\t\t\t\t\t\t\t\tthis.state.assignees,\n\t\t\t\t\t\t\t\t\t\t\"selectedAssignee\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t{this.renderCancel()}\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</Modal>\n\t\t);\n\t}\n}\n\nconst styles = {\n\tcontainer: {\n\t\tposition: \"absolute\",\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbackgroundColor: \"rgba(0,0,0,0.5)\",\n\t\tzIndex: 1000,\n\t},\n\tmenu: {\n\t\tposition: \"absolute\",\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbackgroundColor: \"#fff\",\n\t\tborderTopLeftRadius: 12,\n\t\tborderTopRightRadius: 12,\n\t\tmaxHeight: SCREEN_HEIGHT * 0.8,\n\t},\n\tcancelContainer: {\n\t\tpaddingVertical: 16,\n\t\tborderColor: Colours.LINEGREY,\n\t\tborderTopWidth: 1,\n\t\tpaddingHorizontal: 16,\n\t},\n\tcancelText: {\n\t\tfontFamily: \"sf-medium\",\n\t\tfontSize: 16,\n\t\ttextAlign: \"center\",\n\t\tcolor: Colours.TEXT_DARK,\n\t},\n\ttitleContainer: {\n\t\tpadding: 16,\n\t\tborderColor: Colours.LINEGREY,\n\t\tborderBottomWidth: 1,\n\t},\n\ttitleText: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 16,\n\t\ttextAlign: \"center\",\n\t\tcolor: Colours.TEXT_DARK,\n\t},\n\toptionContent: {\n\t\tpaddingVertical: 10,\n\t},\n\toptionsContainer: {\n\t\tmarginHorizontal: 14,\n\t},\n\toptionsTitle: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tmarginBottom: 4,\n\t},\n\toptions: {\n\t\tflex: 1,\n\t\tflexDirection: \"row\",\n\t\tflexWrap: \"wrap\",\n\t},\n\toptionContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tminWidth: 50,\n\t\theight: 30,\n\t\tpaddingHorizontal: 8,\n\t\tborderRadius: 4,\n\t\tborderWidth: 1,\n\t\tmarginRight: 8,\n\t\tmarginBottom: 8,\n\t},\n\toptionText: {\n\t\tcolor: \"#fff\",\n\t\ttextAlign: \"center\",\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 13,\n\t},\n};\n\nconst mapStateToProps = (state) => {\n\tconst { user } = state;\n\n\treturn {\n\t\tuser,\n\t\tsite: user.site,\n\t\tcolourBrandingMain: Colours.getMainBrandingColourFromState(state),\n\t\tstatusTypes: state[values.reducerKey].jobstatuses,\n\t};\n};\n\nexport default connect(mapStateToProps, {})(FilterPopupMenu);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","Text","View","TouchableOpacity","Modal","ScrollView","Dimensions","connect","_","maintenanceActions","Colours","Helper","getJobStatusOptions","jobPriorityOptions","getDefaultJobPriority","values","SCREEN_HEIGHT","get","height","FilterPopupMenu","constructor","props","_defineProperty","statusOptions","options","label","value","map","s","text","priorityOptions","defaultPriority","p","res","getAssignees","site","assignees","data","Users","t","displayName","id","orderBy","splice","newState","some","a","state","selectedAssignee","setState","error","console","getJobTypes","getSite","types","typeName","key","_this$getStatusOption","_this$getPriorityOpti","_this$state$assignees","onClose","selectedStatus","selectedPriority","selectedType","status","statusText","getStatusOptions","find","o","priority","priorityText","getPriorityOptions","type","assignee","assigneeName","componentDidMount","isEmpty","refreshTypes","componentDidUpdate","prevProps","renderTitle","title","createElement","style","styles","titleContainer","titleText","renderCancel","colourBrandingMain","cancelText","onPress","onDone","cancelContainer","color","renderOptions","selectedKey","optionsContainer","optionsTitle","selected","backgroundColor","onSelectOption","optionContainer","borderColor","optionText","render","isStaff","user","category","canFilterAssignee","includes","permissions","permissionMaintenanceAssignment","visible","transparent","animationType","onRequestClose","container","menu","optionContent","position","bottom","left","right","top","zIndex","borderTopLeftRadius","borderTopRightRadius","maxHeight","paddingVertical","LINEGREY","borderTopWidth","paddingHorizontal","fontFamily","fontSize","textAlign","TEXT_DARK","padding","borderBottomWidth","marginHorizontal","marginBottom","flex","flexDirection","flexWrap","alignItems","justifyContent","minWidth","borderRadius","borderWidth","marginRight","mapStateToProps","getMainBrandingColourFromState","statusTypes","reducerKey","jobstatuses"],"sources":["FilterPopupMenu.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { Text } from \"@plusscommunities/pluss-core-app/components\";\nimport {\n\tView,\n\tTouchableOpacity,\n\tModal,\n\tScrollView,\n\tDimensions,\n} from \"react-native\";\nimport { connect } from \"react-redux\";\nimport _ from \"lodash\";\nimport { maintenanceActions } from \"../apis\";\nimport { Colours, Helper } from \"../core.config\";\nimport {\n\tgetJobStatusOptions,\n\tjobPriorityOptions,\n\tgetDefaultJobPriority,\n} from \"../helper\";\nimport { values } from \"../values.config\";\n\nconst SCREEN_HEIGHT = Dimensions.get(\"window\").height;\n\nclass FilterPopupMenu extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\ttypes: props.types || [],\n\t\t\tselectedStatus: props.status || \"\",\n\t\t\tselectedPriority: props.priority || \"\",\n\t\t\tselectedType: props.type || \"\",\n\t\t\tselectedAssignee: props.assignee || \"\",\n\t\t\tassignees: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.getAssignees();\n\t\tif (_.isEmpty(this.state.types)) this.refreshTypes();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (prevProps.site !== this.props.site) {\n\t\t\tthis.refreshTypes();\n\t\t}\n\t}\n\n\tgetStatusOptions = () => {\n\t\tconst statusOptions = getJobStatusOptions(this.props);\n\t\tconst options = [\n\t\t\t{\n\t\t\t\tlabel: \"All\",\n\t\t\t\tvalue: \"\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: \"Incomplete\",\n\t\t\t\tvalue: \"Incomplete\",\n\t\t\t},\n\t\t\t...statusOptions.map((s) => ({\n\t\t\t\tlabel: s.text,\n\t\t\t\tvalue: s.text,\n\t\t\t})),\n\t\t];\n\t\t// console.log('getStatusOptions', JSON.stringify(options, null, 2));\n\t\treturn options;\n\t};\n\n\tgetPriorityOptions = () => {\n\t\tconst priorityOptions = jobPriorityOptions;\n\t\tconst defaultPriority = getDefaultJobPriority();\n\t\tconst options = [\n\t\t\t{\n\t\t\t\tlabel: \"All\",\n\t\t\t\tvalue: \"\",\n\t\t\t},\n\t\t\t...priorityOptions.map((p) => ({\n\t\t\t\tlabel: p.label,\n\t\t\t\tvalue:\n\t\t\t\t\tp.label === defaultPriority?.label ? `${p.label}|undefined` : p.label,\n\t\t\t})),\n\t\t];\n\t\t// console.log('getPriorityOptions', JSON.stringify(options, null, 2));\n\t\treturn options;\n\t};\n\n\tgetAssignees = async () => {\n\t\ttry {\n\t\t\tconst res = await maintenanceActions.getAssignees(this.props.site);\n\t\t\tlet assignees = res.data.Users.map((t) => {\n\t\t\t\treturn { label: t.displayName, value: t.id };\n\t\t\t});\n\t\t\tassignees = _.orderBy(assignees, \"label\");\n\n\t\t\tassignees.splice(0, 0, { label: \"All\", value: \"\" });\n\n\t\t\tconst newState = { assignees };\n\n\t\t\tif (!assignees.some((a) => a.value === this.state.selectedAssignee)) {\n\t\t\t\tnewState.selectedAssignee = \"\";\n\t\t\t}\n\t\t\t// console.log('refreshassignees', assignees);\n\t\t\tthis.setState(newState);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"getAssignees\", error);\n\t\t}\n\t};\n\n\trefreshTypes = async () => {\n\t\tconst { data } = await maintenanceActions.getJobTypes(\n\t\t\tHelper.getSite(this.props.site),\n\t\t);\n\t\tconst types = data.map((t) => {\n\t\t\treturn { label: t.typeName, value: t.typeName };\n\t\t});\n\t\ttypes.splice(0, 0, { label: \"All\", value: \"\" });\n\t\t// console.log('refreshTypes', types);\n\t\tthis.setState({ types });\n\t};\n\n\tonSelectOption = (key, value) => {\n\t\tconst newState = {};\n\t\tnewState[key] = value;\n\t\tthis.setState(newState);\n\t};\n\n\tonDone = () => {\n\t\tconst { onClose } = this.props;\n\t\tconst { selectedStatus, selectedPriority, selectedType, selectedAssignee } =\n\t\t\tthis.state;\n\t\tif (onClose)\n\t\t\tonClose({\n\t\t\t\tstatus: selectedStatus,\n\t\t\t\tstatusText: this.getStatusOptions().find(\n\t\t\t\t\t(o) => o.value === selectedStatus,\n\t\t\t\t)?.label,\n\t\t\t\tpriority: selectedPriority,\n\t\t\t\tpriorityText: this.getPriorityOptions().find(\n\t\t\t\t\t(o) => o.value === selectedPriority,\n\t\t\t\t)?.label,\n\t\t\t\ttype: selectedType,\n\t\t\t\tassignee: selectedAssignee,\n\t\t\t\tassigneeName: this.state.assignees.find(\n\t\t\t\t\t(a) => a.value === selectedAssignee,\n\t\t\t\t)?.label,\n\t\t\t});\n\t};\n\n\trenderTitle() {\n\t\tconst { title } = this.props;\n\t\treturn (\n\t\t\t<View style={styles.titleContainer}>\n\t\t\t\t<Text style={styles.titleText}>{title || \"Filter By\"}</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderCancel() {\n\t\tconst { colourBrandingMain, cancelText } = this.props;\n\t\treturn (\n\t\t\t<TouchableOpacity onPress={this.onDone}>\n\t\t\t\t<View style={styles.cancelContainer}>\n\t\t\t\t\t<Text style={[styles.cancelText, { color: colourBrandingMain }]}>\n\t\t\t\t\t\t{cancelText || \"Done\"}\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableOpacity>\n\t\t);\n\t}\n\n\trenderOptions(title, options, selectedKey) {\n\t\tconst { colourBrandingMain } = this.props;\n\t\treturn (\n\t\t\t<View style={styles.optionsContainer}>\n\t\t\t\t<Text style={styles.optionsTitle}>{title}</Text>\n\t\t\t\t<View style={styles.options}>\n\t\t\t\t\t{options.map((o) => {\n\t\t\t\t\t\tconst selected = this.state[selectedKey];\n\t\t\t\t\t\tconst backgroundColor =\n\t\t\t\t\t\t\to.value === selected ? colourBrandingMain : \"#fff\";\n\t\t\t\t\t\tconst color = o.value === selected ? \"#fff\" : colourBrandingMain;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tkey={o.label}\n\t\t\t\t\t\t\t\tonPress={() => this.onSelectOption(selectedKey, o.value)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\tstyles.optionContainer,\n\t\t\t\t\t\t\t\t\t\t{ backgroundColor, borderColor: colourBrandingMain },\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Text style={[styles.optionText, { color }]}>{o.label}</Text>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</View>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\t// console.log('FilterPopupMenu', JSON.stringify({ category: this.props.user.category, permissions: this.props.user.permissions }, null, 2))\n\t\tconst isStaff = this.props.user.category === \"staff\";\n\t\tconst canFilterAssignee = !_.includes(\n\t\t\tthis.props.user.permissions,\n\t\t\tvalues.permissionMaintenanceAssignment,\n\t\t);\n\n\t\treturn (\n\t\t\t<Modal\n\t\t\t\tvisible\n\t\t\t\ttransparent\n\t\t\t\tanimationType=\"slide\"\n\t\t\t\tonRequestClose={this.onDone}\n\t\t\t>\n\t\t\t\t<View style={styles.container}>\n\t\t\t\t\t<View style={styles.menu}>\n\t\t\t\t\t\t{this.renderTitle()}\n\t\t\t\t\t\t<ScrollView style={styles.optionContent}>\n\t\t\t\t\t\t\t{this.renderOptions(\n\t\t\t\t\t\t\t\t\"Status\",\n\t\t\t\t\t\t\t\tthis.getStatusOptions(),\n\t\t\t\t\t\t\t\t\"selectedStatus\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{isStaff\n\t\t\t\t\t\t\t\t? this.renderOptions(\n\t\t\t\t\t\t\t\t\t\t\"Priority\",\n\t\t\t\t\t\t\t\t\t\tthis.getPriorityOptions(),\n\t\t\t\t\t\t\t\t\t\t\"selectedPriority\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t\t{this.renderOptions(\"Type\", this.state.types, \"selectedType\")}\n\t\t\t\t\t\t\t{canFilterAssignee\n\t\t\t\t\t\t\t\t? this.renderOptions(\n\t\t\t\t\t\t\t\t\t\t\"Assigned To\",\n\t\t\t\t\t\t\t\t\t\tthis.state.assignees,\n\t\t\t\t\t\t\t\t\t\t\"selectedAssignee\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t{this.renderCancel()}\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</Modal>\n\t\t);\n\t}\n}\n\nconst styles = {\n\tcontainer: {\n\t\tposition: \"absolute\",\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbackgroundColor: \"rgba(0,0,0,0.5)\",\n\t\tzIndex: 1000,\n\t},\n\tmenu: {\n\t\tposition: \"absolute\",\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbackgroundColor: \"#fff\",\n\t\tborderTopLeftRadius: 12,\n\t\tborderTopRightRadius: 12,\n\t\tmaxHeight: SCREEN_HEIGHT * 0.8,\n\t},\n\tcancelContainer: {\n\t\tpaddingVertical: 16,\n\t\tborderColor: Colours.LINEGREY,\n\t\tborderTopWidth: 1,\n\t\tpaddingHorizontal: 16,\n\t},\n\tcancelText: {\n\t\tfontFamily: \"sf-medium\",\n\t\tfontSize: 16,\n\t\ttextAlign: \"center\",\n\t\tcolor: Colours.TEXT_DARK,\n\t},\n\ttitleContainer: {\n\t\tpadding: 16,\n\t\tborderColor: Colours.LINEGREY,\n\t\tborderBottomWidth: 1,\n\t},\n\ttitleText: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 16,\n\t\ttextAlign: \"center\",\n\t\tcolor: Colours.TEXT_DARK,\n\t},\n\toptionContent: {\n\t\tpaddingVertical: 10,\n\t},\n\toptionsContainer: {\n\t\tmarginHorizontal: 14,\n\t},\n\toptionsTitle: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tmarginBottom: 4,\n\t},\n\toptions: {\n\t\tflex: 1,\n\t\tflexDirection: \"row\",\n\t\tflexWrap: \"wrap\",\n\t},\n\toptionContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tminWidth: 50,\n\t\theight: 30,\n\t\tpaddingHorizontal: 8,\n\t\tborderRadius: 4,\n\t\tborderWidth: 1,\n\t\tmarginRight: 8,\n\t\tmarginBottom: 8,\n\t},\n\toptionText: {\n\t\tcolor: \"#fff\",\n\t\ttextAlign: \"center\",\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 13,\n\t},\n};\n\nconst mapStateToProps = (state) => {\n\tconst { user } = state;\n\n\treturn {\n\t\tuser,\n\t\tsite: user.site,\n\t\tcolourBrandingMain: Colours.getMainBrandingColourFromState(state),\n\t\tstatusTypes: state[values.reducerKey].jobstatuses,\n\t};\n};\n\nexport default connect(mapStateToProps, {})(FilterPopupMenu);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,15 +15,18 @@ import { values } from "../values.config";
|
|
|
15
15
|
class MaintenanceList extends Component {
|
|
16
16
|
constructor(props) {
|
|
17
17
|
super(props);
|
|
18
|
-
_defineProperty(this, "
|
|
18
|
+
_defineProperty(this, "_refreshCounter", 0);
|
|
19
|
+
_defineProperty(this, "refresh", overrideFilters => {
|
|
20
|
+
const currentCounter = ++this._refreshCounter;
|
|
19
21
|
this.onLoadingChanged(true, async () => {
|
|
20
22
|
try {
|
|
21
|
-
const
|
|
22
|
-
jobfilters
|
|
23
|
-
} = this.props;
|
|
23
|
+
const jobfilters = overrideFilters || this.props.jobfilters;
|
|
24
24
|
const res = await maintenanceActions.getJobs2(this.props.site, jobfilters.status, jobfilters.priority, jobfilters.type, null,
|
|
25
25
|
// No lastKey = first page
|
|
26
26
|
jobfilters.assignee);
|
|
27
|
+
|
|
28
|
+
// Discard stale responses from earlier filter changes
|
|
29
|
+
if (currentCounter !== this._refreshCounter) return;
|
|
27
30
|
const jobs = res.data.Items;
|
|
28
31
|
const lastKey = res.data.LastKey;
|
|
29
32
|
|
|
@@ -34,9 +37,12 @@ class MaintenanceList extends Component {
|
|
|
34
37
|
hasMore: !!lastKey
|
|
35
38
|
});
|
|
36
39
|
} catch (error) {
|
|
40
|
+
if (currentCounter !== this._refreshCounter) return;
|
|
37
41
|
console.log("refresh error", error);
|
|
38
42
|
} finally {
|
|
39
|
-
this.
|
|
43
|
+
if (currentCounter === this._refreshCounter) {
|
|
44
|
+
this.onLoadingChanged(false);
|
|
45
|
+
}
|
|
40
46
|
}
|
|
41
47
|
});
|
|
42
48
|
});
|
|
@@ -174,13 +180,13 @@ class MaintenanceList extends Component {
|
|
|
174
180
|
_defineProperty(this, "onSelectFilter", selected => {
|
|
175
181
|
this.props.jobsFilterLoaded(selected);
|
|
176
182
|
this.onToggleFilter();
|
|
177
|
-
// Reset pagination
|
|
183
|
+
// Reset pagination but keep old list visible while loading
|
|
184
|
+
// Pass filters directly to avoid stale props from async Redux update
|
|
178
185
|
this.setState({
|
|
179
186
|
lastKey: null,
|
|
180
|
-
hasMore: true
|
|
181
|
-
filteredList: []
|
|
187
|
+
hasMore: true
|
|
182
188
|
}, () => {
|
|
183
|
-
this.refresh();
|
|
189
|
+
this.refresh(selected);
|
|
184
190
|
});
|
|
185
191
|
});
|
|
186
192
|
_defineProperty(this, "getFilterButtonText", () => {
|
|
@@ -205,6 +211,18 @@ class MaintenanceList extends Component {
|
|
|
205
211
|
}
|
|
206
212
|
return `Filtering by ${filterTexts.join(", ")}`;
|
|
207
213
|
});
|
|
214
|
+
_defineProperty(this, "clearFilters", () => {
|
|
215
|
+
const emptyFilters = {
|
|
216
|
+
status: "",
|
|
217
|
+
statusText: "",
|
|
218
|
+
priority: "",
|
|
219
|
+
priorityText: "",
|
|
220
|
+
type: "",
|
|
221
|
+
assignee: "",
|
|
222
|
+
assigneeName: ""
|
|
223
|
+
};
|
|
224
|
+
this.onSelectFilter(emptyFilters);
|
|
225
|
+
});
|
|
208
226
|
_defineProperty(this, "renderListFooter", () => {
|
|
209
227
|
if (!this.state.loadingMore) return null;
|
|
210
228
|
return /*#__PURE__*/React.createElement(View, {
|
|
@@ -241,13 +259,30 @@ class MaintenanceList extends Component {
|
|
|
241
259
|
}
|
|
242
260
|
return this.props.userCategory === "staff" ? values.emptyRequestsStaff : values.emptyRequestsUser;
|
|
243
261
|
}
|
|
262
|
+
hasFiltersActive() {
|
|
263
|
+
const {
|
|
264
|
+
jobfilters
|
|
265
|
+
} = this.props;
|
|
266
|
+
return !_.isEmpty(jobfilters.status) || !_.isEmpty(jobfilters.priority) || !_.isEmpty(jobfilters.type) || !_.isEmpty(jobfilters.assignee);
|
|
267
|
+
}
|
|
244
268
|
renderEmptyList() {
|
|
245
|
-
|
|
246
|
-
|
|
269
|
+
if (this.state.loading) return null;
|
|
270
|
+
const hasFilters = this.hasFiltersActive();
|
|
271
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
247
272
|
style: {
|
|
248
|
-
marginHorizontal: 16
|
|
273
|
+
marginHorizontal: 16,
|
|
274
|
+
alignItems: "center"
|
|
249
275
|
}
|
|
250
|
-
}
|
|
276
|
+
}, /*#__PURE__*/React.createElement(Components.EmptyStateMain, {
|
|
277
|
+
title: hasFilters ? "No requests match your filters" : this.getEmptyStateText()
|
|
278
|
+
}), hasFilters && /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
279
|
+
onPress: this.clearFilters,
|
|
280
|
+
style: styles.clearFiltersButton
|
|
281
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
282
|
+
style: [styles.clearFiltersText, {
|
|
283
|
+
color: this.props.colourBrandingMain
|
|
284
|
+
}]
|
|
285
|
+
}, "Clear filters")));
|
|
251
286
|
}
|
|
252
287
|
renderFilterButton() {
|
|
253
288
|
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
@@ -386,6 +421,19 @@ const styles = StyleSheet.create({
|
|
|
386
421
|
loadingMore: {
|
|
387
422
|
paddingVertical: 20,
|
|
388
423
|
alignItems: "center"
|
|
424
|
+
},
|
|
425
|
+
clearFiltersButton: {
|
|
426
|
+
marginTop: 12,
|
|
427
|
+
paddingVertical: 10,
|
|
428
|
+
paddingHorizontal: 24,
|
|
429
|
+
borderRadius: 8,
|
|
430
|
+
borderWidth: 1,
|
|
431
|
+
borderColor: "#ccc",
|
|
432
|
+
backgroundColor: "#f9f9f9"
|
|
433
|
+
},
|
|
434
|
+
clearFiltersText: {
|
|
435
|
+
fontFamily: "sf-semibold",
|
|
436
|
+
fontSize: 15
|
|
389
437
|
}
|
|
390
438
|
});
|
|
391
439
|
const mapStateToProps = state => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","Text","View","StyleSheet","FlatList","TouchableOpacity","_","connect","maintenanceActions","jobsLoaded","jobAdded","jobsAdded","jobStatusesUpdate","jobHideSeenUpdate","jobsFilterLoaded","MaintenanceListItem","FilterPopupMenu","Components","Colours","Helper","values","MaintenanceList","constructor","props","_defineProperty","onLoadingChanged","jobfilters","res","getJobs2","site","status","priority","type","assignee","jobs","data","Items","lastKey","LastKey","setState","hasMore","error","console","log","loading","loadingMore","searchText","state","newJobs","newLastKey","getJobTypes","getSite","types","map","t","label","typeName","value","splice","jobId","job","getJobByJobId","source","filteredList","jobIdMatch","find","j","filter","room","toLowerCase","indexOf","fetchJob","jobIndex","unshift","refresh","callback","isEmpty","resetDataSource","showFilterPopup","selected","onToggleFilter","filterTexts","push","statusText","priorityText","assigneeName","join","createElement","style","styles","LoadingIndicator","visible","componentDidMount","refreshTypes","componentDidUpdate","prevProps","dataUpdated","isEqual","getEmptyStateText","options","EmptyText","userCategory","emptyRequestsStaff","emptyRequestsUser","renderEmptyList","EmptyStateMain","title","marginHorizontal","renderFilterButton","onPress","filterButton","filterButtonText","color","colourBrandingMain","getFilterButtonText","renderSearch","hasPermission","searchContainer","GenericInput","placeholder","textEntityName","onChangeText","onSearchText","onSubmitEditing","onSearchSubmit","squaredCorners","hasClear","returnKeyType","renderListHeader","ListHeaderComponent","height","renderList","keyboardShouldPersistTaps","flex","contentContainerStyle","paddingBottom","keyExtractor","item","id","renderItem","itemStyle","ListEmptyComponent","ListFooterComponent","renderListFooter","onEndReached","loadMore","onEndReachedThreshold","renderFilterPopup","onClose","onSelectFilter","render","container","create","backgroundColor","filterContainerOuter","flexDirection","justifyContent","alignItems","paddingHorizontal","paddingVertical","filterTitle","fontFamily","fontSize","letterSpacing","filterContainer","filterText","marginRight","filterIcon","mapStateToProps","user","notifications","reducerKey","jobsOrdered","orderBy","includes","permissions","category","getMainBrandingColourFromState","updateKey","statusTypes","jobstatuses","forwardRef"],"sources":["MaintenanceList.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { Text } from \"@plusscommunities/pluss-core-app/components\";\nimport { View, StyleSheet, FlatList, TouchableOpacity } from \"react-native\";\nimport _ from \"lodash\";\nimport { connect } from \"react-redux\";\nimport { maintenanceActions } from \"../apis\";\nimport {\n\tjobsLoaded,\n\tjobAdded,\n\tjobsAdded,\n\tjobStatusesUpdate,\n\tjobHideSeenUpdate,\n\tjobsFilterLoaded,\n} from \"../actions\";\nimport MaintenanceListItem from \"../components/MaintenanceListItem\";\nimport FilterPopupMenu from \"./FilterPopupMenu\";\nimport { Components, Colours, Helper } from \"../core.config\";\nimport { values } from \"../values.config\";\n\nclass MaintenanceList extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\ttypes: [],\n\t\t\tfilteredList: props.jobs,\n\t\t\tloading: false,\n\t\t\tloadingMore: false,\n\t\t\thasMore: true,\n\t\t\tlastKey: null,\n\t\t\tsearchText: \"\",\n\t\t\tshowFilterPopup: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.props.jobStatusesUpdate(this.props.site);\n\t\tthis.props.jobHideSeenUpdate(this.props.site);\n\t\tthis.refresh();\n\t\tthis.refreshTypes();\n\t\tthis.resetDataSource();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();\n\t\tif (\n\t\t\t!_.isEqual(prevProps.jobs, this.props.jobs) ||\n\t\t\t!_.isEqual(prevProps.jobfilters, this.props.jobfilters)\n\t\t)\n\t\t\tthis.resetDataSource();\n\t}\n\n\trefresh = () => {\n\t\tthis.onLoadingChanged(true, async () => {\n\t\t\ttry {\n\t\t\t\tconst { jobfilters } = this.props;\n\t\t\t\tconst res = await maintenanceActions.getJobs2(\n\t\t\t\t\tthis.props.site,\n\t\t\t\t\tjobfilters.status,\n\t\t\t\t\tjobfilters.priority,\n\t\t\t\t\tjobfilters.type,\n\t\t\t\t\tnull, // No lastKey = first page\n\t\t\t\t\tjobfilters.assignee,\n\t\t\t\t);\n\n\t\t\t\tconst jobs = res.data.Items;\n\t\t\t\tconst lastKey = res.data.LastKey;\n\n\t\t\t\t// Always replace jobs on refresh (filters are server-side)\n\t\t\t\tthis.props.jobsLoaded(jobs);\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tlastKey,\n\t\t\t\t\thasMore: !!lastKey,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(\"refresh error\", error);\n\t\t\t} finally {\n\t\t\t\tthis.onLoadingChanged(false);\n\t\t\t}\n\t\t});\n\t};\n\n\tloadMore = () => {\n\t\tconst { loading, loadingMore, hasMore, lastKey, searchText } = this.state;\n\n\t\t// Don't load if already loading, no more pages, or during search\n\t\tif (loading || loadingMore || !hasMore || !lastKey || searchText) return;\n\n\t\tthis.setState({ loadingMore: true }, async () => {\n\t\t\ttry {\n\t\t\t\tconst { jobfilters } = this.props;\n\t\t\t\tconst res = await maintenanceActions.getJobs2(\n\t\t\t\t\tthis.props.site,\n\t\t\t\t\tjobfilters.status,\n\t\t\t\t\tjobfilters.priority,\n\t\t\t\t\tjobfilters.type,\n\t\t\t\t\tlastKey,\n\t\t\t\t\tjobfilters.assignee,\n\t\t\t\t);\n\n\t\t\t\tconst newJobs = res.data.Items;\n\t\t\t\tconst newLastKey = res.data.LastKey;\n\n\t\t\t\t// Append to existing jobs\n\t\t\t\tthis.props.jobsAdded(newJobs);\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tlastKey: newLastKey,\n\t\t\t\t\thasMore: !!newLastKey,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(\"loadMore error\", error);\n\t\t\t} finally {\n\t\t\t\tthis.setState({ loadingMore: false });\n\t\t\t}\n\t\t});\n\t};\n\n\trefreshTypes = async () => {\n\t\tconst { data } = await maintenanceActions.getJobTypes(\n\t\t\tHelper.getSite(this.props.site),\n\t\t);\n\t\tconst types = data.map((t) => {\n\t\t\treturn { label: t.typeName, value: t.typeName };\n\t\t});\n\t\ttypes.splice(0, 0, { label: \"All\", value: \"\" });\n\t\t// console.log('refreshTypes', types);\n\t\tthis.setState({ types });\n\t};\n\n\tfetchJob = (jobId) => {\n\t\tif (this.state.loading) return;\n\n\t\tthis.onLoadingChanged(true, async () => {\n\t\t\ttry {\n\t\t\t\tconst job = await maintenanceActions.getJobByJobId(\n\t\t\t\t\tthis.props.site,\n\t\t\t\t\tjobId,\n\t\t\t\t);\n\t\t\t\t// console.log('fetchJob', job?.data);\n\t\t\t\tthis.props.jobAdded(job.data);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(\"fetchJob error\", error);\n\t\t\t} finally {\n\t\t\t\tthis.onLoadingChanged(false);\n\t\t\t}\n\t\t});\n\t};\n\n\tgetEmptyStateText() {\n\t\tif (this.props.options && !_.isEmpty(this.props.options.EmptyText)) {\n\t\t\treturn this.props.options.EmptyText;\n\t\t}\n\t\treturn this.props.userCategory === \"staff\"\n\t\t\t? values.emptyRequestsStaff\n\t\t\t: values.emptyRequestsUser;\n\t}\n\n\tresetDataSource = (source = \"\") => {\n\t\tconst { searchText } = this.state;\n\t\tconst { jobs } = this.props;\n\n\t\tlet filteredList = jobs;\n\t\tlet jobIdMatch = null;\n\n\t\t// Client-side search filtering (search is not supported server-side)\n\t\tif (searchText) {\n\t\t\tjobIdMatch = _.find(jobs, (j) => j.jobId === searchText);\n\t\t\tfilteredList = jobs.filter((j) => {\n\t\t\t\tif (\n\t\t\t\t\tj.room &&\n\t\t\t\t\tj.room.toLowerCase().indexOf(searchText.toLowerCase()) > -1\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tif (!jobIdMatch) this.fetchJob(searchText);\n\t\t}\n\n\t\t// Note: status, priority, type, and assignee filters are applied server-side\n\t\t// via getJobs2, so no client-side filtering needed for those\n\n\t\tif (jobIdMatch) {\n\t\t\tconst jobIndex = filteredList.indexOf(jobIdMatch);\n\t\t\tif (jobIndex > -1) {\n\t\t\t\tfilteredList.splice(jobIndex, 1);\n\t\t\t}\n\t\t\tfilteredList.unshift(jobIdMatch);\n\t\t}\n\t\t// Only refresh on initial load, not on filter changes (pagination handles data)\n\t\tif (source !== \"search\" && source !== \"filter\") this.refresh();\n\n\t\tthis.setState({ filteredList });\n\t};\n\n\tonLoadingChanged = (loading, callback) => {\n\t\tthis.setState({ loading }, () => {\n\t\t\tif (this.props.onLoadingChanged)\n\t\t\t\tthis.props.onLoadingChanged(this.state.loading);\n\t\t\tif (callback) callback();\n\t\t});\n\t};\n\n\tonSearchText = (value) => {\n\t\tthis.setState({ searchText: value }, () => {\n\t\t\tif (_.isEmpty(this.state.searchText)) this.resetDataSource(\"search\");\n\t\t});\n\t};\n\n\tonSearchSubmit = () => {\n\t\tthis.resetDataSource(\"search\");\n\t};\n\n\tonToggleFilter = () => {\n\t\tthis.setState({ showFilterPopup: !this.state.showFilterPopup });\n\t};\n\n\tonSelectFilter = (selected) => {\n\t\tthis.props.jobsFilterLoaded(selected);\n\t\tthis.onToggleFilter();\n\t\t// Reset pagination and clear existing list before refresh\n\t\tthis.setState({ lastKey: null, hasMore: true, filteredList: [] }, () => {\n\t\t\tthis.refresh();\n\t\t});\n\t};\n\n\tgetFilterButtonText = () => {\n\t\tconst { jobfilters } = this.props;\n\t\tconst filterTexts = [];\n\t\tif (!_.isEmpty(jobfilters.status)) {\n\t\t\tfilterTexts.push(jobfilters.statusText);\n\t\t}\n\t\tif (!_.isEmpty(jobfilters.priority)) {\n\t\t\tfilterTexts.push(jobfilters.priorityText);\n\t\t}\n\t\tif (!_.isEmpty(jobfilters.type)) {\n\t\t\tfilterTexts.push(jobfilters.type);\n\t\t}\n\t\tif (!_.isEmpty(jobfilters.assignee)) {\n\t\t\tfilterTexts.push(jobfilters.assigneeName);\n\t\t}\n\t\tif (_.isEmpty(filterTexts)) {\n\t\t\treturn \"Filter\";\n\t\t}\n\t\treturn `Filtering by ${filterTexts.join(\", \")}`;\n\t};\n\n\trenderEmptyList() {\n\t\treturn this.state.loading ? null : (\n\t\t\t<Components.EmptyStateMain\n\t\t\t\ttitle={this.getEmptyStateText()}\n\t\t\t\tstyle={{ marginHorizontal: 16 }}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderFilterButton() {\n\t\treturn (\n\t\t\t<TouchableOpacity onPress={this.onToggleFilter}>\n\t\t\t\t<View style={styles.filterButton}>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\tstyles.filterButtonText,\n\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.getFilterButtonText()}\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableOpacity>\n\t\t);\n\t}\n\n\trenderSearch() {\n\t\tif (!this.props.hasPermission) return null;\n\n\t\treturn (\n\t\t\t<View style={styles.searchContainer}>\n\t\t\t\t<Components.GenericInput\n\t\t\t\t\tplaceholder={`Search by ${values.textEntityName} ID or Address`}\n\t\t\t\t\tvalue={this.state.searchText}\n\t\t\t\t\tonChangeText={this.onSearchText}\n\t\t\t\t\tonSubmitEditing={this.onSearchSubmit}\n\t\t\t\t\tsquaredCorners\n\t\t\t\t\thasClear\n\t\t\t\t\t// keyboardType={'numeric'}\n\t\t\t\t\treturnKeyType={\"done\"}\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderListHeader() {\n\t\tconst { ListHeaderComponent } = this.props;\n\t\treturn (\n\t\t\t<View>\n\t\t\t\t{ListHeaderComponent ? (\n\t\t\t\t\tListHeaderComponent\n\t\t\t\t) : (\n\t\t\t\t\t<View style={{ height: 8 }} />\n\t\t\t\t)}\n\t\t\t\t{this.renderFilterButton()}\n\t\t\t\t{this.renderSearch()}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderList() {\n\t\tconst { filteredList } = this.state;\n\n\t\treturn (\n\t\t\t<FlatList\n\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\tstyle={{ flex: 1 }}\n\t\t\t\tcontentContainerStyle={{ paddingBottom: 16 }}\n\t\t\t\tdata={filteredList}\n\t\t\t\tkeyExtractor={(item) => item.id}\n\t\t\t\trenderItem={({ item }) => (\n\t\t\t\t\t<MaintenanceListItem style={this.props.itemStyle} job={item} />\n\t\t\t\t)}\n\t\t\t\tListEmptyComponent={this.renderEmptyList()}\n\t\t\t\tListHeaderComponent={this.renderListHeader()}\n\t\t\t\tListFooterComponent={this.renderListFooter()}\n\t\t\t\tonEndReached={this.loadMore}\n\t\t\t\tonEndReachedThreshold={0.5}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderListFooter = () => {\n\t\tif (!this.state.loadingMore) return null;\n\n\t\treturn (\n\t\t\t<View style={styles.loadingMore}>\n\t\t\t\t<Components.LoadingIndicator visible={true} />\n\t\t\t</View>\n\t\t);\n\t};\n\n\trenderFilterPopup() {\n\t\tconst { jobfilters } = this.props;\n\t\tconst { showFilterPopup, types } = this.state;\n\t\tif (!showFilterPopup) return null;\n\n\t\treturn (\n\t\t\t<FilterPopupMenu\n\t\t\t\tsite={this.props.site}\n\t\t\t\ttypes={types}\n\t\t\t\tstatus={jobfilters.status}\n\t\t\t\tpriority={jobfilters.priority}\n\t\t\t\tassignee={jobfilters.assignee}\n\t\t\t\ttype={jobfilters.type}\n\t\t\t\tonClose={this.onSelectFilter}\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<View style={[styles.container, this.props.style]}>\n\t\t\t\t{this.renderList()}\n\t\t\t\t{this.renderFilterPopup()}\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nconst styles = StyleSheet.create({\n\tcontainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: \"#fff\",\n\t},\n\tfilterContainerOuter: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tpaddingHorizontal: 16,\n\t\tpaddingVertical: 16,\n\t},\n\tfilterTitle: {\n\t\tfontFamily: \"sf-bold\",\n\t\tfontSize: 11,\n\t\tletterSpacing: 0.8,\n\t\tcolor: \"#4d4d4d\",\n\t},\n\tfilterContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t},\n\tfilterText: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 16,\n\t\tmarginRight: 6,\n\t},\n\tfilterIcon: {\n\t\tfontSize: 20,\n\t},\n\tsearchContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tpaddingBottom: 8,\n\t\tpaddingHorizontal: 16,\n\t},\n\tfilterButton: {\n\t\tpaddingBottom: 8,\n\t\tpaddingHorizontal: 16,\n\t\tflexDirection: \"row-reverse\",\n\t},\n\tfilterButtonText: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 16,\n\t},\n\tloadingMore: {\n\t\tpaddingVertical: 20,\n\t\talignItems: \"center\",\n\t},\n});\n\nconst mapStateToProps = (state) => {\n\tconst { user, notifications } = state;\n\tconst jobs = state[values.reducerKey];\n\tconst jobsOrdered = _.orderBy(jobs.jobs, [\"createdUnix\"], [\"desc\"]);\n\tconst hasPermission = _.includes(user.permissions, \"maintenanceTracking\");\n\n\treturn {\n\t\thasPermission,\n\t\tjobs: jobsOrdered,\n\t\tsite: user.site,\n\t\tuserCategory: user.category,\n\t\tcolourBrandingMain: Colours.getMainBrandingColourFromState(state),\n\t\tdataUpdated: notifications.dataUpdated[values.updateKey],\n\t\tstatusTypes: state[values.reducerKey].jobstatuses,\n\t\tjobfilters: state[values.reducerKey].jobfilters || {},\n\t};\n};\n\nexport default connect(\n\tmapStateToProps,\n\t{\n\t\tjobsLoaded,\n\t\tjobAdded,\n\t\tjobsAdded,\n\t\tjobStatusesUpdate,\n\t\tjobHideSeenUpdate,\n\t\tjobsFilterLoaded,\n\t},\n\tnull,\n\t{\n\t\tforwardRef: true,\n\t},\n)(MaintenanceList);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","Text","View","StyleSheet","FlatList","TouchableOpacity","_","connect","maintenanceActions","jobsLoaded","jobAdded","jobsAdded","jobStatusesUpdate","jobHideSeenUpdate","jobsFilterLoaded","MaintenanceListItem","FilterPopupMenu","Components","Colours","Helper","values","MaintenanceList","constructor","props","_defineProperty","overrideFilters","currentCounter","_refreshCounter","onLoadingChanged","jobfilters","res","getJobs2","site","status","priority","type","assignee","jobs","data","Items","lastKey","LastKey","setState","hasMore","error","console","log","loading","loadingMore","searchText","state","newJobs","newLastKey","getJobTypes","getSite","types","map","t","label","typeName","value","splice","jobId","job","getJobByJobId","source","filteredList","jobIdMatch","find","j","filter","room","toLowerCase","indexOf","fetchJob","jobIndex","unshift","refresh","callback","isEmpty","resetDataSource","showFilterPopup","selected","onToggleFilter","filterTexts","push","statusText","priorityText","assigneeName","join","emptyFilters","onSelectFilter","createElement","style","styles","LoadingIndicator","visible","componentDidMount","refreshTypes","componentDidUpdate","prevProps","dataUpdated","isEqual","getEmptyStateText","options","EmptyText","userCategory","emptyRequestsStaff","emptyRequestsUser","hasFiltersActive","renderEmptyList","hasFilters","marginHorizontal","alignItems","EmptyStateMain","title","onPress","clearFilters","clearFiltersButton","clearFiltersText","color","colourBrandingMain","renderFilterButton","filterButton","filterButtonText","getFilterButtonText","renderSearch","hasPermission","searchContainer","GenericInput","placeholder","textEntityName","onChangeText","onSearchText","onSubmitEditing","onSearchSubmit","squaredCorners","hasClear","returnKeyType","renderListHeader","ListHeaderComponent","height","renderList","keyboardShouldPersistTaps","flex","contentContainerStyle","paddingBottom","keyExtractor","item","id","renderItem","itemStyle","ListEmptyComponent","ListFooterComponent","renderListFooter","onEndReached","loadMore","onEndReachedThreshold","renderFilterPopup","onClose","render","container","create","backgroundColor","filterContainerOuter","flexDirection","justifyContent","paddingHorizontal","paddingVertical","filterTitle","fontFamily","fontSize","letterSpacing","filterContainer","filterText","marginRight","filterIcon","marginTop","borderRadius","borderWidth","borderColor","mapStateToProps","user","notifications","reducerKey","jobsOrdered","orderBy","includes","permissions","category","getMainBrandingColourFromState","updateKey","statusTypes","jobstatuses","forwardRef"],"sources":["MaintenanceList.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { Text } from \"@plusscommunities/pluss-core-app/components\";\nimport { View, StyleSheet, FlatList, TouchableOpacity } from \"react-native\";\nimport _ from \"lodash\";\nimport { connect } from \"react-redux\";\nimport { maintenanceActions } from \"../apis\";\nimport {\n\tjobsLoaded,\n\tjobAdded,\n\tjobsAdded,\n\tjobStatusesUpdate,\n\tjobHideSeenUpdate,\n\tjobsFilterLoaded,\n} from \"../actions\";\nimport MaintenanceListItem from \"../components/MaintenanceListItem\";\nimport FilterPopupMenu from \"./FilterPopupMenu\";\nimport { Components, Colours, Helper } from \"../core.config\";\nimport { values } from \"../values.config\";\n\nclass MaintenanceList extends Component {\n\t_refreshCounter = 0;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\ttypes: [],\n\t\t\tfilteredList: props.jobs,\n\t\t\tloading: false,\n\t\t\tloadingMore: false,\n\t\t\thasMore: true,\n\t\t\tlastKey: null,\n\t\t\tsearchText: \"\",\n\t\t\tshowFilterPopup: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.props.jobStatusesUpdate(this.props.site);\n\t\tthis.props.jobHideSeenUpdate(this.props.site);\n\t\tthis.refresh();\n\t\tthis.refreshTypes();\n\t\tthis.resetDataSource();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();\n\t\tif (\n\t\t\t!_.isEqual(prevProps.jobs, this.props.jobs) ||\n\t\t\t!_.isEqual(prevProps.jobfilters, this.props.jobfilters)\n\t\t)\n\t\t\tthis.resetDataSource();\n\t}\n\n\trefresh = (overrideFilters) => {\n\t\tconst currentCounter = ++this._refreshCounter;\n\t\tthis.onLoadingChanged(true, async () => {\n\t\t\ttry {\n\t\t\t\tconst jobfilters = overrideFilters || this.props.jobfilters;\n\t\t\t\tconst res = await maintenanceActions.getJobs2(\n\t\t\t\t\tthis.props.site,\n\t\t\t\t\tjobfilters.status,\n\t\t\t\t\tjobfilters.priority,\n\t\t\t\t\tjobfilters.type,\n\t\t\t\t\tnull, // No lastKey = first page\n\t\t\t\t\tjobfilters.assignee,\n\t\t\t\t);\n\n\t\t\t\t// Discard stale responses from earlier filter changes\n\t\t\t\tif (currentCounter !== this._refreshCounter) return;\n\n\t\t\t\tconst jobs = res.data.Items;\n\t\t\t\tconst lastKey = res.data.LastKey;\n\n\t\t\t\t// Always replace jobs on refresh (filters are server-side)\n\t\t\t\tthis.props.jobsLoaded(jobs);\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tlastKey,\n\t\t\t\t\thasMore: !!lastKey,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (currentCounter !== this._refreshCounter) return;\n\t\t\t\tconsole.log(\"refresh error\", error);\n\t\t\t} finally {\n\t\t\t\tif (currentCounter === this._refreshCounter) {\n\t\t\t\t\tthis.onLoadingChanged(false);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tloadMore = () => {\n\t\tconst { loading, loadingMore, hasMore, lastKey, searchText } = this.state;\n\n\t\t// Don't load if already loading, no more pages, or during search\n\t\tif (loading || loadingMore || !hasMore || !lastKey || searchText) return;\n\n\t\tthis.setState({ loadingMore: true }, async () => {\n\t\t\ttry {\n\t\t\t\tconst { jobfilters } = this.props;\n\t\t\t\tconst res = await maintenanceActions.getJobs2(\n\t\t\t\t\tthis.props.site,\n\t\t\t\t\tjobfilters.status,\n\t\t\t\t\tjobfilters.priority,\n\t\t\t\t\tjobfilters.type,\n\t\t\t\t\tlastKey,\n\t\t\t\t\tjobfilters.assignee,\n\t\t\t\t);\n\n\t\t\t\tconst newJobs = res.data.Items;\n\t\t\t\tconst newLastKey = res.data.LastKey;\n\n\t\t\t\t// Append to existing jobs\n\t\t\t\tthis.props.jobsAdded(newJobs);\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tlastKey: newLastKey,\n\t\t\t\t\thasMore: !!newLastKey,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(\"loadMore error\", error);\n\t\t\t} finally {\n\t\t\t\tthis.setState({ loadingMore: false });\n\t\t\t}\n\t\t});\n\t};\n\n\trefreshTypes = async () => {\n\t\tconst { data } = await maintenanceActions.getJobTypes(\n\t\t\tHelper.getSite(this.props.site),\n\t\t);\n\t\tconst types = data.map((t) => {\n\t\t\treturn { label: t.typeName, value: t.typeName };\n\t\t});\n\t\ttypes.splice(0, 0, { label: \"All\", value: \"\" });\n\t\t// console.log('refreshTypes', types);\n\t\tthis.setState({ types });\n\t};\n\n\tfetchJob = (jobId) => {\n\t\tif (this.state.loading) return;\n\n\t\tthis.onLoadingChanged(true, async () => {\n\t\t\ttry {\n\t\t\t\tconst job = await maintenanceActions.getJobByJobId(\n\t\t\t\t\tthis.props.site,\n\t\t\t\t\tjobId,\n\t\t\t\t);\n\t\t\t\t// console.log('fetchJob', job?.data);\n\t\t\t\tthis.props.jobAdded(job.data);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(\"fetchJob error\", error);\n\t\t\t} finally {\n\t\t\t\tthis.onLoadingChanged(false);\n\t\t\t}\n\t\t});\n\t};\n\n\tgetEmptyStateText() {\n\t\tif (this.props.options && !_.isEmpty(this.props.options.EmptyText)) {\n\t\t\treturn this.props.options.EmptyText;\n\t\t}\n\t\treturn this.props.userCategory === \"staff\"\n\t\t\t? values.emptyRequestsStaff\n\t\t\t: values.emptyRequestsUser;\n\t}\n\n\tresetDataSource = (source = \"\") => {\n\t\tconst { searchText } = this.state;\n\t\tconst { jobs } = this.props;\n\n\t\tlet filteredList = jobs;\n\t\tlet jobIdMatch = null;\n\n\t\t// Client-side search filtering (search is not supported server-side)\n\t\tif (searchText) {\n\t\t\tjobIdMatch = _.find(jobs, (j) => j.jobId === searchText);\n\t\t\tfilteredList = jobs.filter((j) => {\n\t\t\t\tif (\n\t\t\t\t\tj.room &&\n\t\t\t\t\tj.room.toLowerCase().indexOf(searchText.toLowerCase()) > -1\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tif (!jobIdMatch) this.fetchJob(searchText);\n\t\t}\n\n\t\t// Note: status, priority, type, and assignee filters are applied server-side\n\t\t// via getJobs2, so no client-side filtering needed for those\n\n\t\tif (jobIdMatch) {\n\t\t\tconst jobIndex = filteredList.indexOf(jobIdMatch);\n\t\t\tif (jobIndex > -1) {\n\t\t\t\tfilteredList.splice(jobIndex, 1);\n\t\t\t}\n\t\t\tfilteredList.unshift(jobIdMatch);\n\t\t}\n\t\t// Only refresh on initial load, not on filter changes (pagination handles data)\n\t\tif (source !== \"search\" && source !== \"filter\") this.refresh();\n\n\t\tthis.setState({ filteredList });\n\t};\n\n\tonLoadingChanged = (loading, callback) => {\n\t\tthis.setState({ loading }, () => {\n\t\t\tif (this.props.onLoadingChanged)\n\t\t\t\tthis.props.onLoadingChanged(this.state.loading);\n\t\t\tif (callback) callback();\n\t\t});\n\t};\n\n\tonSearchText = (value) => {\n\t\tthis.setState({ searchText: value }, () => {\n\t\t\tif (_.isEmpty(this.state.searchText)) this.resetDataSource(\"search\");\n\t\t});\n\t};\n\n\tonSearchSubmit = () => {\n\t\tthis.resetDataSource(\"search\");\n\t};\n\n\tonToggleFilter = () => {\n\t\tthis.setState({ showFilterPopup: !this.state.showFilterPopup });\n\t};\n\n\tonSelectFilter = (selected) => {\n\t\tthis.props.jobsFilterLoaded(selected);\n\t\tthis.onToggleFilter();\n\t\t// Reset pagination but keep old list visible while loading\n\t\t// Pass filters directly to avoid stale props from async Redux update\n\t\tthis.setState({ lastKey: null, hasMore: true }, () => {\n\t\t\tthis.refresh(selected);\n\t\t});\n\t};\n\n\tgetFilterButtonText = () => {\n\t\tconst { jobfilters } = this.props;\n\t\tconst filterTexts = [];\n\t\tif (!_.isEmpty(jobfilters.status)) {\n\t\t\tfilterTexts.push(jobfilters.statusText);\n\t\t}\n\t\tif (!_.isEmpty(jobfilters.priority)) {\n\t\t\tfilterTexts.push(jobfilters.priorityText);\n\t\t}\n\t\tif (!_.isEmpty(jobfilters.type)) {\n\t\t\tfilterTexts.push(jobfilters.type);\n\t\t}\n\t\tif (!_.isEmpty(jobfilters.assignee)) {\n\t\t\tfilterTexts.push(jobfilters.assigneeName);\n\t\t}\n\t\tif (_.isEmpty(filterTexts)) {\n\t\t\treturn \"Filter\";\n\t\t}\n\t\treturn `Filtering by ${filterTexts.join(\", \")}`;\n\t};\n\n\thasFiltersActive() {\n\t\tconst { jobfilters } = this.props;\n\t\treturn (\n\t\t\t!_.isEmpty(jobfilters.status) ||\n\t\t\t!_.isEmpty(jobfilters.priority) ||\n\t\t\t!_.isEmpty(jobfilters.type) ||\n\t\t\t!_.isEmpty(jobfilters.assignee)\n\t\t);\n\t}\n\n\tclearFilters = () => {\n\t\tconst emptyFilters = {\n\t\t\tstatus: \"\",\n\t\t\tstatusText: \"\",\n\t\t\tpriority: \"\",\n\t\t\tpriorityText: \"\",\n\t\t\ttype: \"\",\n\t\t\tassignee: \"\",\n\t\t\tassigneeName: \"\",\n\t\t};\n\t\tthis.onSelectFilter(emptyFilters);\n\t};\n\n\trenderEmptyList() {\n\t\tif (this.state.loading) return null;\n\n\t\tconst hasFilters = this.hasFiltersActive();\n\n\t\treturn (\n\t\t\t<View style={{ marginHorizontal: 16, alignItems: \"center\" }}>\n\t\t\t\t<Components.EmptyStateMain\n\t\t\t\t\ttitle={\n\t\t\t\t\t\thasFilters\n\t\t\t\t\t\t\t? \"No requests match your filters\"\n\t\t\t\t\t\t\t: this.getEmptyStateText()\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{hasFilters && (\n\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\tonPress={this.clearFilters}\n\t\t\t\t\t\tstyle={styles.clearFiltersButton}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\tstyles.clearFiltersText,\n\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear filters\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderFilterButton() {\n\t\treturn (\n\t\t\t<TouchableOpacity onPress={this.onToggleFilter}>\n\t\t\t\t<View style={styles.filterButton}>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\tstyles.filterButtonText,\n\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.getFilterButtonText()}\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableOpacity>\n\t\t);\n\t}\n\n\trenderSearch() {\n\t\tif (!this.props.hasPermission) return null;\n\n\t\treturn (\n\t\t\t<View style={styles.searchContainer}>\n\t\t\t\t<Components.GenericInput\n\t\t\t\t\tplaceholder={`Search by ${values.textEntityName} ID or Address`}\n\t\t\t\t\tvalue={this.state.searchText}\n\t\t\t\t\tonChangeText={this.onSearchText}\n\t\t\t\t\tonSubmitEditing={this.onSearchSubmit}\n\t\t\t\t\tsquaredCorners\n\t\t\t\t\thasClear\n\t\t\t\t\t// keyboardType={'numeric'}\n\t\t\t\t\treturnKeyType={\"done\"}\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderListHeader() {\n\t\tconst { ListHeaderComponent } = this.props;\n\t\treturn (\n\t\t\t<View>\n\t\t\t\t{ListHeaderComponent ? (\n\t\t\t\t\tListHeaderComponent\n\t\t\t\t) : (\n\t\t\t\t\t<View style={{ height: 8 }} />\n\t\t\t\t)}\n\t\t\t\t{this.renderFilterButton()}\n\t\t\t\t{this.renderSearch()}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderList() {\n\t\tconst { filteredList } = this.state;\n\n\t\treturn (\n\t\t\t<FlatList\n\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\tstyle={{ flex: 1 }}\n\t\t\t\tcontentContainerStyle={{ paddingBottom: 16 }}\n\t\t\t\tdata={filteredList}\n\t\t\t\tkeyExtractor={(item) => item.id}\n\t\t\t\trenderItem={({ item }) => (\n\t\t\t\t\t<MaintenanceListItem style={this.props.itemStyle} job={item} />\n\t\t\t\t)}\n\t\t\t\tListEmptyComponent={this.renderEmptyList()}\n\t\t\t\tListHeaderComponent={this.renderListHeader()}\n\t\t\t\tListFooterComponent={this.renderListFooter()}\n\t\t\t\tonEndReached={this.loadMore}\n\t\t\t\tonEndReachedThreshold={0.5}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderListFooter = () => {\n\t\tif (!this.state.loadingMore) return null;\n\n\t\treturn (\n\t\t\t<View style={styles.loadingMore}>\n\t\t\t\t<Components.LoadingIndicator visible={true} />\n\t\t\t</View>\n\t\t);\n\t};\n\n\trenderFilterPopup() {\n\t\tconst { jobfilters } = this.props;\n\t\tconst { showFilterPopup, types } = this.state;\n\t\tif (!showFilterPopup) return null;\n\n\t\treturn (\n\t\t\t<FilterPopupMenu\n\t\t\t\tsite={this.props.site}\n\t\t\t\ttypes={types}\n\t\t\t\tstatus={jobfilters.status}\n\t\t\t\tpriority={jobfilters.priority}\n\t\t\t\tassignee={jobfilters.assignee}\n\t\t\t\ttype={jobfilters.type}\n\t\t\t\tonClose={this.onSelectFilter}\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<View style={[styles.container, this.props.style]}>\n\t\t\t\t{this.renderList()}\n\t\t\t\t{this.renderFilterPopup()}\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nconst styles = StyleSheet.create({\n\tcontainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: \"#fff\",\n\t},\n\tfilterContainerOuter: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tpaddingHorizontal: 16,\n\t\tpaddingVertical: 16,\n\t},\n\tfilterTitle: {\n\t\tfontFamily: \"sf-bold\",\n\t\tfontSize: 11,\n\t\tletterSpacing: 0.8,\n\t\tcolor: \"#4d4d4d\",\n\t},\n\tfilterContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t},\n\tfilterText: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 16,\n\t\tmarginRight: 6,\n\t},\n\tfilterIcon: {\n\t\tfontSize: 20,\n\t},\n\tsearchContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tpaddingBottom: 8,\n\t\tpaddingHorizontal: 16,\n\t},\n\tfilterButton: {\n\t\tpaddingBottom: 8,\n\t\tpaddingHorizontal: 16,\n\t\tflexDirection: \"row-reverse\",\n\t},\n\tfilterButtonText: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 16,\n\t},\n\tloadingMore: {\n\t\tpaddingVertical: 20,\n\t\talignItems: \"center\",\n\t},\n\tclearFiltersButton: {\n\t\tmarginTop: 12,\n\t\tpaddingVertical: 10,\n\t\tpaddingHorizontal: 24,\n\t\tborderRadius: 8,\n\t\tborderWidth: 1,\n\t\tborderColor: \"#ccc\",\n\t\tbackgroundColor: \"#f9f9f9\",\n\t},\n\tclearFiltersText: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 15,\n\t},\n});\n\nconst mapStateToProps = (state) => {\n\tconst { user, notifications } = state;\n\tconst jobs = state[values.reducerKey];\n\tconst jobsOrdered = _.orderBy(jobs.jobs, [\"createdUnix\"], [\"desc\"]);\n\tconst hasPermission = _.includes(user.permissions, \"maintenanceTracking\");\n\n\treturn {\n\t\thasPermission,\n\t\tjobs: jobsOrdered,\n\t\tsite: user.site,\n\t\tuserCategory: user.category,\n\t\tcolourBrandingMain: Colours.getMainBrandingColourFromState(state),\n\t\tdataUpdated: notifications.dataUpdated[values.updateKey],\n\t\tstatusTypes: state[values.reducerKey].jobstatuses,\n\t\tjobfilters: state[values.reducerKey].jobfilters || {},\n\t};\n};\n\nexport default connect(\n\tmapStateToProps,\n\t{\n\t\tjobsLoaded,\n\t\tjobAdded,\n\t\tjobsAdded,\n\t\tjobStatusesUpdate,\n\t\tjobHideSeenUpdate,\n\t\tjobsFilterLoaded,\n\t},\n\tnull,\n\t{\n\t\tforwardRef: true,\n\t},\n)(MaintenanceList);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","Text","Dimensions","Platform","KeyboardAvoidingView","ScrollView","TouchableOpacity","View","Switch","FlatList","ImageBackground","Keyboard","Alert","DateTimePicker","Icon","_","moment","connect","jobAdded","maintenanceActions","userActions","Services","Components","Colours","Helper","Config","values","PHOTO_SIZE","get","width","MaintenanceRequest","constructor","props","_defineProperty","_this$props$permissio","hasUserManagement","permissions","includes","setState","canCreateOnBehalf","loadSiteUsers","setDefaultUser","response","getSiteUsers","site","items","data","Items","optionOnlyForResidents","filter","u","category","users","sortBy","displayName","toLowerCase","error","console","log","userType","defaultUser","userId","uid","profilePic","selectedUser","userName","roomNumber","unit","phone","isEmpty","phoneNumber","update","state","customFields","some","title","length","navigation","navigate","screenUserPicker","currentUser","onSelectUser","bind","user","Id","fetchUser","userDetails","fieldId","answer","cloneDeep","field","isTitle","undefined","xor","join","dismiss","dateFieldId","popUpType","type","isDateTimePickerVisible","date","dateObj","format","uploadUri","imageUri","imageFieldId","imagesUpdate","getImages","splice","uploading","uploadProgress","allowRetry","setImages","progress","map","img","uri","percentage","url","replace","thumbNailExists","thumbNailUrl","getThumb300","waitForThumbnails","get1400","documentUri","documentName","documentExt","documentFieldId","documentsUpdate","getDocuments","setDocuments","doc","mandatory","checkMandatory","isBoolean","imagesList","getImageUrls","documentsList","getDocumentAnswers","isArray","isNil","checkFormat","isEmail","isValid","valid","uploadingImage","submitting","imageUploader","showUploadMenu","description","isHome","times","setTimeout","scrollContainer","scrollTo","y","images","updatedCustomFields","userID","sendMaintenanceRequest","getSite","then","res","success","refreshRequest","searchResult","onSubmissionSuccess","confirmationToShow","catch","err","id","job","getJob","every","index","isFieldValid","customFieldImages","Array","add","callback","checkThumb","setInterval","Promise","all","image","resolve","newImage","push","imageExists","thumbnailsExist","clearInterval","customFieldDocuments","name","ext","showFullscreenVideo","currentVideoUrl","fail","showError","loadingTypes","forceCustomFields","types","keyboardTypes","email","text","componentDidMount","checkUserPermissions","getJobTypes","componentWillUnmount","onPressBack","goBack","onPressType","screenJobTypePicker","currentType","onSelectType","pickType","onCloseConfirmationPopup","onBack","onConfirmationReset","getDefaultJob","selected","find","t","typeName","hasCustomFields","noType","jobId","defaultType","submitRequest","showFormErrorAlert","connected","message","alert","validateCustomFields","submit","renderImageUploader","createElement","ImageUploader","ref","onUploadStarted","onUploadStartedImage","onUploadSuccess","onUploadSuccessImage","onUploadFailed","onUploadFailedImage","onUploadProgress","onUploadProgressImage","onLibrarySelected","onLibrarySelectedImage","size","quality","fileName","popupTitle","allowsEditing","multiple","hideLibrary","renderImage","item","isVideoUrl","isVideo","activeOpacity","onPress","style","styles","imageContainer","imageContainerNotEmpty","marginLeft","marginTop","imageCircle","iconStyle","addImageIcon","ImageUploadProgress","uploader","color","colourBrandingMain","imageBackground","source","getImageSource","imagePlayContainer","toggleFullscreenVideo","imageControlIcon","removeImage","renderDocument","key","documentContainer","documentTypeContainer","backgroundColor","documentTypeText","documentText","removeDocumentButton","removeDocument","removeDocumentIcon","renderSuccess","padding","flex","requestSuccess","renderImageList","imageListContainer","imageListContainerEmpty","keyboardShouldPersistTaps","enableEmptySections","renderItem","keyExtractor","numColumns","renderDocumentList","documentListContainer","document","DocumentUploader","buttonTitle","allowedTypes","onUploadStartedDocument","onUploadProgressDocument","onUploadSuccessDocument","onUploadFailedDocument","disabled","renderDateField","sectionStyle","displayText","placeHolder","icon","errorText","GenericInputSection","label","required","dateContainer","dateFieldButton","onOpenDatePicker","dateFieldContainer","dateText","dateIcon","dateClearButton","onClearDate","removeIcon","renderField","marginBottom","inputType","value","onChange","onChangeToggleAnswer","options","o","Label","Value","i","isActive","onChangeCheckboxAnswer","multiChoiceOption","hitSlop","top","left","bottom","right","TickIcon","tick","unticked","multiChoiceText","placeholder","onChangeText","val","onChangeAnswer","editable","squaredCorners","autoCapitalize","keyboardType","staticTitle","staticText","toParagraphed","renderCustomFields","FormCard","renderForm","_this$state$selectedU","_this$state$selectedU2","_this$state$selectedU3","Spinner","paddingBottom","LoadingIndicator","visible","FormCardSection","textValue","hasContent","hasUnderline","borderBottomWidth","borderBottomColor","LINEGREY","onPressUser","userPickerContainer","profileContainer","ProfilePic","Diameter","nameText","sectionTitle","fontSize","onChangeName","paddingHorizontal","paddingVertical","flexDirection","justifyContent","textJobType","marginRight","Fragment","autoCorrect","multiline","autoGrow","alignItems","position","env","strings","MAINTENANCE_HOME","onValueChange","trackColor","false","true","thumbColor","OS","minHeight","renderRegisterConfirmation","ConfirmationPopup","confirmText","textEntityName","repeatText","onClose","onPressAction","renderVideoPlayerPopup","VideoPopup","showFullscreenButton","renderNoType","WarningPopup","infoText","padHorizontal","render","behavior","viewContainer","container","Header","leftIcon","onPressLeft","featureKey","textFeatureTitle","rightText","onPressRight","absoluteRight","isVisible","onConfirm","onDateSelected","onCancel","mode","headerTextIOS","Date","fontFamily","COLOUR_TANGERINE","TEXT_DARK","textAlign","BOXGREY","height","borderStyle","borderWidth","borderColor","borderRadius","PINKISH_GREY","textShadowColor","textShadowOffset","TEXT_DARKEST","lineHeight","TEXT_BLUEGREY","paddingLeft","mapStateToProps","_state$strings","connection","getMainBrandingColourFromState","config","getSiteSettingFromState"],"sources":["ServiceRequest.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { Text } from \"@plusscommunities/pluss-core-app/components\";\nimport {\n\tDimensions,\n\tPlatform,\n\tKeyboardAvoidingView,\n\tScrollView,\n\tTouchableOpacity,\n\tView,\n\tSwitch,\n\tFlatList,\n\tImageBackground,\n\tKeyboard,\n\tAlert,\n} from \"react-native\";\nimport DateTimePicker from \"react-native-modal-datetime-picker\";\nimport { Icon } from \"@rneui/themed\";\nimport _ from \"lodash\";\nimport moment from \"moment\";\nimport { connect } from \"react-redux\";\nimport { jobAdded } from \"../actions\";\nimport { maintenanceActions, userActions } from \"../apis\";\nimport { Services } from \"../feature.config\";\nimport { Components, Colours, Helper, Config } from \"../core.config\";\nimport { values } from \"../values.config\";\n\nconst PHOTO_SIZE = (Dimensions.get(\"window\").width - 64) / 3;\n\nclass MaintenanceRequest extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tsubmitting: false,\n\t\t\tsuccess: false,\n\t\t\tfail: false,\n\t\t\terror: null,\n\t\t\tshowError: false,\n\t\t\tloadingTypes: values.forceCustomFields,\n\n\t\t\tuserName: \"\",\n\t\t\troomNumber: \"\",\n\t\t\tphone: \"\",\n\t\t\ttitle: \"\",\n\t\t\tdescription: \"\",\n\t\t\ttimes: \"\",\n\n\t\t\ttype: \"General\",\n\n\t\t\tuploadingImage: false,\n\t\t\timages: [\n\t\t\t\t{\n\t\t\t\t\tadd: true,\n\t\t\t\t},\n\t\t\t],\n\t\t\tshowFullscreenVideo: false,\n\t\t\tcurrentVideoUrl: \"\",\n\n\t\t\tisHome: false,\n\n\t\t\ttypes: [],\n\n\t\t\tconfirmationToShow: false,\n\n\t\t\tcustomFields: [],\n\t\t\tcustomFieldImages: {},\n\t\t\tcustomFieldDocuments: {},\n\t\t\tisDateTimePickerVisible: false,\n\t\t\tpopUpType: \"date\",\n\t\t\tdateFieldId: null,\n\t\t\timageFieldId: null,\n\n\t\t\t// PC-1255: On-behalf request fields\n\t\t\tcanCreateOnBehalf: false,\n\t\t\tselectedUser: null,\n\t\t\tusers: [],\n\t\t};\n\t\tthis.checkThumb = null;\n\t\tthis.keyboardTypes = {\n\t\t\tphone: \"phone-pad\",\n\t\t\temail: \"email-address\",\n\t\t\ttext: \"default\",\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.checkUserPermissions();\n\t\tthis.getJobTypes();\n\t}\n\n\tcheckUserPermissions = async () => {\n\t\t// PC-1255: Check if user has userManagement permission\n\t\tconst hasUserManagement =\n\t\t\tthis.props.permissions?.includes(\"userManagement\") || false;\n\n\t\tif (hasUserManagement) {\n\t\t\tthis.setState({ canCreateOnBehalf: true });\n\t\t\t// Load site users for picker\n\t\t\tawait this.loadSiteUsers();\n\t\t} else {\n\t\t\t// Default to logged-in user for non-staff or staff without permission\n\t\t\tthis.setDefaultUser();\n\t\t}\n\t};\n\n\tloadSiteUsers = async () => {\n\t\ttry {\n\t\t\tconst response = await userActions.getSiteUsers(this.props.site);\n\n\t\t\tlet items = response.data.Items || [];\n\t\t\tif (this.props.optionOnlyForResidents) {\n\t\t\t\titems = _.filter(items, (u) => u.category === \"resident\");\n\t\t\t}\n\t\t\tconst users = _.sortBy(response.data.Items || [], (u) =>\n\t\t\t\t(u.displayName || \"\").toLowerCase(),\n\t\t\t);\n\t\t\tthis.setState({ users });\n\t\t} catch (error) {\n\t\t\tconsole.log(\"Error loading site users:\", error);\n\t\t\t// Fall back to default user if loading fails\n\t\t\tthis.setDefaultUser();\n\t\t}\n\t};\n\n\tsetDefaultUser = () => {\n\t\tif (this.props.userType !== \"KIOSK\") {\n\t\t\tconst defaultUser = {\n\t\t\t\tuserId: this.props.uid,\n\t\t\t\tdisplayName: this.props.displayName,\n\t\t\t\tprofilePic: this.props.profilePic,\n\t\t\t};\n\t\t\tthis.setState({\n\t\t\t\tselectedUser: defaultUser,\n\t\t\t\tuserName: this.props.displayName,\n\t\t\t\troomNumber: this.props.unit,\n\t\t\t\tphone: !_.isEmpty(this.props.phoneNumber) ? this.props.phoneNumber : \"\",\n\t\t\t});\n\t\t}\n\t};\n\n\tcomponentWillUnmount() {\n\t\tclearInterval(this.checkThumb);\n\t}\n\n\tonChangeName = (userName) => {\n\t\tconst update = { userName };\n\t\tif (\n\t\t\t!this.state.customFields ||\n\t\t\t!_.some(this.state.customFields, \"isTitle\")\n\t\t) {\n\t\t\tupdate.title = userName;\n\t\t}\n\t\tthis.setState(update);\n\t};\n\n\t// PC-1255: Handle user picker navigation\n\tonPressUser = () => {\n\t\tconst { users, selectedUser } = this.state;\n\t\tif (!users || users.length === 0) return;\n\n\t\tServices.navigation.navigate(values.screenUserPicker, {\n\t\t\tcurrentUser: selectedUser,\n\t\t\tusers,\n\t\t\tonSelectUser: this.onSelectUser.bind(this),\n\t\t});\n\t};\n\n\t// PC-1255: Handle user selection and auto-populate contact details\n\tonSelectUser = async (user) => {\n\t\tconst update = {\n\t\t\tselectedUser: user,\n\t\t\tuserName: user.displayName,\n\t\t};\n\n\t\t// PC-1255: Try to fetch full user details for auto-population\n\t\ttry {\n\t\t\t// getSiteUsers returns 'Id', but fetchUser expects 'userId'\n\t\t\tconst userId = user.userId || user.Id;\n\t\t\tconst response = await userActions.fetchUser(this.props.site, userId);\n\t\t\tif (response.data && response.data.user) {\n\t\t\t\tconst userDetails = response.data.user;\n\t\t\t\tif (userDetails.phoneNumber) {\n\t\t\t\t\tupdate.phone = userDetails.phoneNumber;\n\t\t\t\t}\n\t\t\t\tif (userDetails.unit) {\n\t\t\t\t\tupdate.roomNumber = userDetails.unit;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t!this.state.customFields ||\n\t\t\t\t\t!_.some(this.state.customFields, \"isTitle\")\n\t\t\t\t) {\n\t\t\t\t\tupdate.title = userDetails.displayName || null;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// Permission denied (403) or other error - continue without auto-population\n\t\t\t// User can still manually enter contact details\n\t\t\tconsole.log(\"Could not fetch user details for auto-population:\", error);\n\t\t} finally {\n\t\t\t// In any case, we still need a title. Inform the user to set one form field as a title.\n\t\t\tif (!this.state.title && !update.title) {\n\t\t\t\tupdate.title =\n\t\t\t\t\t\"[Missing title - Set one of the form field as title in the community manager]\";\n\t\t\t}\n\t\t}\n\t\tthis.setState(update);\n\t};\n\n\tonChangeAnswer = (fieldId, answer) => {\n\t\tconst update = { customFields: _.cloneDeep(this.state.customFields) };\n\t\tconst field = update.customFields[fieldId];\n\t\tfield.answer = answer;\n\t\tif (field.isTitle) update.title = field.answer;\n\t\tthis.setState(update);\n\t};\n\n\tonChangeToggleAnswer = (fieldId, answer) => {\n\t\tconst update = { customFields: _.cloneDeep(this.state.customFields) };\n\t\tconst field = update.customFields[fieldId];\n\t\tfield.answer = field.answer === answer ? undefined : answer;\n\t\tif (field.isTitle) update.title = field.answer;\n\t\tthis.setState(update);\n\t};\n\n\tonChangeCheckboxAnswer = (fieldId, answer) => {\n\t\tconst update = { customFields: _.cloneDeep(this.state.customFields) };\n\t\tconst field = update.customFields[fieldId];\n\t\tfield.answer = _.xor(field.answer || [], [answer]);\n\t\tif (field.isTitle) update.title = field.answer.join(\", \");\n\t\tthis.setState(update);\n\t};\n\n\tonOpenDatePicker = (field, fieldId) => {\n\t\tKeyboard.dismiss();\n\t\tthis.setState({\n\t\t\tdateFieldId: fieldId,\n\t\t\tpopUpType: field.type,\n\t\t\tisDateTimePickerVisible: true,\n\t\t});\n\t};\n\n\tonClearDate = (fieldId) => {\n\t\tconst update = { customFields: _.cloneDeep(this.state.customFields) };\n\t\tconst field = update.customFields[fieldId];\n\t\tfield.answer = undefined;\n\t\tif (field.isTitle) update.title = field.answer;\n\t\tthis.setState(update);\n\t};\n\n\tonDateSelected = (date) => {\n\t\tconst { customFields, dateFieldId, popUpType } = this.state;\n\t\tconst update = {\n\t\t\tcustomFields: _.cloneDeep(customFields),\n\t\t\tisDateTimePickerVisible: false,\n\t\t\tfieldId: null,\n\t\t};\n\t\tconst field = update.customFields[dateFieldId];\n\t\tconst dateObj = moment(date);\n\t\tif (popUpType === \"date\") {\n\t\t\tfield.answer = dateObj.format(\"YYYY-MM-DD\");\n\t\t\tif (field.isTitle) update.title = dateObj.format(\"DD MMM YYYY\");\n\t\t} else {\n\t\t\tfield.answer = dateObj.format(\"HH:mm\");\n\t\t\tif (field.isTitle) update.title = dateObj.format(\"h:mm a\");\n\t\t}\n\t\tthis.setState(update);\n\t};\n\n\tonUploadStartedImage = (uploadUri, imageUri) => {\n\t\tconst { imageFieldId } = this.state;\n\t\tconst imagesUpdate = this.getImages(imageFieldId);\n\t\timagesUpdate.splice(imagesUpdate.length - 1, 0, {\n\t\t\tuploading: true,\n\t\t\tuploadProgress: \"0%\",\n\t\t\tuploadUri,\n\t\t\timageUri,\n\t\t\tallowRetry: true,\n\t\t});\n\n\t\tthis.setImages(imagesUpdate, imageFieldId);\n\t};\n\n\tonUploadProgressImage = (progress) => {\n\t\tconst { imageFieldId } = this.state;\n\t\tconst imagesUpdate = this.getImages(imageFieldId);\n\t\timagesUpdate.map((img) => {\n\t\t\tif (img.uploadUri === progress.uri) {\n\t\t\t\timg.uploadProgress = progress.percentage;\n\t\t\t\timg.uploading = true;\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setImages(imagesUpdate, imageFieldId);\n\t};\n\n\tonUploadSuccessImage = async (uri, uploadUri) => {\n\t\tconst { imageFieldId } = this.state;\n\t\tconst imagesUpdate = this.getImages(imageFieldId);\n\t\timagesUpdate.map((img) => {\n\t\t\tif (img.uploadUri === uploadUri && img.uploading) {\n\t\t\t\timg.url = uri.replace(\"/general/\", \"/general1400/\");\n\t\t\t\timg.thumbNailExists = false;\n\t\t\t\timg.thumbNailUrl = Helper.getThumb300(img.url);\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setImages(imagesUpdate, imageFieldId, () => this.waitForThumbnails());\n\t};\n\n\tonUploadFailedImage = (uploadUri) => {\n\t\tconst { imageFieldId } = this.state;\n\t\tconst imagesUpdate = this.getImages(imageFieldId);\n\t\timagesUpdate.map((img) => {\n\t\t\tif (img.uploadUri === uploadUri) {\n\t\t\t\timg.uploading = true; // Requried for retry\n\t\t\t\timg.uploadProgress = \"\";\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setImages(imagesUpdate, imageFieldId);\n\t};\n\n\tonLibrarySelectedImage = (uri) => {\n\t\tconst { imageFieldId } = this.state;\n\t\tconst imagesUpdate = this.getImages(imageFieldId);\n\t\timagesUpdate.splice(imagesUpdate.length - 1, 0, {\n\t\t\tuploading: false,\n\t\t\tallowRetry: false,\n\t\t\turl: Helper.get1400(uri),\n\t\t\tthumbNailExists: true,\n\t\t\tthumbNailUrl: Helper.getThumb300(uri),\n\t\t});\n\n\t\tthis.setImages(imagesUpdate, imageFieldId);\n\t};\n\n\tonUploadStartedDocument = (\n\t\tuploadUri,\n\t\tdocumentUri,\n\t\tdocumentName,\n\t\tdocumentExt,\n\t\tdocumentFieldId,\n\t) => {\n\t\tconst documentsUpdate = this.getDocuments(documentFieldId);\n\t\tdocumentsUpdate.splice(documentsUpdate.length - 1, 0, {\n\t\t\tuploading: true,\n\t\t\tuploadProgress: \"0%\",\n\t\t\tuploadUri,\n\t\t\tdocumentUri,\n\t\t\tdocumentName,\n\t\t\tdocumentExt,\n\t\t\tallowRetry: true,\n\t\t});\n\n\t\tthis.setDocuments(documentsUpdate, documentFieldId);\n\t};\n\n\tonUploadProgressDocument = (progress, documentFieldId) => {\n\t\tconst documentsUpdate = this.getDocuments(documentFieldId);\n\t\tdocumentsUpdate.map((doc) => {\n\t\t\tif (doc.uploadUri === progress.uri) {\n\t\t\t\tdoc.uploadProgress = progress.percentage;\n\t\t\t\tdoc.uploading = true;\n\t\t\t\tdoc.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setDocuments(documentsUpdate, documentFieldId);\n\t};\n\n\tonUploadSuccessDocument = async (uri, uploadUri, documentFieldId) => {\n\t\tconst documentsUpdate = this.getDocuments(documentFieldId);\n\t\tdocumentsUpdate.map((doc) => {\n\t\t\tif (doc.uploadUri === uploadUri && doc.uploading) {\n\t\t\t\tdoc.uploading = false;\n\t\t\t\tdoc.uploadProgress = \"100%\";\n\t\t\t\tdoc.url = uri;\n\t\t\t\tdoc.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setDocuments(documentsUpdate, documentFieldId);\n\t};\n\n\tonUploadFailedDocument = (uploadUri, documentFieldId) => {\n\t\tconst documentsUpdate = this.getDocuments(documentFieldId);\n\t\tdocumentsUpdate.map((doc) => {\n\t\t\tif (doc.uploadUri === uploadUri) {\n\t\t\t\tdoc.uploading = true; // Requried for retry\n\t\t\t\tdoc.uploadProgress = \"\";\n\t\t\t\tdoc.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setDocuments(documentsUpdate, documentFieldId);\n\t};\n\n\tonPressBack() {\n\t\tServices.navigation.goBack();\n\t}\n\n\tonPressType() {\n\t\tServices.navigation.navigate(values.screenJobTypePicker, {\n\t\t\tcurrentType: this.state.type,\n\t\t\ttypes: this.state.types,\n\t\t\tonSelectType: this.pickType.bind(this),\n\t\t});\n\t}\n\n\tonCloseConfirmationPopup() {\n\t\tthis.setState({\n\t\t\tconfirmationToShow: false,\n\t\t});\n\t\tServices.navigation.goBack();\n\t\tthis.props.onBack && this.props.onBack();\n\t}\n\n\tonConfirmationReset() {\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tconfirmationToShow: false,\n\t\t\t\ttitle: \"\",\n\t\t\t\tdescription: \"\",\n\t\t\t\ttimes: \"\",\n\t\t\t\tisHome: false,\n\t\t\t\tuploadingImage: false,\n\t\t\t\timages: [\n\t\t\t\t\t{\n\t\t\t\t\t\tadd: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tsubmitting: false,\n\t\t\t\tsuccess: false,\n\t\t\t\tfail: false,\n\t\t\t\tcustomFields: [],\n\t\t\t\tcustomFieldImages: {},\n\t\t\t\tcustomFieldDocuments: {},\n\t\t\t\tisDateTimePickerVisible: false,\n\t\t\t\tpopUpType: \"date\",\n\t\t\t\tdateFieldId: null,\n\t\t\t\timageFieldId: null,\n\t\t\t},\n\t\t\t() => this.pickType(this.state.type),\n\t\t);\n\t}\n\n\tisFieldValid = (field, fieldId) => {\n\t\tconst { mandatory, type, answer } = field;\n\t\tif ([\"staticTitle\", \"staticText\"].includes(type)) return true;\n\n\t\tconst checkMandatory = () => {\n\t\t\tif (!mandatory) return true;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"yn\":\n\t\t\t\t\treturn _.isBoolean(answer);\n\t\t\t\tcase \"image\":\n\t\t\t\t\tconst imagesList = this.getImageUrls(fieldId);\n\t\t\t\t\treturn imagesList.length > 0;\n\t\t\t\tcase \"document\":\n\t\t\t\t\tconst documentsList = this.getDocumentAnswers(fieldId);\n\t\t\t\t\treturn documentsList.length > 0;\n\t\t\t\tcase \"checkbox\":\n\t\t\t\t\treturn _.isArray(answer) && answer.length > 0;\n\t\t\t\tdefault:\n\t\t\t\t\treturn !_.isNil(answer) && !_.isEmpty(answer);\n\t\t\t}\n\t\t};\n\t\tconst checkFormat = () => {\n\t\t\tif (_.isNil(answer) || _.isEmpty(answer)) return true;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"email\":\n\t\t\t\t\treturn Helper.isEmail(answer);\n\t\t\t\tcase \"date\":\n\t\t\t\t\treturn moment(answer, \"YYYY-MM-DD\", true).isValid();\n\t\t\t\tcase \"time\":\n\t\t\t\t\treturn moment(answer, \"HH:mm\", true).isValid();\n\t\t\t\tdefault:\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t};\n\n\t\tconst valid = checkMandatory() && checkFormat();\n\t\treturn valid;\n\t};\n\n\tgetJobTypes() {\n\t\tmaintenanceActions\n\t\t\t.getJobTypes(Helper.getSite(this.props.site))\n\t\t\t.then((res) => {\n\t\t\t\tthis.setState(\n\t\t\t\t\t{\n\t\t\t\t\t\ttypes: res.data,\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.getDefaultJob();\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n\n\tpickType(type) {\n\t\tconst { types } = this.state;\n\t\tconst selected = types.find((t) => t.typeName === type) || {};\n\t\tif (values.forceCustomFields && !selected.hasCustomFields) {\n\t\t\tthis.setState({\n\t\t\t\ttype,\n\t\t\t\tcustomFields: [],\n\t\t\t\tnoType: true,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst update = {\n\t\t\ttype,\n\t\t\tcustomFields:\n\t\t\t\tselected.hasCustomFields && selected.customFields.length > 0\n\t\t\t\t\t? _.cloneDeep(selected.customFields)\n\t\t\t\t\t: [],\n\t\t\tloadingTypes: false,\n\t\t};\n\n\t\tif (\n\t\t\t!_.isEmpty(update.customFields) &&\n\t\t\t!_.some(update.customFields, \"isTitle\")\n\t\t) {\n\t\t\tupdate.title = this.state.userName;\n\t\t}\n\n\t\tthis.setState(update);\n\t}\n\n\tgetDefaultJob() {\n\t\tconst { types, jobId } = this.state;\n\t\tif (types.length !== 0 && jobId == null) {\n\t\t\tconst defaultType = types[0];\n\t\t\tthis.pickType(defaultType.typeName);\n\t\t}\n\t}\n\n\tshowUploadMenu = (fieldId) => {\n\t\tKeyboard.dismiss();\n\t\tif (this.state.uploadingImage || this.state.submitting) {\n\t\t\treturn;\n\t\t}\n\t\tif (fieldId) this.setState({ imageFieldId: fieldId });\n\t\tthis.imageUploader.showUploadMenu();\n\t};\n\n\tsubmit = async () => {\n\t\tthis.setState({ submitting: true });\n\n\t\tlet description = this.state.description;\n\n\t\tif (this.state.isHome) {\n\t\t\tdescription = description + `. -- Times Available: ${this.state.times}`;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tthis.scrollContainer.scrollTo({ y: 0 });\n\t\t}, 100);\n\n\t\tconst images = this.getImageUrls();\n\n\t\t// Fix custom images field answers\n\t\tconst customFields = _.cloneDeep(this.state.customFields);\n\t\tconst updatedCustomFields = customFields.map((field, fieldId) => {\n\t\t\tif (field.type === \"image\") field.answer = this.getImageUrls(fieldId);\n\t\t\tif (field.type === \"document\")\n\t\t\t\tfield.answer = this.getDocumentAnswers(fieldId);\n\t\t\treturn field;\n\t\t});\n\n\t\tconst userID = this.state.canCreateOnBehalf && this.state.selectedUser\n\t\t\t? (this.state.selectedUser.userId || this.state.selectedUser.Id)\n\t\t\t: this.props.uid;\n\n\t\tmaintenanceActions\n\t\t\t.sendMaintenanceRequest(\n\t\t\t\tuserID,\n\t\t\t\tthis.state.userName,\n\t\t\t\tthis.state.phone,\n\t\t\t\tthis.state.roomNumber,\n\t\t\t\tthis.state.title,\n\t\t\t\tdescription,\n\t\t\t\tnull,\n\t\t\t\tthis.state.type,\n\t\t\t\timages,\n\t\t\t\tHelper.getSite(this.props.site),\n\t\t\t\tthis.state.isHome,\n\t\t\t\tthis.state.times,\n\t\t\t\tupdatedCustomFields,\n\t\t\t)\n\t\t\t.then((res) => {\n\t\t\t\tif (res.data.success) {\n\t\t\t\t\tthis.refreshRequest(res.data.searchResult);\n\t\t\t\t\tif (this.props.onSubmissionSuccess)\n\t\t\t\t\t\tthis.props.onSubmissionSuccess(res.data);\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tsubmitting: false,\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tconfirmationToShow: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tsubmitting: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tconsole.log(\"maintenance submission fail.\");\n\t\t\t\tconsole.log(err);\n\t\t\t\tthis.setState({\n\t\t\t\t\tsubmitting: false,\n\t\t\t\t});\n\t\t\t});\n\t};\n\n\trefreshRequest = async (id) => {\n\t\ttry {\n\t\t\tconst job = await maintenanceActions.getJob(\n\t\t\t\tHelper.getSite(this.props.site),\n\t\t\t\tid,\n\t\t\t);\n\t\t\tthis.props.jobAdded(job.data);\n\t\t} catch (error) {\n\t\t\tconsole.log(\"refreshRequest error\", error);\n\t\t}\n\t};\n\n\tvalidateCustomFields = () => {\n\t\tconst { customFields } = this.state;\n\t\tif (!customFields || customFields.length === 0) return true;\n\n\t\treturn customFields.every((field, index) => {\n\t\t\tconst isValid = this.isFieldValid(field, index);\n\t\t\treturn isValid;\n\t\t});\n\t};\n\n\tsubmitRequest() {\n\t\tconst {\n\t\t\tcustomFields,\n\t\t\tsubmitting,\n\t\t\tuploadingImage,\n\t\t\ttitle,\n\t\t\troomNumber,\n\t\t\tisHome,\n\t\t\tcustomFieldImages,\n\t\t\ttimes,\n\t\t} = this.state;\n\t\tconst hasCustomFields = customFields && customFields.length > 0;\n\t\tfunction showFormErrorAlert() {}\n\n\t\tif (submitting || !this.props.connected) {\n\t\t\tif (!this.props.connected) {\n\t\t\t\tthis.setState({\n\t\t\t\t\terror: { message: \"No internet connection detected\" },\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (uploadingImage) return;\n\t\tthis.setState({ error: null, showError: false });\n\n\t\t// PC-1255: Validate user selection for on-behalf requests\n\t\tif (this.state.canCreateOnBehalf && !this.state.selectedUser) {\n\t\t\tconsole.log(\"submitRequest - no user selected for on-behalf request\");\n\t\t\tAlert.alert(\n\t\t\t\t\"Missing Information\",\n\t\t\t\t\"Please select a user to submit the form on behalf of\",\n\t\t\t);\n\t\t\tthis.setState({ showError: true });\n\t\t\treturn;\n\t\t}\n\n\t\tif (title.length === 0 || !roomNumber || roomNumber.length === 0) {\n\t\t\tconsole.log(\"submitRequest - error\", { title, roomNumber });\n\t\t\tAlert.alert(\n\t\t\t\t\"Missing Information\",\n\t\t\t\t\"Please fill out your address details\",\n\t\t\t);\n\t\t\tthis.setState({ showError: true });\n\t\t\treturn;\n\t\t}\n\t\tif (hasCustomFields) {\n\t\t\tif (!this.validateCustomFields()) {\n\t\t\t\tconsole.log(\"submitRequest - custom fields error\");\n\t\t\t\tAlert.alert(\n\t\t\t\t\t\"Invalid Information\",\n\t\t\t\t\t\"Please review the form for errors and try submitting again.\",\n\t\t\t\t);\n\t\t\t\tthis.setState({ showError: true });\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\tif (isHome && times.length < 2) {\n\t\t\t\tconsole.log(\"submitRequest - error\", { isHome, times });\n\t\t\t\tAlert.alert(\n\t\t\t\t\t\"Invalid Information\",\n\t\t\t\t\t\"Please review the form for errors and try submitting again.\",\n\t\t\t\t);\n\t\t\t\tthis.setState({ showError: true });\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.submit();\n\t}\n\n\tgetImages = (fieldId = null) => {\n\t\tconst { images, customFieldImages } = this.state;\n\t\tconst imagesList = _.cloneDeep(\n\t\t\tfieldId ? customFieldImages[fieldId] : images,\n\t\t);\n\t\tif (!imagesList || !Array.isArray(imagesList) || imagesList.length === 0) {\n\t\t\treturn [{ add: true }];\n\t\t}\n\t\treturn imagesList;\n\t};\n\n\tsetImages = (imagesList, fieldId = null, callback = null) => {\n\t\tlet update = {};\n\t\tif (fieldId) {\n\t\t\tconst customFieldImages = _.cloneDeep(this.state.customFieldImages);\n\t\t\tcustomFieldImages[fieldId] = imagesList;\n\t\t\tupdate = { customFieldImages };\n\t\t} else {\n\t\t\tupdate = { images: imagesList };\n\t\t}\n\t\tthis.setState(update, callback);\n\t};\n\n\tgetImageUrls = (fieldId = null) => {\n\t\tconst imagesList = this.getImages(fieldId);\n\t\treturn _.filter(imagesList, (img) => {\n\t\t\treturn !img.uploading && !img.add;\n\t\t}).map((img) => {\n\t\t\treturn img.url;\n\t\t});\n\t};\n\n\twaitForThumbnails = () => {\n\t\tif (this.checkThumb) return;\n\n\t\tthis.checkThumb = setInterval(async () => {\n\t\t\tconst { imageFieldId } = this.state;\n\t\t\tconst imagesList = this.getImages(imageFieldId);\n\t\t\tconst imagesUpdate = [];\n\t\t\tawait Promise.all(\n\t\t\t\timagesList.map((image) => {\n\t\t\t\t\treturn new Promise(async (resolve) => {\n\t\t\t\t\t\tconst newImage = { ...image };\n\t\t\t\t\t\timagesUpdate.push(newImage);\n\t\t\t\t\t\tif (newImage.url && !newImage.thumbNailExists) {\n\t\t\t\t\t\t\tnewImage.uploading = false;\n\t\t\t\t\t\t\tnewImage.allowRetry = false;\n\t\t\t\t\t\t\tnewImage.thumbNailExists = await Helper.imageExists(\n\t\t\t\t\t\t\t\tnewImage.thumbNailUrl,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tresolve(newImage.thumbNailExists);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst thumbnailsExist = imagesUpdate.every(\n\t\t\t\t(image) => !image.url || image.thumbNailExists,\n\t\t\t);\n\t\t\tif (thumbnailsExist) {\n\t\t\t\tclearInterval(this.checkThumb);\n\t\t\t\tthis.checkThumb = null;\n\t\t\t\tthis.setImages(imagesUpdate, imageFieldId);\n\t\t\t}\n\t\t}, 2000);\n\t};\n\n\tremoveImage = (index, fieldId) => {\n\t\tconst imagesUpdate = this.getImages(fieldId);\n\t\timagesUpdate.splice(index, 1);\n\n\t\tthis.setImages(imagesUpdate, fieldId);\n\t};\n\n\tgetDocuments = (fieldId) => {\n\t\tconst { customFieldDocuments } = this.state;\n\t\tconst documentsList = _.cloneDeep(customFieldDocuments[fieldId]) || [];\n\t\treturn documentsList;\n\t};\n\n\tsetDocuments = (documentsList, fieldId) => {\n\t\tlet update = {};\n\t\tconst customFieldDocuments = _.cloneDeep(this.state.customFieldDocuments);\n\t\tcustomFieldDocuments[fieldId] = documentsList;\n\t\tupdate = { customFieldDocuments };\n\t\tthis.setState(update);\n\t};\n\n\tgetDocumentAnswers = (fieldId) => {\n\t\tconst documentsList = this.getDocuments(fieldId);\n\t\treturn _.filter(documentsList, (doc) => {\n\t\t\treturn !doc.uploading && doc.url;\n\t\t}).map((doc) => {\n\t\t\treturn {\n\t\t\t\tname: doc.documentName,\n\t\t\t\text: doc.documentExt,\n\t\t\t\turl: doc.url,\n\t\t\t};\n\t\t});\n\t};\n\n\tremoveDocument = (index, fieldId) => {\n\t\tconst documentsUpdate = this.getDocuments(fieldId);\n\t\tdocumentsUpdate.splice(index, 1);\n\n\t\tthis.setDocuments(documentsUpdate, fieldId);\n\t};\n\n\ttoggleFullscreenVideo = (url) => {\n\t\tif (typeof url !== \"string\") url = \"\";\n\t\tthis.setState({\n\t\t\tshowFullscreenVideo: url.length > 0,\n\t\t\tcurrentVideoUrl: url,\n\t\t});\n\t};\n\n\trenderImageUploader() {\n\t\treturn (\n\t\t\t<Components.ImageUploader\n\t\t\t\tref={(ref) => (this.imageUploader = ref)}\n\t\t\t\tonUploadStarted={this.onUploadStartedImage}\n\t\t\t\tonUploadSuccess={this.onUploadSuccessImage}\n\t\t\t\tonUploadFailed={this.onUploadFailedImage}\n\t\t\t\tonUploadProgress={this.onUploadProgressImage}\n\t\t\t\tonLibrarySelected={this.onLibrarySelectedImage}\n\t\t\t\tsize={{ width: 1400 }}\n\t\t\t\tquality={0.8}\n\t\t\t\tfileName={\"serviceImage\"}\n\t\t\t\tpopupTitle={\"Upload Image\"}\n\t\t\t\tuserId={this.props.uid}\n\t\t\t\tallowsEditing={false}\n\t\t\t\tmultiple\n\t\t\t\thideLibrary\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderImage(item, index, fieldId = null) {\n\t\tconst isVideoUrl = Helper.isVideo(item.url);\n\t\tconst imagesList = this.getImages(fieldId);\n\n\t\tif (item.add) {\n\t\t\treturn (\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tactiveOpacity={0.8}\n\t\t\t\t\tonPress={() => this.showUploadMenu(fieldId)}\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\tstyles.imageContainer,\n\t\t\t\t\t\t\timagesList.length > 1 && styles.imageContainerNotEmpty,\n\t\t\t\t\t\t\tindex % 3 === 0 && { marginLeft: 0 },\n\t\t\t\t\t\t\tindex > 2 && { marginTop: 8 },\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={styles.imageCircle}>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname=\"camera\"\n\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\ticonStyle={styles.addImageIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</TouchableOpacity>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={[\n\t\t\t\t\tstyles.imageContainer,\n\t\t\t\t\timagesList.length > 1 && styles.imageContainerNotEmpty,\n\t\t\t\t\tindex % 3 === 0 && { marginLeft: 0 },\n\t\t\t\t\tindex > 2 && { marginTop: 8 },\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t{item.uploading ? (\n\t\t\t\t\t<Components.ImageUploadProgress\n\t\t\t\t\t\tuploader={this.imageUploader}\n\t\t\t\t\t\timage={item}\n\t\t\t\t\t\tcolor={this.props.colourBrandingMain}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<ImageBackground\n\t\t\t\t\t\tstyle={styles.imageBackground}\n\t\t\t\t\t\tsource={Helper.getImageSource(\n\t\t\t\t\t\t\titem.thumbNailExists ? item.thumbNailUrl : item.url,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isVideoUrl && (\n\t\t\t\t\t\t\t<View style={styles.imagePlayContainer}>\n\t\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\t\tonPress={this.toggleFullscreenVideo.bind(this, item.url)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tname=\"play\"\n\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\ticonStyle={styles.imageControlIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tstyle={styles.removeImage}\n\t\t\t\t\t\t\tonPress={() => this.removeImage(index, fieldId)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname=\"remove\"\n\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\ticonStyle={styles.imageControlIcon}\n\t\t\t\t\t\t\t\tstyle={styles.removeImage}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t</ImageBackground>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderDocument(item, index, fieldId) {\n\t\tconst { colourBrandingMain } = this.props;\n\t\treturn (\n\t\t\t<View key={index} style={styles.documentContainer}>\n\t\t\t\t<View\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...styles.documentTypeContainer,\n\t\t\t\t\t\tbackgroundColor: colourBrandingMain,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Text style={styles.documentTypeText}>{item.documentExt}</Text>\n\t\t\t\t</View>\n\t\t\t\t<Text\n\t\t\t\t\tstyle={styles.documentText}\n\t\t\t\t>{`${item.documentName}${item.uploading ? ` - ${item.uploadProgress}` : \"\"}`}</Text>\n\t\t\t\t{!item.uploading && (\n\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\tstyle={styles.removeDocumentButton}\n\t\t\t\t\t\tonPress={() => this.removeDocument(index, fieldId)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tname=\"remove\"\n\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\ticonStyle={{\n\t\t\t\t\t\t\t\t...styles.removeDocumentIcon,\n\t\t\t\t\t\t\t\tcolor: colourBrandingMain,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderSuccess() {\n\t\treturn (\n\t\t\t<View style={{ padding: 16, flex: 1, backgroundColor: \"#fff\" }}>\n\t\t\t\t<Text style={styles.requestSuccess}>\n\t\t\t\t\tYour request has been submitted. Thank you.\n\t\t\t\t</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderImageList(fieldId = null) {\n\t\tconst imagesList = this.getImages(fieldId);\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={[\n\t\t\t\t\tstyles.imageListContainer,\n\t\t\t\t\timagesList.length < 2 && styles.imageListContainerEmpty,\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t<FlatList\n\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\tenableEmptySections\n\t\t\t\t\tdata={imagesList}\n\t\t\t\t\trenderItem={({ item, index }) =>\n\t\t\t\t\t\tthis.renderImage(item, index, fieldId)\n\t\t\t\t\t}\n\t\t\t\t\tkeyExtractor={(item, index) => index}\n\t\t\t\t\tnumColumns={3}\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderDocumentList(fieldId) {\n\t\tconst documentsList = this.getDocuments(fieldId);\n\t\treturn (\n\t\t\t<View style={styles.documentListContainer}>\n\t\t\t\t{documentsList.length > 0\n\t\t\t\t\t? documentsList.map((document, index) =>\n\t\t\t\t\t\t\tthis.renderDocument(document, index, fieldId),\n\t\t\t\t\t\t)\n\t\t\t\t\t: null}\n\t\t\t\t<Components.DocumentUploader\n\t\t\t\t\tbuttonTitle=\"Add Files\"\n\t\t\t\t\tallowedTypes={[\"application/pdf\"]}\n\t\t\t\t\tonUploadStarted={(uploadUri, uri, name, ext) =>\n\t\t\t\t\t\tthis.onUploadStartedDocument(uploadUri, uri, name, ext, fieldId)\n\t\t\t\t\t}\n\t\t\t\t\tonUploadProgress={(progress) =>\n\t\t\t\t\t\tthis.onUploadProgressDocument(progress, fieldId)\n\t\t\t\t\t}\n\t\t\t\t\tonUploadSuccess={(uri, uploadUri) =>\n\t\t\t\t\t\tthis.onUploadSuccessDocument(uri, uploadUri, fieldId)\n\t\t\t\t\t}\n\t\t\t\t\tonUploadFailed={(uploadUri) =>\n\t\t\t\t\t\tthis.onUploadFailedDocument(uploadUri, fieldId)\n\t\t\t\t\t}\n\t\t\t\t\tfileName=\"serviceDocument\"\n\t\t\t\t\tuserId={this.props.uid}\n\t\t\t\t\tdisabled={false}\n\t\t\t\t\tmultiple\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderDateField(field, fieldId, sectionStyle) {\n\t\tlet displayText, placeHolder, icon, errorText;\n\t\tif (field.type === \"date\") {\n\t\t\tdisplayText = field.answer\n\t\t\t\t? moment(field.answer, \"YYYY-MM-DD\").format(\"DD MMM YYYY\")\n\t\t\t\t: \"\";\n\t\t\tplaceHolder = \"dd mmm yyyy\";\n\t\t\ticon = \"calendar\";\n\t\t\terrorText = \"Not a valid date\";\n\t\t} else {\n\t\t\tdisplayText = field.answer\n\t\t\t\t? moment(field.answer, \"HH:mm\").format(\"h:mm a\")\n\t\t\t\t: \"\";\n\t\t\tplaceHolder = \"--:-- --\";\n\t\t\ticon = \"clock-o\";\n\t\t\terrorText = \"Not a valid time\";\n\t\t}\n\n\t\treturn (\n\t\t\t<Components.GenericInputSection\n\t\t\t\tkey={fieldId}\n\t\t\t\tlabel={field.label}\n\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\trequired={field.mandatory}\n\t\t\t\tshowError={this.state.showError}\n\t\t\t\terrorText={errorText}\n\t\t\t>\n\t\t\t\t<View style={styles.dateContainer}>\n\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\tstyle={styles.dateFieldButton}\n\t\t\t\t\t\tonPress={() => this.onOpenDatePicker(field, fieldId)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={styles.dateFieldContainer}>\n\t\t\t\t\t\t\t<Text style={styles.dateText}>{displayText || placeHolder}</Text>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\tname={icon}\n\t\t\t\t\t\t\t\ticonStyle={styles.dateIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t{displayText ? (\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tstyle={styles.dateClearButton}\n\t\t\t\t\t\t\tonPress={() => this.onClearDate(fieldId)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\tname=\"times\"\n\t\t\t\t\t\t\t\ticonStyle={styles.removeIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t) : null}\n\t\t\t\t</View>\n\t\t\t</Components.GenericInputSection>\n\t\t);\n\t}\n\n\trenderField(field, fieldId) {\n\t\tconst sectionStyle = {\n\t\t\tmarginTop: fieldId === 0 ? 24 : 0,\n\t\t\tmarginBottom: 24,\n\t\t};\n\t\tswitch (field.type) {\n\t\t\tcase \"yn\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tinputType=\"toggle\"\n\t\t\t\t\t\tvalue={field.answer}\n\t\t\t\t\t\tonChange={(answer) => this.onChangeToggleAnswer(fieldId, answer)}\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"multichoice\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tinputType=\"radio\"\n\t\t\t\t\t\tvalue={field.answer}\n\t\t\t\t\t\tonChange={(answer) => this.onChangeToggleAnswer(fieldId, answer)}\n\t\t\t\t\t\toptions={field.values.map((o) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tLabel: o,\n\t\t\t\t\t\t\t\tValue: o,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"checkbox\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t>\n\t\t\t\t\t\t{field.values.map((o, i) => {\n\t\t\t\t\t\t\tconst isActive = field.answer && _.includes(field.answer, o);\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\t\tonPress={() => this.onChangeCheckboxAnswer(fieldId, o)}\n\t\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\t\tstyle={styles.multiChoiceOption}\n\t\t\t\t\t\t\t\t\thitSlop={{ top: 8, left: 8, bottom: 8, right: 8 }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{isActive ? (\n\t\t\t\t\t\t\t\t\t\t<Components.TickIcon\n\t\t\t\t\t\t\t\t\t\t\tstyle={styles.tick}\n\t\t\t\t\t\t\t\t\t\t\tsize={20}\n\t\t\t\t\t\t\t\t\t\t\tcolor={this.props.colourBrandingMain}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<View style={styles.unticked} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<Text style={styles.multiChoiceText}>{o}</Text>\n\t\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Components.GenericInputSection>\n\t\t\t\t);\n\t\t\tcase \"text\":\n\t\t\tcase \"email\":\n\t\t\tcase \"phone\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tplaceholder={field.placeHolder}\n\t\t\t\t\t\tvalue={field.answer}\n\t\t\t\t\t\tonChangeText={(val) => this.onChangeAnswer(fieldId, val)}\n\t\t\t\t\t\teditable\n\t\t\t\t\t\tsquaredCorners\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t\terrorText={field.type === \"email\" ? \"Not a valid email\" : undefined}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tautoCapitalize=\"sentences\"\n\t\t\t\t\t\tkeyboardType={this.keyboardTypes[field.type]}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"staticTitle\":\n\t\t\t\treturn (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\tstyles.staticTitle,\n\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\tsectionStyle,\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t{field.label}\n\t\t\t\t\t</Text>\n\t\t\t\t);\n\t\t\tcase \"staticText\":\n\t\t\t\treturn (\n\t\t\t\t\t<View key={fieldId} style={[styles.staticText, sectionStyle]}>\n\t\t\t\t\t\t{Helper.toParagraphed(field.label, styles.staticText)}\n\t\t\t\t\t</View>\n\t\t\t\t);\n\t\t\tcase \"date\":\n\t\t\tcase \"time\":\n\t\t\t\treturn this.renderDateField(field, fieldId, sectionStyle);\n\t\t\tcase \"image\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.renderImageList(fieldId)}\n\t\t\t\t\t</Components.GenericInputSection>\n\t\t\t\t);\n\t\t\tcase \"document\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.renderDocumentList(fieldId)}\n\t\t\t\t\t</Components.GenericInputSection>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\trenderCustomFields() {\n\t\tconst { customFields } = this.state;\n\t\tif (!customFields || customFields.length === 0) return null;\n\n\t\treturn (\n\t\t\t<Components.FormCard style={{ marginTop: 16 }}>\n\t\t\t\t{customFields.map((field, i) => this.renderField(field, i))}\n\t\t\t</Components.FormCard>\n\t\t);\n\t}\n\n\trenderForm() {\n\t\tconst { customFields, loadingTypes } = this.state;\n\t\tconst hasCustomFields = customFields && customFields.length > 0;\n\n\t\tif (loadingTypes) {\n\t\t\treturn <Components.Spinner />;\n\t\t}\n\n\t\treturn (\n\t\t\t<View style={{ flex: 1 }}>\n\t\t\t\t<ScrollView\n\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\tstyle={{ flex: 1 }}\n\t\t\t\t\tref={(ref) => (this.scrollContainer = ref)}\n\t\t\t\t>\n\t\t\t\t\t<View style={{ paddingBottom: 2 }}>\n\t\t\t\t\t\t<Components.LoadingIndicator visible={this.state.submitting} />\n\t\t\t\t\t\t{this.state.error && (\n\t\t\t\t\t\t\t<Text style={styles.errorText}>{this.state.error}</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Components.FormCard style={{ marginTop: 16 }}>\n\t\t\t\t\t\t\t{/* PC-1255: User picker for on-behalf requests */}\n\t\t\t\t\t\t\t{this.state.canCreateOnBehalf && (\n\t\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\t\tlabel={\"Select User\"}\n\t\t\t\t\t\t\t\t\ttextValue={this.state.selectedUser?.displayName}\n\t\t\t\t\t\t\t\t\thasContent\n\t\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\terrorText=\"Please select a user.\"\n\t\t\t\t\t\t\t\t\tshowError={this.state.showError && !this.state.selectedUser}\n\t\t\t\t\t\t\t\t\tsectionStyle={{\n\t\t\t\t\t\t\t\t\t\tborderBottomWidth: 1,\n\t\t\t\t\t\t\t\t\t\tborderBottomColor: Colours.LINEGREY,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<TouchableOpacity onPress={this.onPressUser}>\n\t\t\t\t\t\t\t\t\t\t<View style={styles.userPickerContainer}>\n\t\t\t\t\t\t\t\t\t\t\t<View style={styles.profileContainer}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Components.ProfilePic\n\t\t\t\t\t\t\t\t\t\t\t\t\tProfilePic={this.state.selectedUser?.profilePic}\n\t\t\t\t\t\t\t\t\t\t\t\t\tDiameter={30}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t<Text style={styles.nameText}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.selectedUser?.displayName ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Select User\"}\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"angle-right\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\t\t\ticonStyle={[\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.sectionTitle,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 20,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: this.props.colourBrandingMain,\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t\t\t</Components.FormCardSection>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{/* PC-1255: Hide Name field when creating on behalf - name comes from selected user */}\n\t\t\t\t\t\t\t{!this.state.canCreateOnBehalf && (\n\t\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\t\tlabel={\"Name\"}\n\t\t\t\t\t\t\t\t\tplaceholder={\"Enter your name\"}\n\t\t\t\t\t\t\t\t\ttextValue={this.state.userName}\n\t\t\t\t\t\t\t\t\tonChangeText={(userName) => this.onChangeName(userName)}\n\t\t\t\t\t\t\t\t\teditable={\n\t\t\t\t\t\t\t\t\t\tthis.props.userType === \"KIOSK\" &&\n\t\t\t\t\t\t\t\t\t\tthis.state.submitting === false\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisValid={() => {\n\t\t\t\t\t\t\t\t\t\treturn this.state.userName.length > 1;\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\terrorText=\"Please enter your name.\"\n\t\t\t\t\t\t\t\t\tshowError={\n\t\t\t\t\t\t\t\t\t\tthis.state.showError && this.state.userName.length < 2\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\tlabel={\"Contact number\"}\n\t\t\t\t\t\t\t\tplaceholder={\"Enter phone number\"}\n\t\t\t\t\t\t\t\ttextValue={this.state.phone}\n\t\t\t\t\t\t\t\tonChangeText={(phone) => this.setState({ phone })}\n\t\t\t\t\t\t\t\teditable={this.state.submitting === false}\n\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\tkeyboardType={\"phone-pad\"}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\tlabel={\"Address\"}\n\t\t\t\t\t\t\t\tplaceholder={\"Enter your address\"}\n\t\t\t\t\t\t\t\ttextValue={this.state.roomNumber}\n\t\t\t\t\t\t\t\tonChangeText={(roomNumber) => this.setState({ roomNumber })}\n\t\t\t\t\t\t\t\teditable={this.state.submitting === false}\n\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\tisValid={() => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tthis.state.roomNumber && this.state.roomNumber.length > 1\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\terrorText=\"Please provide your address.\"\n\t\t\t\t\t\t\t\tshowError={\n\t\t\t\t\t\t\t\t\tthis.state.showError &&\n\t\t\t\t\t\t\t\t\t(!this.state.roomNumber || this.state.roomNumber.length < 2)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Components.FormCard>\n\t\t\t\t\t\t<Components.FormCard\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tmarginTop: 16,\n\t\t\t\t\t\t\t\tpaddingHorizontal: 24,\n\t\t\t\t\t\t\t\tpaddingVertical: 16,\n\t\t\t\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text style={styles.sectionTitle}>{values.textJobType}</Text>\n\t\t\t\t\t\t\t<TouchableOpacity onPress={this.onPressType.bind(this)}>\n\t\t\t\t\t\t\t\t<View style={{ flexDirection: \"row\" }}>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\t\tstyles.sectionTitle,\n\t\t\t\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain, marginRight: 16 },\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{this.state.type}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tname=\"angle-right\"\n\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\ticonStyle={[\n\t\t\t\t\t\t\t\t\t\t\tstyles.sectionTitle,\n\t\t\t\t\t\t\t\t\t\t\t{ fontSize: 20, color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t</Components.FormCard>\n\t\t\t\t\t\t{hasCustomFields ? (\n\t\t\t\t\t\t\tthis.renderCustomFields()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Components.FormCard style={{ marginTop: 16 }}>\n\t\t\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\t\t\tlabel={\"Title\"}\n\t\t\t\t\t\t\t\t\t\tplaceholder={\"Enter a title for your request\"}\n\t\t\t\t\t\t\t\t\t\ttextValue={this.state.title}\n\t\t\t\t\t\t\t\t\t\tonChangeText={(title) => this.setState({ title })}\n\t\t\t\t\t\t\t\t\t\teditable={this.state.submitting === false}\n\t\t\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\t\t\tisValid={() => {\n\t\t\t\t\t\t\t\t\t\t\treturn this.state.title.length > 1;\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\terrorText=\"Please provide a title.\"\n\t\t\t\t\t\t\t\t\t\tshowError={\n\t\t\t\t\t\t\t\t\t\t\tthis.state.showError && this.state.title.length < 2\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tautoCorrect\n\t\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\t\tautoGrow\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\t\t\tlabel={\"Description\"}\n\t\t\t\t\t\t\t\t\t\tplaceholder={\"Describe your request here in detail\"}\n\t\t\t\t\t\t\t\t\t\ttextValue={this.state.description}\n\t\t\t\t\t\t\t\t\t\tonChangeText={(description) =>\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({ description })\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\teditable={this.state.submitting === false}\n\t\t\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\t\t\tautoCorrect\n\t\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\t\tautoGrow\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Components.FormCard>\n\t\t\t\t\t\t\t\t<Components.FormCard\n\t\t\t\t\t\t\t\t\tstyle={{ marginTop: 16, paddingHorizontal: 24 }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\tpaddingVertical: 16,\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tthis.state.isHome && {\n\t\t\t\t\t\t\t\t\t\t\t\tborderBottomWidth: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tborderBottomColor: Colours.LINEGREY,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Text style={styles.sectionTitle}>\n\t\t\t\t\t\t\t\t\t\t\t{Config.env.strings.MAINTENANCE_HOME}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\t\t\t\tvalue={this.state.isHome}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={this.state.submitting}\n\t\t\t\t\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ isHome: value })\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\ttrackColor={{\n\t\t\t\t\t\t\t\t\t\t\t\tfalse: \"#ddd\",\n\t\t\t\t\t\t\t\t\t\t\t\ttrue: this.props.colourBrandingMain,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tthumbColor={Platform.OS === \"android\" ? \"#fff\" : null}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t{this.state.isHome && (\n\t\t\t\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\t\t\t\tlabel={\"Available times\"}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\t\t\t\"Describe your available times here in detail.\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\ttextValue={this.state.times}\n\t\t\t\t\t\t\t\t\t\t\tonChangeText={(times) => this.setState({ times })}\n\t\t\t\t\t\t\t\t\t\t\teditable={this.state.submitting === false}\n\t\t\t\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\t\t\t\tisValid={() => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn this.state.times.length > 1;\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t\terrorText=\"Please provide available times.\"\n\t\t\t\t\t\t\t\t\t\t\tshowError={\n\t\t\t\t\t\t\t\t\t\t\t\tthis.state.showError &&\n\t\t\t\t\t\t\t\t\t\t\t\tthis.state.isHome &&\n\t\t\t\t\t\t\t\t\t\t\t\tthis.state.times.length < 2\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tminHeight={40}\n\t\t\t\t\t\t\t\t\t\t\tautoCorrect\n\t\t\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\t\t\tautoGrow\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Components.FormCard>\n\t\t\t\t\t\t\t\t{this.renderImageList()}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</View>\n\t\t\t\t</ScrollView>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderRegisterConfirmation() {\n\t\treturn (\n\t\t\t<Components.ConfirmationPopup\n\t\t\t\tconfirmText={`${values.textEntityName} submitted`}\n\t\t\t\trepeatText={\"Submit another\"}\n\t\t\t\tvisible={this.state.confirmationToShow}\n\t\t\t\tonClose={this.onCloseConfirmationPopup.bind(this)}\n\t\t\t\tonPressAction={this.onConfirmationReset.bind(this)}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderVideoPlayerPopup() {\n\t\tconst { showFullscreenVideo, currentVideoUrl } = this.state;\n\t\tif (!currentVideoUrl) return;\n\n\t\treturn (\n\t\t\t<Components.VideoPopup\n\t\t\t\turi={currentVideoUrl}\n\t\t\t\tvisible={showFullscreenVideo}\n\t\t\t\tshowFullscreenButton={false}\n\t\t\t\tonClose={this.toggleFullscreenVideo}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderNoType() {\n\t\tif (!this.state.noType) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<Components.WarningPopup\n\t\t\t\tconfirmText={\"No forms are available\"}\n\t\t\t\tinfoText={\"Check back later for forms.\"}\n\t\t\t\tvisible={this.state.noType}\n\t\t\t\tonClose={this.onPressBack.bind(this)}\n\t\t\t\tpadHorizontal\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { submitting, success, isDateTimePickerVisible, popUpType } =\n\t\t\tthis.state;\n\n\t\treturn (\n\t\t\t<KeyboardAvoidingView behavior={\"padding\"} style={styles.viewContainer}>\n\t\t\t\t{this.renderImageUploader()}\n\t\t\t\t<View style={styles.container}>\n\t\t\t\t\t<Components.Header\n\t\t\t\t\t\tleftIcon=\"angle-left\"\n\t\t\t\t\t\tonPressLeft={this.onPressBack.bind(this)}\n\t\t\t\t\t\ttext={\n\t\t\t\t\t\t\tthis.props.strings[`${values.featureKey}_textFeatureTitle`] ||\n\t\t\t\t\t\t\tvalues.textFeatureTitle\n\t\t\t\t\t\t}\n\t\t\t\t\t\trightText={submitting || success ? null : \"Done\"}\n\t\t\t\t\t\tonPressRight={this.submitRequest.bind(this)}\n\t\t\t\t\t\tabsoluteRight\n\t\t\t\t\t/>\n\t\t\t\t\t{this.renderForm()}\n\t\t\t\t</View>\n\t\t\t\t{this.renderRegisterConfirmation()}\n\t\t\t\t{this.renderVideoPlayerPopup()}\n\t\t\t\t{this.renderNoType()}\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tisVisible={isDateTimePickerVisible}\n\t\t\t\t\tonConfirm={this.onDateSelected}\n\t\t\t\t\tonCancel={() => this.setState({ isDateTimePickerVisible: false })}\n\t\t\t\t\tmode={popUpType}\n\t\t\t\t\theaderTextIOS={`Pick a ${popUpType}`}\n\t\t\t\t\tdate={new Date()}\n\t\t\t\t/>\n\t\t\t</KeyboardAvoidingView>\n\t\t);\n\t}\n}\n\nconst styles = {\n\tviewContainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: \"#fff\",\n\t},\n\tcontainer: {\n\t\tflex: 1,\n\t\tposition: \"relative\",\n\t\tbackgroundColor: \"#f0f0f5\",\n\t},\n\terrorText: {\n\t\tfontFamily: \"sf-regular\",\n\t\tcolor: Colours.COLOUR_TANGERINE,\n\t\tfontSize: 16,\n\t},\n\trequestSuccess: {\n\t\tfontFamily: \"sf-regular\",\n\t\tcolor: Colours.TEXT_DARK,\n\t\tfontSize: 17,\n\t\ttextAlign: \"center\",\n\t},\n\tsectionTitle: {\n\t\tfontFamily: \"sf-regular\",\n\t\tfontSize: 17,\n\t\tcolor: Colours.TEXT_DARK,\n\t},\n\timageListContainer: {\n\t\tmarginTop: 8,\n\t\tpadding: 8,\n\t\tflexDirection: \"row\",\n\t\tbackgroundColor: Colours.BOXGREY,\n\t\tminHeight: 106,\n\t},\n\timageListContainerEmpty: {\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tflexDirection: \"column\",\n\t},\n\tdocumentListContainer: {\n\t\tmarginTop: 8,\n\t\tflexDirection: \"column\",\n\t\talignItems: \"flex-start\",\n\t},\n\timageContainer: {\n\t\twidth: PHOTO_SIZE,\n\t\theight: PHOTO_SIZE,\n\t\tborderStyle: \"dashed\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderWidth: 1,\n\t\tborderColor: Colours.LINEGREY,\n\t\tborderRadius: 4,\n\t\tmarginLeft: 8,\n\t},\n\timageContainerNotEmpty: {\n\t\tborderWidth: 1,\n\t\tborderColor: Colours.LINEGREY,\n\t\tbackgroundColor: \"#fff\",\n\t\tborderStyle: \"dashed\",\n\t},\n\timageBackground: {\n\t\tflex: 1,\n\t\theight: \"100%\",\n\t\twidth: \"100%\",\n\t\tborderRadius: 4,\n\t},\n\timageCircle: {\n\t\twidth: 90,\n\t\theight: 90,\n\t\tborderRadius: 45,\n\t\tbackgroundColor: Colours.PINKISH_GREY,\n\t\tjustifyContent: \"center\",\n\t},\n\taddImageIcon: {\n\t\tcolor: \"#fff\",\n\t\tfontSize: 32,\n\t},\n\timagePlayContainer: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t},\n\timageControlIcon: {\n\t\tcolor: \"#fff\",\n\t\tfontSize: 20,\n\t\ttextShadowColor: \"rgba(0,0,0,0.3)\",\n\t\ttextShadowOffset: { width: 2, height: 2 },\n\t},\n\tremoveImage: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tright: 0,\n\t\tpadding: 4,\n\t\twidth: 40,\n\t\theight: 40,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t},\n\tstaticTitle: {\n\t\tfontSize: 20,\n\t\tfontFamily: \"sf-semibold\",\n\t\tcolor: Colours.TEXT_DARKEST,\n\t},\n\tstaticText: {\n\t\tfontSize: 17,\n\t\tfontFamily: \"sf-regular\",\n\t\tcolor: Colours.TEXT_DARKEST,\n\t\tlineHeight: 24,\n\t},\n\tmultiChoiceOption: {\n\t\tmarginTop: 16,\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tminHeight: 20,\n\t},\n\tmultiChoiceText: {\n\t\tflex: 1,\n\t\tfontFamily: \"sf-medium\",\n\t\tfontSize: 14,\n\t\tcolor: Colours.TEXT_DARK,\n\t},\n\ttick: {\n\t\tmarginRight: 10,\n\t\tborderRadius: 4,\n\t},\n\tunticked: {\n\t\tmarginRight: 10,\n\t\twidth: 20,\n\t\theight: 20,\n\t\tborderColor: Colours.LINEGREY,\n\t\tborderWidth: 1,\n\t\tborderRadius: 4,\n\t},\n\tdateContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t},\n\tdateFieldButton: {\n\t\tflex: 1,\n\t},\n\tdateFieldContainer: {\n\t\tflexDirection: \"row\",\n\t\tborderRadius: 2,\n\t\tbackgroundColor: \"#ebeff2\",\n\t\tpadding: 8,\n\t\tmarginTop: 8,\n\t},\n\tdateText: {\n\t\tflex: 1,\n\t\tfontFamily: \"sf-regular\",\n\t\tfontSize: 16,\n\t\tcolor: \"#65686D\",\n\t},\n\tdateIcon: {\n\t\tfontSize: 18,\n\t\tcolor: Colours.TEXT_BLUEGREY,\n\t},\n\tdateClearButton: {\n\t\tpaddingLeft: 12,\n\t},\n\tremoveIcon: {\n\t\tfontSize: 26,\n\t\tcolor: Colours.TEXT_BLUEGREY,\n\t},\n\tdocumentContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"space-between\",\n\t\tpaddingVertical: 4,\n\t},\n\tdocumentTypeContainer: {\n\t\twidth: 50,\n\t\theight: 60,\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 5,\n\t\tmarginRight: 8,\n\t},\n\tdocumentTypeText: {\n\t\tcolor: \"#fff\",\n\t\tfontFamily: \"sf-semibold\",\n\t\ttextAlign: \"center\",\n\t},\n\tdocumentText: {\n\t\tflex: 1,\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 16,\n\t\tcolor: \"#65686D\",\n\t},\n\tremoveDocumentButton: {\n\t\tpadding: 4,\n\t\twidth: 40,\n\t\theight: 40,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tmarginLeft: 8,\n\t},\n\tremoveDocumentIcon: {\n\t\tfontSize: 24,\n\t},\n\t// PC-1255: User picker styles\n\tuserPickerContainer: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t},\n\tprofileContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t},\n\tnameText: {\n\t\tfontFamily: \"sf-medium\",\n\t\tfontSize: 16,\n\t\tcolor: Colours.TEXT_DARK,\n\t\tmarginLeft: 8,\n\t},\n};\n\nconst mapStateToProps = (state) => {\n\tconst { user, connection } = state;\n\tconst { displayName, profilePic, uid, site, unit, phoneNumber, permissions } =\n\t\tuser;\n\treturn {\n\t\tconnected: connection.connected,\n\t\tuserType: user.type,\n\t\tdisplayName,\n\t\tprofilePic,\n\t\tuid,\n\t\tsite,\n\t\tunit,\n\t\tphoneNumber,\n\t\tpermissions,\n\t\tcolourBrandingMain: Colours.getMainBrandingColourFromState(state),\n\t\tstrings: state.strings?.config || {},\n\t\toptionOnlyForResidents: Helper.getSiteSettingFromState(\n\t\t\tstate,\n\t\t\tvalues.optionOnlyForResidents,\n\t\t),\n\t};\n};\n\nexport default connect(mapStateToProps, { jobAdded })(MaintenanceRequest);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","Text","Dimensions","Platform","KeyboardAvoidingView","ScrollView","TouchableOpacity","View","Switch","FlatList","ImageBackground","Keyboard","Alert","DateTimePicker","Icon","_","moment","connect","jobAdded","maintenanceActions","userActions","Services","Components","Colours","Helper","Config","values","PHOTO_SIZE","get","width","MaintenanceRequest","constructor","props","_defineProperty","_this$props$permissio","hasUserManagement","permissions","includes","setState","canCreateOnBehalf","loadSiteUsers","setDefaultUser","response","getSiteUsers","site","items","data","Items","optionOnlyForResidents","filter","u","category","users","sortBy","displayName","toLowerCase","error","console","log","userType","defaultUser","userId","uid","profilePic","selectedUser","userName","roomNumber","unit","phone","isEmpty","phoneNumber","update","state","customFields","some","title","length","navigation","navigate","screenUserPicker","currentUser","onSelectUser","bind","user","Id","fetchUser","userDetails","fieldId","answer","cloneDeep","field","isTitle","undefined","xor","join","dismiss","dateFieldId","popUpType","type","isDateTimePickerVisible","date","dateObj","format","uploadUri","imageUri","imageFieldId","imagesUpdate","getImages","splice","uploading","uploadProgress","allowRetry","setImages","progress","map","img","uri","percentage","url","replace","thumbNailExists","thumbNailUrl","getThumb300","waitForThumbnails","get1400","documentUri","documentName","documentExt","documentFieldId","documentsUpdate","getDocuments","setDocuments","doc","mandatory","checkMandatory","isBoolean","imagesList","getImageUrls","documentsList","getDocumentAnswers","isArray","isNil","checkFormat","isEmail","isValid","valid","uploadingImage","submitting","imageUploader","showUploadMenu","description","isHome","times","setTimeout","scrollContainer","scrollTo","y","images","updatedCustomFields","userID","sendMaintenanceRequest","getSite","then","res","success","refreshRequest","searchResult","onSubmissionSuccess","confirmationToShow","catch","err","id","job","getJob","every","index","isFieldValid","customFieldImages","Array","add","callback","checkThumb","setInterval","Promise","all","image","resolve","newImage","push","imageExists","thumbnailsExist","clearInterval","customFieldDocuments","name","ext","showFullscreenVideo","currentVideoUrl","fail","showError","loadingTypes","forceCustomFields","types","keyboardTypes","email","text","componentDidMount","checkUserPermissions","getJobTypes","componentWillUnmount","onPressBack","goBack","onPressType","screenJobTypePicker","currentType","onSelectType","pickType","onCloseConfirmationPopup","onBack","onConfirmationReset","getDefaultJob","selected","find","t","typeName","hasCustomFields","noType","jobId","defaultType","submitRequest","showFormErrorAlert","connected","message","alert","validateCustomFields","submit","renderImageUploader","createElement","ImageUploader","ref","onUploadStarted","onUploadStartedImage","onUploadSuccess","onUploadSuccessImage","onUploadFailed","onUploadFailedImage","onUploadProgress","onUploadProgressImage","onLibrarySelected","onLibrarySelectedImage","size","quality","fileName","popupTitle","allowsEditing","multiple","hideLibrary","renderImage","item","isVideoUrl","isVideo","activeOpacity","onPress","style","styles","imageContainer","imageContainerNotEmpty","marginLeft","marginTop","imageCircle","iconStyle","addImageIcon","ImageUploadProgress","uploader","color","colourBrandingMain","imageBackground","source","getImageSource","imagePlayContainer","toggleFullscreenVideo","imageControlIcon","removeImage","renderDocument","key","documentContainer","documentTypeContainer","backgroundColor","documentTypeText","documentText","removeDocumentButton","removeDocument","removeDocumentIcon","renderSuccess","padding","flex","requestSuccess","renderImageList","imageListContainer","imageListContainerEmpty","keyboardShouldPersistTaps","enableEmptySections","renderItem","keyExtractor","numColumns","renderDocumentList","documentListContainer","document","DocumentUploader","buttonTitle","allowedTypes","onUploadStartedDocument","onUploadProgressDocument","onUploadSuccessDocument","onUploadFailedDocument","disabled","renderDateField","sectionStyle","displayText","placeHolder","icon","errorText","GenericInputSection","label","required","dateContainer","dateFieldButton","onOpenDatePicker","dateFieldContainer","dateText","dateIcon","dateClearButton","onClearDate","removeIcon","renderField","marginBottom","inputType","value","onChange","onChangeToggleAnswer","options","o","Label","Value","i","isActive","onChangeCheckboxAnswer","multiChoiceOption","hitSlop","top","left","bottom","right","TickIcon","tick","unticked","multiChoiceText","placeholder","onChangeText","val","onChangeAnswer","editable","squaredCorners","autoCapitalize","keyboardType","staticTitle","staticText","toParagraphed","renderCustomFields","FormCard","renderForm","_this$state$selectedU","_this$state$selectedU2","_this$state$selectedU3","Spinner","paddingBottom","LoadingIndicator","visible","FormCardSection","textValue","hasContent","hasUnderline","borderBottomWidth","borderBottomColor","LINEGREY","onPressUser","userPickerContainer","profileContainer","ProfilePic","Diameter","nameText","sectionTitle","fontSize","onChangeName","paddingHorizontal","paddingVertical","flexDirection","justifyContent","textJobType","marginRight","Fragment","autoCorrect","multiline","autoGrow","alignItems","position","env","strings","MAINTENANCE_HOME","onValueChange","trackColor","false","true","thumbColor","OS","minHeight","renderRegisterConfirmation","ConfirmationPopup","confirmText","textEntityName","repeatText","onClose","onPressAction","renderVideoPlayerPopup","VideoPopup","showFullscreenButton","renderNoType","WarningPopup","infoText","padHorizontal","render","behavior","viewContainer","container","Header","leftIcon","onPressLeft","featureKey","textFeatureTitle","rightText","onPressRight","absoluteRight","isVisible","onConfirm","onDateSelected","onCancel","mode","headerTextIOS","Date","fontFamily","COLOUR_TANGERINE","TEXT_DARK","textAlign","BOXGREY","height","borderStyle","borderWidth","borderColor","borderRadius","PINKISH_GREY","textShadowColor","textShadowOffset","TEXT_DARKEST","lineHeight","TEXT_BLUEGREY","paddingLeft","mapStateToProps","_state$strings","connection","getMainBrandingColourFromState","config","getSiteSettingFromState"],"sources":["ServiceRequest.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { Text } from \"@plusscommunities/pluss-core-app/components\";\nimport {\n\tDimensions,\n\tPlatform,\n\tKeyboardAvoidingView,\n\tScrollView,\n\tTouchableOpacity,\n\tView,\n\tSwitch,\n\tFlatList,\n\tImageBackground,\n\tKeyboard,\n\tAlert,\n} from \"react-native\";\nimport DateTimePicker from \"react-native-modal-datetime-picker\";\nimport { Icon } from \"@rneui/themed\";\nimport _ from \"lodash\";\nimport moment from \"moment\";\nimport { connect } from \"react-redux\";\nimport { jobAdded } from \"../actions\";\nimport { maintenanceActions, userActions } from \"../apis\";\nimport { Services } from \"../feature.config\";\nimport { Components, Colours, Helper, Config } from \"../core.config\";\nimport { values } from \"../values.config\";\n\nconst PHOTO_SIZE = (Dimensions.get(\"window\").width - 64) / 3;\n\nclass MaintenanceRequest extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tsubmitting: false,\n\t\t\tsuccess: false,\n\t\t\tfail: false,\n\t\t\terror: null,\n\t\t\tshowError: false,\n\t\t\tloadingTypes: values.forceCustomFields,\n\n\t\t\tuserName: \"\",\n\t\t\troomNumber: \"\",\n\t\t\tphone: \"\",\n\t\t\ttitle: \"\",\n\t\t\tdescription: \"\",\n\t\t\ttimes: \"\",\n\n\t\t\ttype: \"General\",\n\n\t\t\tuploadingImage: false,\n\t\t\timages: [\n\t\t\t\t{\n\t\t\t\t\tadd: true,\n\t\t\t\t},\n\t\t\t],\n\t\t\tshowFullscreenVideo: false,\n\t\t\tcurrentVideoUrl: \"\",\n\n\t\t\tisHome: false,\n\n\t\t\ttypes: [],\n\n\t\t\tconfirmationToShow: false,\n\n\t\t\tcustomFields: [],\n\t\t\tcustomFieldImages: {},\n\t\t\tcustomFieldDocuments: {},\n\t\t\tisDateTimePickerVisible: false,\n\t\t\tpopUpType: \"date\",\n\t\t\tdateFieldId: null,\n\t\t\timageFieldId: null,\n\n\t\t\t// PC-1255: On-behalf request fields\n\t\t\tcanCreateOnBehalf: false,\n\t\t\tselectedUser: null,\n\t\t\tusers: [],\n\t\t};\n\t\tthis.checkThumb = null;\n\t\tthis.keyboardTypes = {\n\t\t\tphone: \"phone-pad\",\n\t\t\temail: \"email-address\",\n\t\t\ttext: \"default\",\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.checkUserPermissions();\n\t\tthis.getJobTypes();\n\t}\n\n\tcheckUserPermissions = async () => {\n\t\t// PC-1255: Check if user has userManagement permission\n\t\tconst hasUserManagement =\n\t\t\tthis.props.permissions?.includes(\"userManagement\") || false;\n\n\t\tif (hasUserManagement) {\n\t\t\tthis.setState({ canCreateOnBehalf: true });\n\t\t\t// Load site users for picker\n\t\t\tawait this.loadSiteUsers();\n\t\t} else {\n\t\t\t// Default to logged-in user for non-staff or staff without permission\n\t\t\tthis.setDefaultUser();\n\t\t}\n\t};\n\n\tloadSiteUsers = async () => {\n\t\ttry {\n\t\t\tconst response = await userActions.getSiteUsers(this.props.site);\n\n\t\t\tlet items = response.data.Items || [];\n\t\t\tif (this.props.optionOnlyForResidents) {\n\t\t\t\titems = _.filter(items, (u) => u.category === \"resident\");\n\t\t\t}\n\t\t\tconst users = _.sortBy(response.data.Items || [], (u) =>\n\t\t\t\t(u.displayName || \"\").toLowerCase(),\n\t\t\t);\n\t\t\tthis.setState({ users });\n\t\t} catch (error) {\n\t\t\tconsole.log(\"Error loading site users:\", error);\n\t\t\t// Fall back to default user if loading fails\n\t\t\tthis.setDefaultUser();\n\t\t}\n\t};\n\n\tsetDefaultUser = () => {\n\t\tif (this.props.userType !== \"KIOSK\") {\n\t\t\tconst defaultUser = {\n\t\t\t\tuserId: this.props.uid,\n\t\t\t\tdisplayName: this.props.displayName,\n\t\t\t\tprofilePic: this.props.profilePic,\n\t\t\t};\n\t\t\tthis.setState({\n\t\t\t\tselectedUser: defaultUser,\n\t\t\t\tuserName: this.props.displayName,\n\t\t\t\troomNumber: this.props.unit,\n\t\t\t\tphone: !_.isEmpty(this.props.phoneNumber) ? this.props.phoneNumber : \"\",\n\t\t\t});\n\t\t}\n\t};\n\n\tcomponentWillUnmount() {\n\t\tclearInterval(this.checkThumb);\n\t}\n\n\tonChangeName = (userName) => {\n\t\tconst update = { userName };\n\t\tif (\n\t\t\t!this.state.customFields ||\n\t\t\t!_.some(this.state.customFields, \"isTitle\")\n\t\t) {\n\t\t\tupdate.title = userName;\n\t\t}\n\t\tthis.setState(update);\n\t};\n\n\t// PC-1255: Handle user picker navigation\n\tonPressUser = () => {\n\t\tconst { users, selectedUser } = this.state;\n\t\tif (!users || users.length === 0) return;\n\n\t\tServices.navigation.navigate(values.screenUserPicker, {\n\t\t\tcurrentUser: selectedUser,\n\t\t\tusers,\n\t\t\tonSelectUser: this.onSelectUser.bind(this),\n\t\t});\n\t};\n\n\t// PC-1255: Handle user selection and auto-populate contact details\n\tonSelectUser = async (user) => {\n\t\tconst update = {\n\t\t\tselectedUser: user,\n\t\t\tuserName: user.displayName,\n\t\t};\n\n\t\t// PC-1255: Try to fetch full user details for auto-population\n\t\ttry {\n\t\t\t// getSiteUsers returns 'Id', but fetchUser expects 'userId'\n\t\t\tconst userId = user.userId || user.Id;\n\t\t\tconst response = await userActions.fetchUser(this.props.site, userId);\n\t\t\tif (response.data && response.data.user) {\n\t\t\t\tconst userDetails = response.data.user;\n\t\t\t\tif (userDetails.phoneNumber) {\n\t\t\t\t\tupdate.phone = userDetails.phoneNumber;\n\t\t\t\t}\n\t\t\t\tif (userDetails.unit) {\n\t\t\t\t\tupdate.roomNumber = userDetails.unit;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t!this.state.customFields ||\n\t\t\t\t\t!_.some(this.state.customFields, \"isTitle\")\n\t\t\t\t) {\n\t\t\t\t\tupdate.title = userDetails.displayName || null;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// Permission denied (403) or other error - continue without auto-population\n\t\t\t// User can still manually enter contact details\n\t\t\tconsole.log(\"Could not fetch user details for auto-population:\", error);\n\t\t} finally {\n\t\t\t// In any case, we still need a title. Inform the user to set one form field as a title.\n\t\t\tif (!this.state.title && !update.title) {\n\t\t\t\tupdate.title =\n\t\t\t\t\t\"[Missing title - Set one of the form field as title in the community manager]\";\n\t\t\t}\n\t\t}\n\t\tthis.setState(update);\n\t};\n\n\tonChangeAnswer = (fieldId, answer) => {\n\t\tconst update = { customFields: _.cloneDeep(this.state.customFields) };\n\t\tconst field = update.customFields[fieldId];\n\t\tfield.answer = answer;\n\t\tif (field.isTitle) update.title = field.answer;\n\t\tthis.setState(update);\n\t};\n\n\tonChangeToggleAnswer = (fieldId, answer) => {\n\t\tconst update = { customFields: _.cloneDeep(this.state.customFields) };\n\t\tconst field = update.customFields[fieldId];\n\t\tfield.answer = field.answer === answer ? undefined : answer;\n\t\tif (field.isTitle) update.title = field.answer;\n\t\tthis.setState(update);\n\t};\n\n\tonChangeCheckboxAnswer = (fieldId, answer) => {\n\t\tconst update = { customFields: _.cloneDeep(this.state.customFields) };\n\t\tconst field = update.customFields[fieldId];\n\t\tfield.answer = _.xor(field.answer || [], [answer]);\n\t\tif (field.isTitle) update.title = field.answer.join(\", \");\n\t\tthis.setState(update);\n\t};\n\n\tonOpenDatePicker = (field, fieldId) => {\n\t\tKeyboard.dismiss();\n\t\tthis.setState({\n\t\t\tdateFieldId: fieldId,\n\t\t\tpopUpType: field.type,\n\t\t\tisDateTimePickerVisible: true,\n\t\t});\n\t};\n\n\tonClearDate = (fieldId) => {\n\t\tconst update = { customFields: _.cloneDeep(this.state.customFields) };\n\t\tconst field = update.customFields[fieldId];\n\t\tfield.answer = undefined;\n\t\tif (field.isTitle) update.title = field.answer;\n\t\tthis.setState(update);\n\t};\n\n\tonDateSelected = (date) => {\n\t\tconst { customFields, dateFieldId, popUpType } = this.state;\n\t\tconst update = {\n\t\t\tcustomFields: _.cloneDeep(customFields),\n\t\t\tisDateTimePickerVisible: false,\n\t\t\tfieldId: null,\n\t\t};\n\t\tconst field = update.customFields[dateFieldId];\n\t\tconst dateObj = moment(date);\n\t\tif (popUpType === \"date\") {\n\t\t\tfield.answer = dateObj.format(\"YYYY-MM-DD\");\n\t\t\tif (field.isTitle) update.title = dateObj.format(\"DD MMM YYYY\");\n\t\t} else {\n\t\t\tfield.answer = dateObj.format(\"HH:mm\");\n\t\t\tif (field.isTitle) update.title = dateObj.format(\"h:mm a\");\n\t\t}\n\t\tthis.setState(update);\n\t};\n\n\tonUploadStartedImage = (uploadUri, imageUri) => {\n\t\tconst { imageFieldId } = this.state;\n\t\tconst imagesUpdate = this.getImages(imageFieldId);\n\t\timagesUpdate.splice(imagesUpdate.length - 1, 0, {\n\t\t\tuploading: true,\n\t\t\tuploadProgress: \"0%\",\n\t\t\tuploadUri,\n\t\t\timageUri,\n\t\t\tallowRetry: true,\n\t\t});\n\n\t\tthis.setImages(imagesUpdate, imageFieldId);\n\t};\n\n\tonUploadProgressImage = (progress) => {\n\t\tconst { imageFieldId } = this.state;\n\t\tconst imagesUpdate = this.getImages(imageFieldId);\n\t\timagesUpdate.map((img) => {\n\t\t\tif (img.uploadUri === progress.uri) {\n\t\t\t\timg.uploadProgress = progress.percentage;\n\t\t\t\timg.uploading = true;\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setImages(imagesUpdate, imageFieldId);\n\t};\n\n\tonUploadSuccessImage = async (uri, uploadUri) => {\n\t\tconst { imageFieldId } = this.state;\n\t\tconst imagesUpdate = this.getImages(imageFieldId);\n\t\timagesUpdate.map((img) => {\n\t\t\tif (img.uploadUri === uploadUri && img.uploading) {\n\t\t\t\timg.url = uri.replace(\"/general/\", \"/general1400/\");\n\t\t\t\timg.thumbNailExists = false;\n\t\t\t\timg.thumbNailUrl = Helper.getThumb300(img.url);\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setImages(imagesUpdate, imageFieldId, () => this.waitForThumbnails());\n\t};\n\n\tonUploadFailedImage = (uploadUri) => {\n\t\tconst { imageFieldId } = this.state;\n\t\tconst imagesUpdate = this.getImages(imageFieldId);\n\t\timagesUpdate.map((img) => {\n\t\t\tif (img.uploadUri === uploadUri) {\n\t\t\t\timg.uploading = true; // Requried for retry\n\t\t\t\timg.uploadProgress = \"\";\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setImages(imagesUpdate, imageFieldId);\n\t};\n\n\tonLibrarySelectedImage = (uri) => {\n\t\tconst { imageFieldId } = this.state;\n\t\tconst imagesUpdate = this.getImages(imageFieldId);\n\t\timagesUpdate.splice(imagesUpdate.length - 1, 0, {\n\t\t\tuploading: false,\n\t\t\tallowRetry: false,\n\t\t\turl: Helper.get1400(uri),\n\t\t\tthumbNailExists: true,\n\t\t\tthumbNailUrl: Helper.getThumb300(uri),\n\t\t});\n\n\t\tthis.setImages(imagesUpdate, imageFieldId);\n\t};\n\n\tonUploadStartedDocument = (\n\t\tuploadUri,\n\t\tdocumentUri,\n\t\tdocumentName,\n\t\tdocumentExt,\n\t\tdocumentFieldId,\n\t) => {\n\t\tconst documentsUpdate = this.getDocuments(documentFieldId);\n\t\tdocumentsUpdate.splice(documentsUpdate.length - 1, 0, {\n\t\t\tuploading: true,\n\t\t\tuploadProgress: \"0%\",\n\t\t\tuploadUri,\n\t\t\tdocumentUri,\n\t\t\tdocumentName,\n\t\t\tdocumentExt,\n\t\t\tallowRetry: true,\n\t\t});\n\n\t\tthis.setDocuments(documentsUpdate, documentFieldId);\n\t};\n\n\tonUploadProgressDocument = (progress, documentFieldId) => {\n\t\tconst documentsUpdate = this.getDocuments(documentFieldId);\n\t\tdocumentsUpdate.map((doc) => {\n\t\t\tif (doc.uploadUri === progress.uri) {\n\t\t\t\tdoc.uploadProgress = progress.percentage;\n\t\t\t\tdoc.uploading = true;\n\t\t\t\tdoc.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setDocuments(documentsUpdate, documentFieldId);\n\t};\n\n\tonUploadSuccessDocument = async (uri, uploadUri, documentFieldId) => {\n\t\tconst documentsUpdate = this.getDocuments(documentFieldId);\n\t\tdocumentsUpdate.map((doc) => {\n\t\t\tif (doc.uploadUri === uploadUri && doc.uploading) {\n\t\t\t\tdoc.uploading = false;\n\t\t\t\tdoc.uploadProgress = \"100%\";\n\t\t\t\tdoc.url = uri;\n\t\t\t\tdoc.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setDocuments(documentsUpdate, documentFieldId);\n\t};\n\n\tonUploadFailedDocument = (uploadUri, documentFieldId) => {\n\t\tconst documentsUpdate = this.getDocuments(documentFieldId);\n\t\tdocumentsUpdate.map((doc) => {\n\t\t\tif (doc.uploadUri === uploadUri) {\n\t\t\t\tdoc.uploading = true; // Requried for retry\n\t\t\t\tdoc.uploadProgress = \"\";\n\t\t\t\tdoc.allowRetry = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setDocuments(documentsUpdate, documentFieldId);\n\t};\n\n\tonPressBack() {\n\t\tServices.navigation.goBack();\n\t}\n\n\tonPressType() {\n\t\tServices.navigation.navigate(values.screenJobTypePicker, {\n\t\t\tcurrentType: this.state.type,\n\t\t\ttypes: this.state.types,\n\t\t\tonSelectType: this.pickType.bind(this),\n\t\t});\n\t}\n\n\tonCloseConfirmationPopup() {\n\t\tthis.setState({\n\t\t\tconfirmationToShow: false,\n\t\t});\n\t\tServices.navigation.goBack();\n\t\tthis.props.onBack && this.props.onBack();\n\t}\n\n\tonConfirmationReset() {\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tconfirmationToShow: false,\n\t\t\t\ttitle: \"\",\n\t\t\t\tdescription: \"\",\n\t\t\t\ttimes: \"\",\n\t\t\t\tisHome: false,\n\t\t\t\tuploadingImage: false,\n\t\t\t\timages: [\n\t\t\t\t\t{\n\t\t\t\t\t\tadd: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tsubmitting: false,\n\t\t\t\tsuccess: false,\n\t\t\t\tfail: false,\n\t\t\t\tcustomFields: [],\n\t\t\t\tcustomFieldImages: {},\n\t\t\t\tcustomFieldDocuments: {},\n\t\t\t\tisDateTimePickerVisible: false,\n\t\t\t\tpopUpType: \"date\",\n\t\t\t\tdateFieldId: null,\n\t\t\t\timageFieldId: null,\n\t\t\t},\n\t\t\t() => this.pickType(this.state.type),\n\t\t);\n\t}\n\n\tisFieldValid = (field, fieldId) => {\n\t\tconst { mandatory, type, answer } = field;\n\t\tif ([\"staticTitle\", \"staticText\"].includes(type)) return true;\n\n\t\tconst checkMandatory = () => {\n\t\t\tif (!mandatory) return true;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"yn\":\n\t\t\t\t\treturn _.isBoolean(answer);\n\t\t\t\tcase \"image\":\n\t\t\t\t\tconst imagesList = this.getImageUrls(fieldId);\n\t\t\t\t\treturn imagesList.length > 0;\n\t\t\t\tcase \"document\":\n\t\t\t\t\tconst documentsList = this.getDocumentAnswers(fieldId);\n\t\t\t\t\treturn documentsList.length > 0;\n\t\t\t\tcase \"checkbox\":\n\t\t\t\t\treturn _.isArray(answer) && answer.length > 0;\n\t\t\t\tdefault:\n\t\t\t\t\treturn !_.isNil(answer) && !_.isEmpty(answer);\n\t\t\t}\n\t\t};\n\t\tconst checkFormat = () => {\n\t\t\tif (_.isNil(answer) || _.isEmpty(answer)) return true;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"email\":\n\t\t\t\t\treturn Helper.isEmail(answer);\n\t\t\t\tcase \"date\":\n\t\t\t\t\treturn moment(answer, \"YYYY-MM-DD\", true).isValid();\n\t\t\t\tcase \"time\":\n\t\t\t\t\treturn moment(answer, \"HH:mm\", true).isValid();\n\t\t\t\tdefault:\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t};\n\n\t\tconst valid = checkMandatory() && checkFormat();\n\t\treturn valid;\n\t};\n\n\tgetJobTypes() {\n\t\tmaintenanceActions\n\t\t\t.getJobTypes(Helper.getSite(this.props.site))\n\t\t\t.then((res) => {\n\t\t\t\tthis.setState(\n\t\t\t\t\t{\n\t\t\t\t\t\ttypes: res.data,\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.getDefaultJob();\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n\n\tpickType(type) {\n\t\tconst { types } = this.state;\n\t\tconst selected = types.find((t) => t.typeName === type) || {};\n\t\tif (values.forceCustomFields && !selected.hasCustomFields) {\n\t\t\tthis.setState({\n\t\t\t\ttype,\n\t\t\t\tcustomFields: [],\n\t\t\t\tnoType: true,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst update = {\n\t\t\ttype,\n\t\t\tcustomFields:\n\t\t\t\tselected.hasCustomFields && selected.customFields.length > 0\n\t\t\t\t\t? _.cloneDeep(selected.customFields)\n\t\t\t\t\t: [],\n\t\t\tloadingTypes: false,\n\t\t};\n\n\t\tif (\n\t\t\t!_.isEmpty(update.customFields) &&\n\t\t\t!_.some(update.customFields, \"isTitle\")\n\t\t) {\n\t\t\tupdate.title = this.state.userName;\n\t\t}\n\n\t\tthis.setState(update);\n\t}\n\n\tgetDefaultJob() {\n\t\tconst { types, jobId } = this.state;\n\t\tif (types.length !== 0 && jobId == null) {\n\t\t\tconst defaultType = types[0];\n\t\t\tthis.pickType(defaultType.typeName);\n\t\t}\n\t}\n\n\tshowUploadMenu = (fieldId) => {\n\t\tKeyboard.dismiss();\n\t\tif (this.state.uploadingImage || this.state.submitting) {\n\t\t\treturn;\n\t\t}\n\t\tif (fieldId) this.setState({ imageFieldId: fieldId });\n\t\tthis.imageUploader.showUploadMenu();\n\t};\n\n\tsubmit = async () => {\n\t\tthis.setState({ submitting: true });\n\n\t\tlet description = this.state.description;\n\n\t\tif (this.state.isHome) {\n\t\t\tdescription = description + `. -- Times Available: ${this.state.times}`;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tthis.scrollContainer.scrollTo({ y: 0 });\n\t\t}, 100);\n\n\t\tconst images = this.getImageUrls();\n\n\t\t// Fix custom images field answers\n\t\tconst customFields = _.cloneDeep(this.state.customFields);\n\t\tconst updatedCustomFields = customFields.map((field, fieldId) => {\n\t\t\tif (field.type === \"image\") field.answer = this.getImageUrls(fieldId);\n\t\t\tif (field.type === \"document\")\n\t\t\t\tfield.answer = this.getDocumentAnswers(fieldId);\n\t\t\treturn field;\n\t\t});\n\n\t\tconst userID =\n\t\t\tthis.state.canCreateOnBehalf && this.state.selectedUser\n\t\t\t\t? this.state.selectedUser.userId || this.state.selectedUser.Id\n\t\t\t\t: this.props.uid;\n\n\t\tmaintenanceActions\n\t\t\t.sendMaintenanceRequest(\n\t\t\t\tuserID,\n\t\t\t\tthis.state.userName,\n\t\t\t\tthis.state.phone,\n\t\t\t\tthis.state.roomNumber,\n\t\t\t\tthis.state.title,\n\t\t\t\tdescription,\n\t\t\t\tnull,\n\t\t\t\tthis.state.type,\n\t\t\t\timages,\n\t\t\t\tHelper.getSite(this.props.site),\n\t\t\t\tthis.state.isHome,\n\t\t\t\tthis.state.times,\n\t\t\t\tupdatedCustomFields,\n\t\t\t)\n\t\t\t.then((res) => {\n\t\t\t\tif (res.data.success) {\n\t\t\t\t\tthis.refreshRequest(res.data.searchResult);\n\t\t\t\t\tif (this.props.onSubmissionSuccess)\n\t\t\t\t\t\tthis.props.onSubmissionSuccess(res.data);\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tsubmitting: false,\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\tconfirmationToShow: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tsubmitting: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tconsole.log(\"maintenance submission fail.\");\n\t\t\t\tconsole.log(err);\n\t\t\t\tthis.setState({\n\t\t\t\t\tsubmitting: false,\n\t\t\t\t});\n\t\t\t});\n\t};\n\n\trefreshRequest = async (id) => {\n\t\ttry {\n\t\t\tconst job = await maintenanceActions.getJob(\n\t\t\t\tHelper.getSite(this.props.site),\n\t\t\t\tid,\n\t\t\t);\n\t\t\tthis.props.jobAdded(job.data);\n\t\t} catch (error) {\n\t\t\tconsole.log(\"refreshRequest error\", error);\n\t\t}\n\t};\n\n\tvalidateCustomFields = () => {\n\t\tconst { customFields } = this.state;\n\t\tif (!customFields || customFields.length === 0) return true;\n\n\t\treturn customFields.every((field, index) => {\n\t\t\tconst isValid = this.isFieldValid(field, index);\n\t\t\treturn isValid;\n\t\t});\n\t};\n\n\tsubmitRequest() {\n\t\tconst {\n\t\t\tcustomFields,\n\t\t\tsubmitting,\n\t\t\tuploadingImage,\n\t\t\ttitle,\n\t\t\troomNumber,\n\t\t\tisHome,\n\t\t\tcustomFieldImages,\n\t\t\ttimes,\n\t\t} = this.state;\n\t\tconst hasCustomFields = customFields && customFields.length > 0;\n\t\tfunction showFormErrorAlert() {}\n\n\t\tif (submitting || !this.props.connected) {\n\t\t\tif (!this.props.connected) {\n\t\t\t\tthis.setState({\n\t\t\t\t\terror: { message: \"No internet connection detected\" },\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (uploadingImage) return;\n\t\tthis.setState({ error: null, showError: false });\n\n\t\t// PC-1255: Validate user selection for on-behalf requests\n\t\tif (this.state.canCreateOnBehalf && !this.state.selectedUser) {\n\t\t\tconsole.log(\"submitRequest - no user selected for on-behalf request\");\n\t\t\tAlert.alert(\n\t\t\t\t\"Missing Information\",\n\t\t\t\t\"Please select a user to submit the form on behalf of\",\n\t\t\t);\n\t\t\tthis.setState({ showError: true });\n\t\t\treturn;\n\t\t}\n\n\t\tif (title.length === 0 || !roomNumber || roomNumber.length === 0) {\n\t\t\tconsole.log(\"submitRequest - error\", { title, roomNumber });\n\t\t\tAlert.alert(\n\t\t\t\t\"Missing Information\",\n\t\t\t\t\"Please fill out your address details\",\n\t\t\t);\n\t\t\tthis.setState({ showError: true });\n\t\t\treturn;\n\t\t}\n\t\tif (hasCustomFields) {\n\t\t\tif (!this.validateCustomFields()) {\n\t\t\t\tconsole.log(\"submitRequest - custom fields error\");\n\t\t\t\tAlert.alert(\n\t\t\t\t\t\"Invalid Information\",\n\t\t\t\t\t\"Please review the form for errors and try submitting again.\",\n\t\t\t\t);\n\t\t\t\tthis.setState({ showError: true });\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\tif (isHome && times.length < 2) {\n\t\t\t\tconsole.log(\"submitRequest - error\", { isHome, times });\n\t\t\t\tAlert.alert(\n\t\t\t\t\t\"Invalid Information\",\n\t\t\t\t\t\"Please review the form for errors and try submitting again.\",\n\t\t\t\t);\n\t\t\t\tthis.setState({ showError: true });\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.submit();\n\t}\n\n\tgetImages = (fieldId = null) => {\n\t\tconst { images, customFieldImages } = this.state;\n\t\tconst imagesList = _.cloneDeep(\n\t\t\tfieldId ? customFieldImages[fieldId] : images,\n\t\t);\n\t\tif (!imagesList || !Array.isArray(imagesList) || imagesList.length === 0) {\n\t\t\treturn [{ add: true }];\n\t\t}\n\t\treturn imagesList;\n\t};\n\n\tsetImages = (imagesList, fieldId = null, callback = null) => {\n\t\tlet update = {};\n\t\tif (fieldId) {\n\t\t\tconst customFieldImages = _.cloneDeep(this.state.customFieldImages);\n\t\t\tcustomFieldImages[fieldId] = imagesList;\n\t\t\tupdate = { customFieldImages };\n\t\t} else {\n\t\t\tupdate = { images: imagesList };\n\t\t}\n\t\tthis.setState(update, callback);\n\t};\n\n\tgetImageUrls = (fieldId = null) => {\n\t\tconst imagesList = this.getImages(fieldId);\n\t\treturn _.filter(imagesList, (img) => {\n\t\t\treturn !img.uploading && !img.add;\n\t\t}).map((img) => {\n\t\t\treturn img.url;\n\t\t});\n\t};\n\n\twaitForThumbnails = () => {\n\t\tif (this.checkThumb) return;\n\n\t\tthis.checkThumb = setInterval(async () => {\n\t\t\tconst { imageFieldId } = this.state;\n\t\t\tconst imagesList = this.getImages(imageFieldId);\n\t\t\tconst imagesUpdate = [];\n\t\t\tawait Promise.all(\n\t\t\t\timagesList.map((image) => {\n\t\t\t\t\treturn new Promise(async (resolve) => {\n\t\t\t\t\t\tconst newImage = { ...image };\n\t\t\t\t\t\timagesUpdate.push(newImage);\n\t\t\t\t\t\tif (newImage.url && !newImage.thumbNailExists) {\n\t\t\t\t\t\t\tnewImage.uploading = false;\n\t\t\t\t\t\t\tnewImage.allowRetry = false;\n\t\t\t\t\t\t\tnewImage.thumbNailExists = await Helper.imageExists(\n\t\t\t\t\t\t\t\tnewImage.thumbNailUrl,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tresolve(newImage.thumbNailExists);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst thumbnailsExist = imagesUpdate.every(\n\t\t\t\t(image) => !image.url || image.thumbNailExists,\n\t\t\t);\n\t\t\tif (thumbnailsExist) {\n\t\t\t\tclearInterval(this.checkThumb);\n\t\t\t\tthis.checkThumb = null;\n\t\t\t\tthis.setImages(imagesUpdate, imageFieldId);\n\t\t\t}\n\t\t}, 2000);\n\t};\n\n\tremoveImage = (index, fieldId) => {\n\t\tconst imagesUpdate = this.getImages(fieldId);\n\t\timagesUpdate.splice(index, 1);\n\n\t\tthis.setImages(imagesUpdate, fieldId);\n\t};\n\n\tgetDocuments = (fieldId) => {\n\t\tconst { customFieldDocuments } = this.state;\n\t\tconst documentsList = _.cloneDeep(customFieldDocuments[fieldId]) || [];\n\t\treturn documentsList;\n\t};\n\n\tsetDocuments = (documentsList, fieldId) => {\n\t\tlet update = {};\n\t\tconst customFieldDocuments = _.cloneDeep(this.state.customFieldDocuments);\n\t\tcustomFieldDocuments[fieldId] = documentsList;\n\t\tupdate = { customFieldDocuments };\n\t\tthis.setState(update);\n\t};\n\n\tgetDocumentAnswers = (fieldId) => {\n\t\tconst documentsList = this.getDocuments(fieldId);\n\t\treturn _.filter(documentsList, (doc) => {\n\t\t\treturn !doc.uploading && doc.url;\n\t\t}).map((doc) => {\n\t\t\treturn {\n\t\t\t\tname: doc.documentName,\n\t\t\t\text: doc.documentExt,\n\t\t\t\turl: doc.url,\n\t\t\t};\n\t\t});\n\t};\n\n\tremoveDocument = (index, fieldId) => {\n\t\tconst documentsUpdate = this.getDocuments(fieldId);\n\t\tdocumentsUpdate.splice(index, 1);\n\n\t\tthis.setDocuments(documentsUpdate, fieldId);\n\t};\n\n\ttoggleFullscreenVideo = (url) => {\n\t\tif (typeof url !== \"string\") url = \"\";\n\t\tthis.setState({\n\t\t\tshowFullscreenVideo: url.length > 0,\n\t\t\tcurrentVideoUrl: url,\n\t\t});\n\t};\n\n\trenderImageUploader() {\n\t\treturn (\n\t\t\t<Components.ImageUploader\n\t\t\t\tref={(ref) => (this.imageUploader = ref)}\n\t\t\t\tonUploadStarted={this.onUploadStartedImage}\n\t\t\t\tonUploadSuccess={this.onUploadSuccessImage}\n\t\t\t\tonUploadFailed={this.onUploadFailedImage}\n\t\t\t\tonUploadProgress={this.onUploadProgressImage}\n\t\t\t\tonLibrarySelected={this.onLibrarySelectedImage}\n\t\t\t\tsize={{ width: 1400 }}\n\t\t\t\tquality={0.8}\n\t\t\t\tfileName={\"serviceImage\"}\n\t\t\t\tpopupTitle={\"Upload Image\"}\n\t\t\t\tuserId={this.props.uid}\n\t\t\t\tallowsEditing={false}\n\t\t\t\tmultiple\n\t\t\t\thideLibrary\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderImage(item, index, fieldId = null) {\n\t\tconst isVideoUrl = Helper.isVideo(item.url);\n\t\tconst imagesList = this.getImages(fieldId);\n\n\t\tif (item.add) {\n\t\t\treturn (\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tactiveOpacity={0.8}\n\t\t\t\t\tonPress={() => this.showUploadMenu(fieldId)}\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\tstyles.imageContainer,\n\t\t\t\t\t\t\timagesList.length > 1 && styles.imageContainerNotEmpty,\n\t\t\t\t\t\t\tindex % 3 === 0 && { marginLeft: 0 },\n\t\t\t\t\t\t\tindex > 2 && { marginTop: 8 },\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={styles.imageCircle}>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname=\"camera\"\n\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\ticonStyle={styles.addImageIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</TouchableOpacity>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={[\n\t\t\t\t\tstyles.imageContainer,\n\t\t\t\t\timagesList.length > 1 && styles.imageContainerNotEmpty,\n\t\t\t\t\tindex % 3 === 0 && { marginLeft: 0 },\n\t\t\t\t\tindex > 2 && { marginTop: 8 },\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t{item.uploading ? (\n\t\t\t\t\t<Components.ImageUploadProgress\n\t\t\t\t\t\tuploader={this.imageUploader}\n\t\t\t\t\t\timage={item}\n\t\t\t\t\t\tcolor={this.props.colourBrandingMain}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<ImageBackground\n\t\t\t\t\t\tstyle={styles.imageBackground}\n\t\t\t\t\t\tsource={Helper.getImageSource(\n\t\t\t\t\t\t\titem.thumbNailExists ? item.thumbNailUrl : item.url,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isVideoUrl && (\n\t\t\t\t\t\t\t<View style={styles.imagePlayContainer}>\n\t\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\t\tonPress={this.toggleFullscreenVideo.bind(this, item.url)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tname=\"play\"\n\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\ticonStyle={styles.imageControlIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tstyle={styles.removeImage}\n\t\t\t\t\t\t\tonPress={() => this.removeImage(index, fieldId)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname=\"remove\"\n\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\ticonStyle={styles.imageControlIcon}\n\t\t\t\t\t\t\t\tstyle={styles.removeImage}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t</ImageBackground>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderDocument(item, index, fieldId) {\n\t\tconst { colourBrandingMain } = this.props;\n\t\treturn (\n\t\t\t<View key={index} style={styles.documentContainer}>\n\t\t\t\t<View\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...styles.documentTypeContainer,\n\t\t\t\t\t\tbackgroundColor: colourBrandingMain,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Text style={styles.documentTypeText}>{item.documentExt}</Text>\n\t\t\t\t</View>\n\t\t\t\t<Text\n\t\t\t\t\tstyle={styles.documentText}\n\t\t\t\t>{`${item.documentName}${item.uploading ? ` - ${item.uploadProgress}` : \"\"}`}</Text>\n\t\t\t\t{!item.uploading && (\n\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\tstyle={styles.removeDocumentButton}\n\t\t\t\t\t\tonPress={() => this.removeDocument(index, fieldId)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tname=\"remove\"\n\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\ticonStyle={{\n\t\t\t\t\t\t\t\t...styles.removeDocumentIcon,\n\t\t\t\t\t\t\t\tcolor: colourBrandingMain,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderSuccess() {\n\t\treturn (\n\t\t\t<View style={{ padding: 16, flex: 1, backgroundColor: \"#fff\" }}>\n\t\t\t\t<Text style={styles.requestSuccess}>\n\t\t\t\t\tYour request has been submitted. Thank you.\n\t\t\t\t</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderImageList(fieldId = null) {\n\t\tconst imagesList = this.getImages(fieldId);\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={[\n\t\t\t\t\tstyles.imageListContainer,\n\t\t\t\t\timagesList.length < 2 && styles.imageListContainerEmpty,\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t<FlatList\n\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\tenableEmptySections\n\t\t\t\t\tdata={imagesList}\n\t\t\t\t\trenderItem={({ item, index }) =>\n\t\t\t\t\t\tthis.renderImage(item, index, fieldId)\n\t\t\t\t\t}\n\t\t\t\t\tkeyExtractor={(item, index) => index}\n\t\t\t\t\tnumColumns={3}\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderDocumentList(fieldId) {\n\t\tconst documentsList = this.getDocuments(fieldId);\n\t\treturn (\n\t\t\t<View style={styles.documentListContainer}>\n\t\t\t\t{documentsList.length > 0\n\t\t\t\t\t? documentsList.map((document, index) =>\n\t\t\t\t\t\t\tthis.renderDocument(document, index, fieldId),\n\t\t\t\t\t\t)\n\t\t\t\t\t: null}\n\t\t\t\t<Components.DocumentUploader\n\t\t\t\t\tbuttonTitle=\"Add Files\"\n\t\t\t\t\tallowedTypes={[\"application/pdf\"]}\n\t\t\t\t\tonUploadStarted={(uploadUri, uri, name, ext) =>\n\t\t\t\t\t\tthis.onUploadStartedDocument(uploadUri, uri, name, ext, fieldId)\n\t\t\t\t\t}\n\t\t\t\t\tonUploadProgress={(progress) =>\n\t\t\t\t\t\tthis.onUploadProgressDocument(progress, fieldId)\n\t\t\t\t\t}\n\t\t\t\t\tonUploadSuccess={(uri, uploadUri) =>\n\t\t\t\t\t\tthis.onUploadSuccessDocument(uri, uploadUri, fieldId)\n\t\t\t\t\t}\n\t\t\t\t\tonUploadFailed={(uploadUri) =>\n\t\t\t\t\t\tthis.onUploadFailedDocument(uploadUri, fieldId)\n\t\t\t\t\t}\n\t\t\t\t\tfileName=\"serviceDocument\"\n\t\t\t\t\tuserId={this.props.uid}\n\t\t\t\t\tdisabled={false}\n\t\t\t\t\tmultiple\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderDateField(field, fieldId, sectionStyle) {\n\t\tlet displayText, placeHolder, icon, errorText;\n\t\tif (field.type === \"date\") {\n\t\t\tdisplayText = field.answer\n\t\t\t\t? moment(field.answer, \"YYYY-MM-DD\").format(\"DD MMM YYYY\")\n\t\t\t\t: \"\";\n\t\t\tplaceHolder = \"dd mmm yyyy\";\n\t\t\ticon = \"calendar\";\n\t\t\terrorText = \"Not a valid date\";\n\t\t} else {\n\t\t\tdisplayText = field.answer\n\t\t\t\t? moment(field.answer, \"HH:mm\").format(\"h:mm a\")\n\t\t\t\t: \"\";\n\t\t\tplaceHolder = \"--:-- --\";\n\t\t\ticon = \"clock-o\";\n\t\t\terrorText = \"Not a valid time\";\n\t\t}\n\n\t\treturn (\n\t\t\t<Components.GenericInputSection\n\t\t\t\tkey={fieldId}\n\t\t\t\tlabel={field.label}\n\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\trequired={field.mandatory}\n\t\t\t\tshowError={this.state.showError}\n\t\t\t\terrorText={errorText}\n\t\t\t>\n\t\t\t\t<View style={styles.dateContainer}>\n\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\tstyle={styles.dateFieldButton}\n\t\t\t\t\t\tonPress={() => this.onOpenDatePicker(field, fieldId)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={styles.dateFieldContainer}>\n\t\t\t\t\t\t\t<Text style={styles.dateText}>{displayText || placeHolder}</Text>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\tname={icon}\n\t\t\t\t\t\t\t\ticonStyle={styles.dateIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t{displayText ? (\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tstyle={styles.dateClearButton}\n\t\t\t\t\t\t\tonPress={() => this.onClearDate(fieldId)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\tname=\"times\"\n\t\t\t\t\t\t\t\ticonStyle={styles.removeIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t) : null}\n\t\t\t\t</View>\n\t\t\t</Components.GenericInputSection>\n\t\t);\n\t}\n\n\trenderField(field, fieldId) {\n\t\tconst sectionStyle = {\n\t\t\tmarginTop: fieldId === 0 ? 24 : 0,\n\t\t\tmarginBottom: 24,\n\t\t};\n\t\tswitch (field.type) {\n\t\t\tcase \"yn\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tinputType=\"toggle\"\n\t\t\t\t\t\tvalue={field.answer}\n\t\t\t\t\t\tonChange={(answer) => this.onChangeToggleAnswer(fieldId, answer)}\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"multichoice\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tinputType=\"radio\"\n\t\t\t\t\t\tvalue={field.answer}\n\t\t\t\t\t\tonChange={(answer) => this.onChangeToggleAnswer(fieldId, answer)}\n\t\t\t\t\t\toptions={field.values.map((o) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tLabel: o,\n\t\t\t\t\t\t\t\tValue: o,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"checkbox\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t>\n\t\t\t\t\t\t{field.values.map((o, i) => {\n\t\t\t\t\t\t\tconst isActive = field.answer && _.includes(field.answer, o);\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\t\tonPress={() => this.onChangeCheckboxAnswer(fieldId, o)}\n\t\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\t\tstyle={styles.multiChoiceOption}\n\t\t\t\t\t\t\t\t\thitSlop={{ top: 8, left: 8, bottom: 8, right: 8 }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{isActive ? (\n\t\t\t\t\t\t\t\t\t\t<Components.TickIcon\n\t\t\t\t\t\t\t\t\t\t\tstyle={styles.tick}\n\t\t\t\t\t\t\t\t\t\t\tsize={20}\n\t\t\t\t\t\t\t\t\t\t\tcolor={this.props.colourBrandingMain}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<View style={styles.unticked} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<Text style={styles.multiChoiceText}>{o}</Text>\n\t\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Components.GenericInputSection>\n\t\t\t\t);\n\t\t\tcase \"text\":\n\t\t\tcase \"email\":\n\t\t\tcase \"phone\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tplaceholder={field.placeHolder}\n\t\t\t\t\t\tvalue={field.answer}\n\t\t\t\t\t\tonChangeText={(val) => this.onChangeAnswer(fieldId, val)}\n\t\t\t\t\t\teditable\n\t\t\t\t\t\tsquaredCorners\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t\terrorText={field.type === \"email\" ? \"Not a valid email\" : undefined}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tautoCapitalize=\"sentences\"\n\t\t\t\t\t\tkeyboardType={this.keyboardTypes[field.type]}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"staticTitle\":\n\t\t\t\treturn (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\tstyles.staticTitle,\n\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\tsectionStyle,\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t{field.label}\n\t\t\t\t\t</Text>\n\t\t\t\t);\n\t\t\tcase \"staticText\":\n\t\t\t\treturn (\n\t\t\t\t\t<View key={fieldId} style={[styles.staticText, sectionStyle]}>\n\t\t\t\t\t\t{Helper.toParagraphed(field.label, styles.staticText)}\n\t\t\t\t\t</View>\n\t\t\t\t);\n\t\t\tcase \"date\":\n\t\t\tcase \"time\":\n\t\t\t\treturn this.renderDateField(field, fieldId, sectionStyle);\n\t\t\tcase \"image\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.renderImageList(fieldId)}\n\t\t\t\t\t</Components.GenericInputSection>\n\t\t\t\t);\n\t\t\tcase \"document\":\n\t\t\t\treturn (\n\t\t\t\t\t<Components.GenericInputSection\n\t\t\t\t\t\tkey={fieldId}\n\t\t\t\t\t\tlabel={field.label}\n\t\t\t\t\t\tsectionStyle={sectionStyle}\n\t\t\t\t\t\tisValid={() => this.isFieldValid(field, fieldId)}\n\t\t\t\t\t\trequired={field.mandatory}\n\t\t\t\t\t\tshowError={this.state.showError}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.renderDocumentList(fieldId)}\n\t\t\t\t\t</Components.GenericInputSection>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\trenderCustomFields() {\n\t\tconst { customFields } = this.state;\n\t\tif (!customFields || customFields.length === 0) return null;\n\n\t\treturn (\n\t\t\t<Components.FormCard style={{ marginTop: 16 }}>\n\t\t\t\t{customFields.map((field, i) => this.renderField(field, i))}\n\t\t\t</Components.FormCard>\n\t\t);\n\t}\n\n\trenderForm() {\n\t\tconst { customFields, loadingTypes } = this.state;\n\t\tconst hasCustomFields = customFields && customFields.length > 0;\n\n\t\tif (loadingTypes) {\n\t\t\treturn <Components.Spinner />;\n\t\t}\n\n\t\treturn (\n\t\t\t<View style={{ flex: 1 }}>\n\t\t\t\t<ScrollView\n\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\tstyle={{ flex: 1 }}\n\t\t\t\t\tref={(ref) => (this.scrollContainer = ref)}\n\t\t\t\t>\n\t\t\t\t\t<View style={{ paddingBottom: 2 }}>\n\t\t\t\t\t\t<Components.LoadingIndicator visible={this.state.submitting} />\n\t\t\t\t\t\t{this.state.error && (\n\t\t\t\t\t\t\t<Text style={styles.errorText}>{this.state.error}</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Components.FormCard style={{ marginTop: 16 }}>\n\t\t\t\t\t\t\t{/* PC-1255: User picker for on-behalf requests */}\n\t\t\t\t\t\t\t{this.state.canCreateOnBehalf && (\n\t\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\t\tlabel={\"Select User\"}\n\t\t\t\t\t\t\t\t\ttextValue={this.state.selectedUser?.displayName}\n\t\t\t\t\t\t\t\t\thasContent\n\t\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\terrorText=\"Please select a user.\"\n\t\t\t\t\t\t\t\t\tshowError={this.state.showError && !this.state.selectedUser}\n\t\t\t\t\t\t\t\t\tsectionStyle={{\n\t\t\t\t\t\t\t\t\t\tborderBottomWidth: 1,\n\t\t\t\t\t\t\t\t\t\tborderBottomColor: Colours.LINEGREY,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<TouchableOpacity onPress={this.onPressUser}>\n\t\t\t\t\t\t\t\t\t\t<View style={styles.userPickerContainer}>\n\t\t\t\t\t\t\t\t\t\t\t<View style={styles.profileContainer}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Components.ProfilePic\n\t\t\t\t\t\t\t\t\t\t\t\t\tProfilePic={this.state.selectedUser?.profilePic}\n\t\t\t\t\t\t\t\t\t\t\t\t\tDiameter={30}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t<Text style={styles.nameText}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.selectedUser?.displayName ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Select User\"}\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"angle-right\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\t\t\ticonStyle={[\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.sectionTitle,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 20,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: this.props.colourBrandingMain,\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t\t\t</Components.FormCardSection>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{/* PC-1255: Hide Name field when creating on behalf - name comes from selected user */}\n\t\t\t\t\t\t\t{!this.state.canCreateOnBehalf && (\n\t\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\t\tlabel={\"Name\"}\n\t\t\t\t\t\t\t\t\tplaceholder={\"Enter your name\"}\n\t\t\t\t\t\t\t\t\ttextValue={this.state.userName}\n\t\t\t\t\t\t\t\t\tonChangeText={(userName) => this.onChangeName(userName)}\n\t\t\t\t\t\t\t\t\teditable={\n\t\t\t\t\t\t\t\t\t\tthis.props.userType === \"KIOSK\" &&\n\t\t\t\t\t\t\t\t\t\tthis.state.submitting === false\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisValid={() => {\n\t\t\t\t\t\t\t\t\t\treturn this.state.userName.length > 1;\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\terrorText=\"Please enter your name.\"\n\t\t\t\t\t\t\t\t\tshowError={\n\t\t\t\t\t\t\t\t\t\tthis.state.showError && this.state.userName.length < 2\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\tlabel={\"Contact number\"}\n\t\t\t\t\t\t\t\tplaceholder={\"Enter phone number\"}\n\t\t\t\t\t\t\t\ttextValue={this.state.phone}\n\t\t\t\t\t\t\t\tonChangeText={(phone) => this.setState({ phone })}\n\t\t\t\t\t\t\t\teditable={this.state.submitting === false}\n\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\tkeyboardType={\"phone-pad\"}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\tlabel={\"Address\"}\n\t\t\t\t\t\t\t\tplaceholder={\"Enter your address\"}\n\t\t\t\t\t\t\t\ttextValue={this.state.roomNumber}\n\t\t\t\t\t\t\t\tonChangeText={(roomNumber) => this.setState({ roomNumber })}\n\t\t\t\t\t\t\t\teditable={this.state.submitting === false}\n\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\tisValid={() => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tthis.state.roomNumber && this.state.roomNumber.length > 1\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\terrorText=\"Please provide your address.\"\n\t\t\t\t\t\t\t\tshowError={\n\t\t\t\t\t\t\t\t\tthis.state.showError &&\n\t\t\t\t\t\t\t\t\t(!this.state.roomNumber || this.state.roomNumber.length < 2)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Components.FormCard>\n\t\t\t\t\t\t<Components.FormCard\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tmarginTop: 16,\n\t\t\t\t\t\t\t\tpaddingHorizontal: 24,\n\t\t\t\t\t\t\t\tpaddingVertical: 16,\n\t\t\t\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text style={styles.sectionTitle}>{values.textJobType}</Text>\n\t\t\t\t\t\t\t<TouchableOpacity onPress={this.onPressType.bind(this)}>\n\t\t\t\t\t\t\t\t<View style={{ flexDirection: \"row\" }}>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\t\tstyles.sectionTitle,\n\t\t\t\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain, marginRight: 16 },\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{this.state.type}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tname=\"angle-right\"\n\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\ticonStyle={[\n\t\t\t\t\t\t\t\t\t\t\tstyles.sectionTitle,\n\t\t\t\t\t\t\t\t\t\t\t{ fontSize: 20, color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t</Components.FormCard>\n\t\t\t\t\t\t{hasCustomFields ? (\n\t\t\t\t\t\t\tthis.renderCustomFields()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Components.FormCard style={{ marginTop: 16 }}>\n\t\t\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\t\t\tlabel={\"Title\"}\n\t\t\t\t\t\t\t\t\t\tplaceholder={\"Enter a title for your request\"}\n\t\t\t\t\t\t\t\t\t\ttextValue={this.state.title}\n\t\t\t\t\t\t\t\t\t\tonChangeText={(title) => this.setState({ title })}\n\t\t\t\t\t\t\t\t\t\teditable={this.state.submitting === false}\n\t\t\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\t\t\tisValid={() => {\n\t\t\t\t\t\t\t\t\t\t\treturn this.state.title.length > 1;\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\terrorText=\"Please provide a title.\"\n\t\t\t\t\t\t\t\t\t\tshowError={\n\t\t\t\t\t\t\t\t\t\t\tthis.state.showError && this.state.title.length < 2\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tautoCorrect\n\t\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\t\tautoGrow\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\t\t\tlabel={\"Description\"}\n\t\t\t\t\t\t\t\t\t\tplaceholder={\"Describe your request here in detail\"}\n\t\t\t\t\t\t\t\t\t\ttextValue={this.state.description}\n\t\t\t\t\t\t\t\t\t\tonChangeText={(description) =>\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({ description })\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\teditable={this.state.submitting === false}\n\t\t\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\t\t\tautoCorrect\n\t\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\t\tautoGrow\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Components.FormCard>\n\t\t\t\t\t\t\t\t<Components.FormCard\n\t\t\t\t\t\t\t\t\tstyle={{ marginTop: 16, paddingHorizontal: 24 }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\tpaddingVertical: 16,\n\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tthis.state.isHome && {\n\t\t\t\t\t\t\t\t\t\t\t\tborderBottomWidth: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tborderBottomColor: Colours.LINEGREY,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Text style={styles.sectionTitle}>\n\t\t\t\t\t\t\t\t\t\t\t{Config.env.strings.MAINTENANCE_HOME}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\t\t\t\tvalue={this.state.isHome}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={this.state.submitting}\n\t\t\t\t\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ isHome: value })\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\ttrackColor={{\n\t\t\t\t\t\t\t\t\t\t\t\tfalse: \"#ddd\",\n\t\t\t\t\t\t\t\t\t\t\t\ttrue: this.props.colourBrandingMain,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tthumbColor={Platform.OS === \"android\" ? \"#fff\" : null}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t{this.state.isHome && (\n\t\t\t\t\t\t\t\t\t\t<Components.FormCardSection\n\t\t\t\t\t\t\t\t\t\t\tlabel={\"Available times\"}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\t\t\t\"Describe your available times here in detail.\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\ttextValue={this.state.times}\n\t\t\t\t\t\t\t\t\t\t\tonChangeText={(times) => this.setState({ times })}\n\t\t\t\t\t\t\t\t\t\t\teditable={this.state.submitting === false}\n\t\t\t\t\t\t\t\t\t\t\thasUnderline\n\t\t\t\t\t\t\t\t\t\t\tisValid={() => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn this.state.times.length > 1;\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t\terrorText=\"Please provide available times.\"\n\t\t\t\t\t\t\t\t\t\t\tshowError={\n\t\t\t\t\t\t\t\t\t\t\t\tthis.state.showError &&\n\t\t\t\t\t\t\t\t\t\t\t\tthis.state.isHome &&\n\t\t\t\t\t\t\t\t\t\t\t\tthis.state.times.length < 2\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tminHeight={40}\n\t\t\t\t\t\t\t\t\t\t\tautoCorrect\n\t\t\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\t\t\tautoGrow\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Components.FormCard>\n\t\t\t\t\t\t\t\t{this.renderImageList()}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</View>\n\t\t\t\t</ScrollView>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderRegisterConfirmation() {\n\t\treturn (\n\t\t\t<Components.ConfirmationPopup\n\t\t\t\tconfirmText={`${values.textEntityName} submitted`}\n\t\t\t\trepeatText={\"Submit another\"}\n\t\t\t\tvisible={this.state.confirmationToShow}\n\t\t\t\tonClose={this.onCloseConfirmationPopup.bind(this)}\n\t\t\t\tonPressAction={this.onConfirmationReset.bind(this)}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderVideoPlayerPopup() {\n\t\tconst { showFullscreenVideo, currentVideoUrl } = this.state;\n\t\tif (!currentVideoUrl) return;\n\n\t\treturn (\n\t\t\t<Components.VideoPopup\n\t\t\t\turi={currentVideoUrl}\n\t\t\t\tvisible={showFullscreenVideo}\n\t\t\t\tshowFullscreenButton={false}\n\t\t\t\tonClose={this.toggleFullscreenVideo}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderNoType() {\n\t\tif (!this.state.noType) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<Components.WarningPopup\n\t\t\t\tconfirmText={\"No forms are available\"}\n\t\t\t\tinfoText={\"Check back later for forms.\"}\n\t\t\t\tvisible={this.state.noType}\n\t\t\t\tonClose={this.onPressBack.bind(this)}\n\t\t\t\tpadHorizontal\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { submitting, success, isDateTimePickerVisible, popUpType } =\n\t\t\tthis.state;\n\n\t\treturn (\n\t\t\t<KeyboardAvoidingView behavior={\"padding\"} style={styles.viewContainer}>\n\t\t\t\t{this.renderImageUploader()}\n\t\t\t\t<View style={styles.container}>\n\t\t\t\t\t<Components.Header\n\t\t\t\t\t\tleftIcon=\"angle-left\"\n\t\t\t\t\t\tonPressLeft={this.onPressBack.bind(this)}\n\t\t\t\t\t\ttext={\n\t\t\t\t\t\t\tthis.props.strings[`${values.featureKey}_textFeatureTitle`] ||\n\t\t\t\t\t\t\tvalues.textFeatureTitle\n\t\t\t\t\t\t}\n\t\t\t\t\t\trightText={submitting || success ? null : \"Done\"}\n\t\t\t\t\t\tonPressRight={this.submitRequest.bind(this)}\n\t\t\t\t\t\tabsoluteRight\n\t\t\t\t\t/>\n\t\t\t\t\t{this.renderForm()}\n\t\t\t\t</View>\n\t\t\t\t{this.renderRegisterConfirmation()}\n\t\t\t\t{this.renderVideoPlayerPopup()}\n\t\t\t\t{this.renderNoType()}\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tisVisible={isDateTimePickerVisible}\n\t\t\t\t\tonConfirm={this.onDateSelected}\n\t\t\t\t\tonCancel={() => this.setState({ isDateTimePickerVisible: false })}\n\t\t\t\t\tmode={popUpType}\n\t\t\t\t\theaderTextIOS={`Pick a ${popUpType}`}\n\t\t\t\t\tdate={new Date()}\n\t\t\t\t/>\n\t\t\t</KeyboardAvoidingView>\n\t\t);\n\t}\n}\n\nconst styles = {\n\tviewContainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: \"#fff\",\n\t},\n\tcontainer: {\n\t\tflex: 1,\n\t\tposition: \"relative\",\n\t\tbackgroundColor: \"#f0f0f5\",\n\t},\n\terrorText: {\n\t\tfontFamily: \"sf-regular\",\n\t\tcolor: Colours.COLOUR_TANGERINE,\n\t\tfontSize: 16,\n\t},\n\trequestSuccess: {\n\t\tfontFamily: \"sf-regular\",\n\t\tcolor: Colours.TEXT_DARK,\n\t\tfontSize: 17,\n\t\ttextAlign: \"center\",\n\t},\n\tsectionTitle: {\n\t\tfontFamily: \"sf-regular\",\n\t\tfontSize: 17,\n\t\tcolor: Colours.TEXT_DARK,\n\t},\n\timageListContainer: {\n\t\tmarginTop: 8,\n\t\tpadding: 8,\n\t\tflexDirection: \"row\",\n\t\tbackgroundColor: Colours.BOXGREY,\n\t\tminHeight: 106,\n\t},\n\timageListContainerEmpty: {\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tflexDirection: \"column\",\n\t},\n\tdocumentListContainer: {\n\t\tmarginTop: 8,\n\t\tflexDirection: \"column\",\n\t\talignItems: \"flex-start\",\n\t},\n\timageContainer: {\n\t\twidth: PHOTO_SIZE,\n\t\theight: PHOTO_SIZE,\n\t\tborderStyle: \"dashed\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderWidth: 1,\n\t\tborderColor: Colours.LINEGREY,\n\t\tborderRadius: 4,\n\t\tmarginLeft: 8,\n\t},\n\timageContainerNotEmpty: {\n\t\tborderWidth: 1,\n\t\tborderColor: Colours.LINEGREY,\n\t\tbackgroundColor: \"#fff\",\n\t\tborderStyle: \"dashed\",\n\t},\n\timageBackground: {\n\t\tflex: 1,\n\t\theight: \"100%\",\n\t\twidth: \"100%\",\n\t\tborderRadius: 4,\n\t},\n\timageCircle: {\n\t\twidth: 90,\n\t\theight: 90,\n\t\tborderRadius: 45,\n\t\tbackgroundColor: Colours.PINKISH_GREY,\n\t\tjustifyContent: \"center\",\n\t},\n\taddImageIcon: {\n\t\tcolor: \"#fff\",\n\t\tfontSize: 32,\n\t},\n\timagePlayContainer: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t},\n\timageControlIcon: {\n\t\tcolor: \"#fff\",\n\t\tfontSize: 20,\n\t\ttextShadowColor: \"rgba(0,0,0,0.3)\",\n\t\ttextShadowOffset: { width: 2, height: 2 },\n\t},\n\tremoveImage: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tright: 0,\n\t\tpadding: 4,\n\t\twidth: 40,\n\t\theight: 40,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t},\n\tstaticTitle: {\n\t\tfontSize: 20,\n\t\tfontFamily: \"sf-semibold\",\n\t\tcolor: Colours.TEXT_DARKEST,\n\t},\n\tstaticText: {\n\t\tfontSize: 17,\n\t\tfontFamily: \"sf-regular\",\n\t\tcolor: Colours.TEXT_DARKEST,\n\t\tlineHeight: 24,\n\t},\n\tmultiChoiceOption: {\n\t\tmarginTop: 16,\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tminHeight: 20,\n\t},\n\tmultiChoiceText: {\n\t\tflex: 1,\n\t\tfontFamily: \"sf-medium\",\n\t\tfontSize: 14,\n\t\tcolor: Colours.TEXT_DARK,\n\t},\n\ttick: {\n\t\tmarginRight: 10,\n\t\tborderRadius: 4,\n\t},\n\tunticked: {\n\t\tmarginRight: 10,\n\t\twidth: 20,\n\t\theight: 20,\n\t\tborderColor: Colours.LINEGREY,\n\t\tborderWidth: 1,\n\t\tborderRadius: 4,\n\t},\n\tdateContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t},\n\tdateFieldButton: {\n\t\tflex: 1,\n\t},\n\tdateFieldContainer: {\n\t\tflexDirection: \"row\",\n\t\tborderRadius: 2,\n\t\tbackgroundColor: \"#ebeff2\",\n\t\tpadding: 8,\n\t\tmarginTop: 8,\n\t},\n\tdateText: {\n\t\tflex: 1,\n\t\tfontFamily: \"sf-regular\",\n\t\tfontSize: 16,\n\t\tcolor: \"#65686D\",\n\t},\n\tdateIcon: {\n\t\tfontSize: 18,\n\t\tcolor: Colours.TEXT_BLUEGREY,\n\t},\n\tdateClearButton: {\n\t\tpaddingLeft: 12,\n\t},\n\tremoveIcon: {\n\t\tfontSize: 26,\n\t\tcolor: Colours.TEXT_BLUEGREY,\n\t},\n\tdocumentContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"space-between\",\n\t\tpaddingVertical: 4,\n\t},\n\tdocumentTypeContainer: {\n\t\twidth: 50,\n\t\theight: 60,\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 5,\n\t\tmarginRight: 8,\n\t},\n\tdocumentTypeText: {\n\t\tcolor: \"#fff\",\n\t\tfontFamily: \"sf-semibold\",\n\t\ttextAlign: \"center\",\n\t},\n\tdocumentText: {\n\t\tflex: 1,\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 16,\n\t\tcolor: \"#65686D\",\n\t},\n\tremoveDocumentButton: {\n\t\tpadding: 4,\n\t\twidth: 40,\n\t\theight: 40,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tmarginLeft: 8,\n\t},\n\tremoveDocumentIcon: {\n\t\tfontSize: 24,\n\t},\n\t// PC-1255: User picker styles\n\tuserPickerContainer: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t},\n\tprofileContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t},\n\tnameText: {\n\t\tfontFamily: \"sf-medium\",\n\t\tfontSize: 16,\n\t\tcolor: Colours.TEXT_DARK,\n\t\tmarginLeft: 8,\n\t},\n};\n\nconst mapStateToProps = (state) => {\n\tconst { user, connection } = state;\n\tconst { displayName, profilePic, uid, site, unit, phoneNumber, permissions } =\n\t\tuser;\n\treturn {\n\t\tconnected: connection.connected,\n\t\tuserType: user.type,\n\t\tdisplayName,\n\t\tprofilePic,\n\t\tuid,\n\t\tsite,\n\t\tunit,\n\t\tphoneNumber,\n\t\tpermissions,\n\t\tcolourBrandingMain: Colours.getMainBrandingColourFromState(state),\n\t\tstrings: state.strings?.config || {},\n\t\toptionOnlyForResidents: Helper.getSiteSettingFromState(\n\t\t\tstate,\n\t\t\tvalues.optionOnlyForResidents,\n\t\t),\n\t};\n};\n\nexport default connect(mapStateToProps, { jobAdded })(MaintenanceRequest);\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plusscommunities/pluss-maintenance-app",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.17-beta.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",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"copy:set": "run(){ target='\\@plusscommunities\\/pluss-maintenance-app'; ext=${1:-default}; [ $ext == 'default' ] && replace=$target || replace=$target'-'$ext; echo 'Setting target to '$replace; test -f src/values.config.$ext.js && cp -f src/values.config.$ext.js src/values.config.js; sed -i'' -e 's/'$target'.*\"/'$replace'\"/g' package.json; }; run",
|
|
20
20
|
"copy:uploadnopatch": "for file in `ls ./src/values.config.*.js`; do dup=`echo $file | sed 's/.*values\\.config\\.\\(.*\\)\\.js/\\1/'`; npm run copy:set $dup; npm run upload; done; npm run copy:set;",
|
|
21
21
|
"copy:upload": "npm run patch; npm run copy:uploadnopatch;",
|
|
22
|
-
"copy:betaupload": "
|
|
22
|
+
"copy:betaupload": "for file in `ls ./src/values.config.*.js`; do dup=`echo $file | sed 's/.*values\\.config\\.\\(.*\\)\\.js/\\1/'`; npm run copy:set $dup; npm run betaupload; done; npm run copy:set;"
|
|
23
23
|
},
|
|
24
24
|
"author": "Thorbjorn Kappel Davis",
|
|
25
25
|
"license": "ISC",
|
|
@@ -13,7 +13,6 @@ import { maintenanceActions } from "../apis";
|
|
|
13
13
|
import { Colours, Helper } from "../core.config";
|
|
14
14
|
import {
|
|
15
15
|
getJobStatusOptions,
|
|
16
|
-
getIncompleteJobStatuses,
|
|
17
16
|
jobPriorityOptions,
|
|
18
17
|
getDefaultJobPriority,
|
|
19
18
|
} from "../helper";
|
|
@@ -55,9 +54,7 @@ class FilterPopupMenu extends Component {
|
|
|
55
54
|
},
|
|
56
55
|
{
|
|
57
56
|
label: "Incomplete",
|
|
58
|
-
value:
|
|
59
|
-
.map((s) => s.text)
|
|
60
|
-
.join("|")}`,
|
|
57
|
+
value: "Incomplete",
|
|
61
58
|
},
|
|
62
59
|
...statusOptions.map((s) => ({
|
|
63
60
|
label: s.text,
|
|
@@ -18,6 +18,8 @@ import { Components, Colours, Helper } from "../core.config";
|
|
|
18
18
|
import { values } from "../values.config";
|
|
19
19
|
|
|
20
20
|
class MaintenanceList extends Component {
|
|
21
|
+
_refreshCounter = 0;
|
|
22
|
+
|
|
21
23
|
constructor(props) {
|
|
22
24
|
super(props);
|
|
23
25
|
|
|
@@ -50,10 +52,11 @@ class MaintenanceList extends Component {
|
|
|
50
52
|
this.resetDataSource();
|
|
51
53
|
}
|
|
52
54
|
|
|
53
|
-
refresh = () => {
|
|
55
|
+
refresh = (overrideFilters) => {
|
|
56
|
+
const currentCounter = ++this._refreshCounter;
|
|
54
57
|
this.onLoadingChanged(true, async () => {
|
|
55
58
|
try {
|
|
56
|
-
const
|
|
59
|
+
const jobfilters = overrideFilters || this.props.jobfilters;
|
|
57
60
|
const res = await maintenanceActions.getJobs2(
|
|
58
61
|
this.props.site,
|
|
59
62
|
jobfilters.status,
|
|
@@ -63,6 +66,9 @@ class MaintenanceList extends Component {
|
|
|
63
66
|
jobfilters.assignee,
|
|
64
67
|
);
|
|
65
68
|
|
|
69
|
+
// Discard stale responses from earlier filter changes
|
|
70
|
+
if (currentCounter !== this._refreshCounter) return;
|
|
71
|
+
|
|
66
72
|
const jobs = res.data.Items;
|
|
67
73
|
const lastKey = res.data.LastKey;
|
|
68
74
|
|
|
@@ -74,9 +80,12 @@ class MaintenanceList extends Component {
|
|
|
74
80
|
hasMore: !!lastKey,
|
|
75
81
|
});
|
|
76
82
|
} catch (error) {
|
|
83
|
+
if (currentCounter !== this._refreshCounter) return;
|
|
77
84
|
console.log("refresh error", error);
|
|
78
85
|
} finally {
|
|
79
|
-
this.
|
|
86
|
+
if (currentCounter === this._refreshCounter) {
|
|
87
|
+
this.onLoadingChanged(false);
|
|
88
|
+
}
|
|
80
89
|
}
|
|
81
90
|
});
|
|
82
91
|
};
|
|
@@ -220,9 +229,10 @@ class MaintenanceList extends Component {
|
|
|
220
229
|
onSelectFilter = (selected) => {
|
|
221
230
|
this.props.jobsFilterLoaded(selected);
|
|
222
231
|
this.onToggleFilter();
|
|
223
|
-
// Reset pagination
|
|
224
|
-
|
|
225
|
-
|
|
232
|
+
// Reset pagination but keep old list visible while loading
|
|
233
|
+
// Pass filters directly to avoid stale props from async Redux update
|
|
234
|
+
this.setState({ lastKey: null, hasMore: true }, () => {
|
|
235
|
+
this.refresh(selected);
|
|
226
236
|
});
|
|
227
237
|
};
|
|
228
238
|
|
|
@@ -247,12 +257,59 @@ class MaintenanceList extends Component {
|
|
|
247
257
|
return `Filtering by ${filterTexts.join(", ")}`;
|
|
248
258
|
};
|
|
249
259
|
|
|
260
|
+
hasFiltersActive() {
|
|
261
|
+
const { jobfilters } = this.props;
|
|
262
|
+
return (
|
|
263
|
+
!_.isEmpty(jobfilters.status) ||
|
|
264
|
+
!_.isEmpty(jobfilters.priority) ||
|
|
265
|
+
!_.isEmpty(jobfilters.type) ||
|
|
266
|
+
!_.isEmpty(jobfilters.assignee)
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
clearFilters = () => {
|
|
271
|
+
const emptyFilters = {
|
|
272
|
+
status: "",
|
|
273
|
+
statusText: "",
|
|
274
|
+
priority: "",
|
|
275
|
+
priorityText: "",
|
|
276
|
+
type: "",
|
|
277
|
+
assignee: "",
|
|
278
|
+
assigneeName: "",
|
|
279
|
+
};
|
|
280
|
+
this.onSelectFilter(emptyFilters);
|
|
281
|
+
};
|
|
282
|
+
|
|
250
283
|
renderEmptyList() {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
284
|
+
if (this.state.loading) return null;
|
|
285
|
+
|
|
286
|
+
const hasFilters = this.hasFiltersActive();
|
|
287
|
+
|
|
288
|
+
return (
|
|
289
|
+
<View style={{ marginHorizontal: 16, alignItems: "center" }}>
|
|
290
|
+
<Components.EmptyStateMain
|
|
291
|
+
title={
|
|
292
|
+
hasFilters
|
|
293
|
+
? "No requests match your filters"
|
|
294
|
+
: this.getEmptyStateText()
|
|
295
|
+
}
|
|
296
|
+
/>
|
|
297
|
+
{hasFilters && (
|
|
298
|
+
<TouchableOpacity
|
|
299
|
+
onPress={this.clearFilters}
|
|
300
|
+
style={styles.clearFiltersButton}
|
|
301
|
+
>
|
|
302
|
+
<Text
|
|
303
|
+
style={[
|
|
304
|
+
styles.clearFiltersText,
|
|
305
|
+
{ color: this.props.colourBrandingMain },
|
|
306
|
+
]}
|
|
307
|
+
>
|
|
308
|
+
Clear filters
|
|
309
|
+
</Text>
|
|
310
|
+
</TouchableOpacity>
|
|
311
|
+
)}
|
|
312
|
+
</View>
|
|
256
313
|
);
|
|
257
314
|
}
|
|
258
315
|
|
|
@@ -416,6 +473,19 @@ const styles = StyleSheet.create({
|
|
|
416
473
|
paddingVertical: 20,
|
|
417
474
|
alignItems: "center",
|
|
418
475
|
},
|
|
476
|
+
clearFiltersButton: {
|
|
477
|
+
marginTop: 12,
|
|
478
|
+
paddingVertical: 10,
|
|
479
|
+
paddingHorizontal: 24,
|
|
480
|
+
borderRadius: 8,
|
|
481
|
+
borderWidth: 1,
|
|
482
|
+
borderColor: "#ccc",
|
|
483
|
+
backgroundColor: "#f9f9f9",
|
|
484
|
+
},
|
|
485
|
+
clearFiltersText: {
|
|
486
|
+
fontFamily: "sf-semibold",
|
|
487
|
+
fontSize: 15,
|
|
488
|
+
},
|
|
419
489
|
});
|
|
420
490
|
|
|
421
491
|
const mapStateToProps = (state) => {
|
|
@@ -572,9 +572,10 @@ class MaintenanceRequest extends Component {
|
|
|
572
572
|
return field;
|
|
573
573
|
});
|
|
574
574
|
|
|
575
|
-
const userID =
|
|
576
|
-
|
|
577
|
-
|
|
575
|
+
const userID =
|
|
576
|
+
this.state.canCreateOnBehalf && this.state.selectedUser
|
|
577
|
+
? this.state.selectedUser.userId || this.state.selectedUser.Id
|
|
578
|
+
: this.props.uid;
|
|
578
579
|
|
|
579
580
|
maintenanceActions
|
|
580
581
|
.sendMaintenanceRequest(
|