@plusscommunities/pluss-maintenance-app 6.0.20 → 6.0.22-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/module/actions/JobActions.js +4 -4
  2. package/dist/module/actions/JobActions.js.map +1 -1
  3. package/dist/module/actions/index.js +1 -1
  4. package/dist/module/actions/index.js.map +1 -1
  5. package/dist/module/actions/types.js +1 -1
  6. package/dist/module/actions/types.js.map +1 -1
  7. package/dist/module/apis/index.js +3 -3
  8. package/dist/module/apis/index.js.map +1 -1
  9. package/dist/module/apis/maintenanceActions.js +36 -36
  10. package/dist/module/apis/maintenanceActions.js.map +1 -1
  11. package/dist/module/apis/userActions.js +5 -5
  12. package/dist/module/apis/userActions.js.map +1 -1
  13. package/dist/module/components/FilterPopupMenu.js +49 -49
  14. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  15. package/dist/module/components/MaintenanceList.js +38 -38
  16. package/dist/module/components/MaintenanceList.js.map +1 -1
  17. package/dist/module/components/MaintenanceListItem.js +62 -62
  18. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  19. package/dist/module/components/MaintenanceWidgetItem.js +27 -27
  20. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  21. package/dist/module/components/PrioritySelectorPopup.js +15 -15
  22. package/dist/module/components/PrioritySelectorPopup.js.map +1 -1
  23. package/dist/module/components/StatusSelectorPopup.js +16 -16
  24. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  25. package/dist/module/components/WidgetLarge.js +2 -2
  26. package/dist/module/components/WidgetLarge.js.map +1 -1
  27. package/dist/module/components/WidgetSmall.js +19 -19
  28. package/dist/module/components/WidgetSmall.js.map +1 -1
  29. package/dist/module/core.config.js +1 -1
  30. package/dist/module/core.config.js.map +1 -1
  31. package/dist/module/feature.config.js +17 -17
  32. package/dist/module/feature.config.js.map +1 -1
  33. package/dist/module/helper.js +10 -10
  34. package/dist/module/helper.js.map +1 -1
  35. package/dist/module/index.js +11 -11
  36. package/dist/module/index.js.map +1 -1
  37. package/dist/module/reducers/JobsReducer.js +13 -13
  38. package/dist/module/reducers/JobsReducer.js.map +1 -1
  39. package/dist/module/screens/JobTypePicker.js +17 -17
  40. package/dist/module/screens/JobTypePicker.js.map +1 -1
  41. package/dist/module/screens/MaintenancePage.js +10 -10
  42. package/dist/module/screens/MaintenancePage.js.map +1 -1
  43. package/dist/module/screens/MaintenanceUserPicker.js +129 -22
  44. package/dist/module/screens/MaintenanceUserPicker.js.map +1 -1
  45. package/dist/module/screens/RequestDetail.js +145 -145
  46. package/dist/module/screens/RequestDetail.js.map +1 -1
  47. package/dist/module/screens/RequestNotes.js +59 -59
  48. package/dist/module/screens/RequestNotes.js.map +1 -1
  49. package/dist/module/screens/ServiceRequest.js +2 -2
  50. package/dist/module/screens/ServiceRequest.js.map +1 -1
  51. package/dist/module/values.config.a.js +30 -30
  52. package/dist/module/values.config.a.js.map +1 -1
  53. package/dist/module/values.config.default.js +34 -34
  54. package/dist/module/values.config.default.js.map +1 -1
  55. package/dist/module/values.config.enquiry.js +34 -34
  56. package/dist/module/values.config.enquiry.js.map +1 -1
  57. package/dist/module/values.config.feedback.js +34 -34
  58. package/dist/module/values.config.feedback.js.map +1 -1
  59. package/dist/module/values.config.food.js +34 -34
  60. package/dist/module/values.config.food.js.map +1 -1
  61. package/dist/module/values.config.forms.js +34 -34
  62. package/dist/module/values.config.forms.js.map +1 -1
  63. package/dist/module/values.config.js +34 -34
  64. package/dist/module/values.config.js.map +1 -1
  65. package/package.json +51 -51
  66. package/src/actions/JobActions.js +67 -60
  67. package/src/actions/index.js +1 -1
  68. package/src/actions/types.js +1 -2
  69. package/src/apis/index.js +3 -3
  70. package/src/apis/maintenanceActions.js +189 -178
  71. package/src/apis/userActions.js +17 -17
  72. package/src/components/FilterPopupMenu.js +313 -256
  73. package/src/components/MaintenanceList.js +396 -317
  74. package/src/components/MaintenanceListItem.js +347 -288
  75. package/src/components/MaintenanceWidgetItem.js +145 -124
  76. package/src/components/PrioritySelectorPopup.js +81 -68
  77. package/src/components/StatusSelectorPopup.js +81 -70
  78. package/src/components/WidgetLarge.js +5 -5
  79. package/src/components/WidgetSmall.js +153 -133
  80. package/src/core.config.js +27 -3
  81. package/src/feature.config.js +62 -62
  82. package/src/helper.js +58 -53
  83. package/src/index.js +22 -22
  84. package/src/reducers/JobsReducer.js +85 -66
  85. package/src/screens/JobTypePicker.js +115 -92
  86. package/src/screens/MaintenancePage.js +89 -80
  87. package/src/screens/MaintenanceUserPicker.js +263 -100
  88. package/src/screens/RequestDetail.js +1348 -1125
  89. package/src/screens/RequestNotes.js +950 -806
  90. package/src/screens/ServiceRequest.js +68 -21
  91. package/src/values.config.a.js +33 -33
  92. package/src/values.config.default.js +39 -39
  93. package/src/values.config.enquiry.js +39 -39
  94. package/src/values.config.feedback.js +39 -39
  95. package/src/values.config.food.js +39 -39
  96. package/src/values.config.forms.js +39 -39
  97. package/src/values.config.js +39 -39
@@ -1,21 +1,21 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
3
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
- import React, { Component } from 'react';
5
- import { ScrollView, View, StyleSheet, Text, KeyboardAvoidingView, TouchableOpacity, ImageBackground, Platform } from 'react-native';
6
- import DateTimePicker from 'react-native-modal-datetime-picker';
7
- import { Icon } from 'react-native-elements';
8
- import _ from 'lodash';
9
- import moment from 'moment';
10
- import { connect } from 'react-redux';
11
- import { maintenanceActions } from '../apis';
12
- import { jobAdded, jobStatusesUpdate, jobHideSeenUpdate } from '../actions';
13
- import StatusSelectorPopup from '../components/StatusSelectorPopup';
14
- import PrioritySelectorPopup from '../components/PrioritySelectorPopup';
15
- import { getJobStatus, getJobPriority } from '../helper';
16
- import { Services } from '../feature.config';
17
- import { Colours, Helper, Components, Config } from '../core.config';
18
- import { values } from '../values.config';
4
+ import React, { Component } from "react";
5
+ import { ScrollView, View, StyleSheet, Text, KeyboardAvoidingView, TouchableOpacity, ImageBackground, Platform } from "react-native";
6
+ import DateTimePicker from "react-native-modal-datetime-picker";
7
+ import { Icon } from "react-native-elements";
8
+ import _ from "lodash";
9
+ import moment from "moment";
10
+ import { connect } from "react-redux";
11
+ import { maintenanceActions } from "../apis";
12
+ import { jobAdded, jobStatusesUpdate, jobHideSeenUpdate } from "../actions";
13
+ import StatusSelectorPopup from "../components/StatusSelectorPopup";
14
+ import PrioritySelectorPopup from "../components/PrioritySelectorPopup";
15
+ import { getJobStatus, getJobPriority } from "../helper";
16
+ import { Services } from "../feature.config";
17
+ import { Colours, Helper, Components, Config } from "../core.config";
18
+ import { values } from "../values.config";
19
19
  class RequestDetail extends Component {
20
20
  constructor(props) {
21
21
  super(props);
@@ -31,14 +31,14 @@ class RequestDetail extends Component {
31
31
  // Refresh external sync data when job is refreshed
32
32
  this.getExternalSync();
33
33
  } catch (error) {
34
- console.log('getJob error', error.toString());
34
+ console.log("getJob error", error.toString());
35
35
  // check for 403 or 404 error
36
36
  if (error.response.status === 403 || error.response.status === 404) {
37
37
  this.setState({
38
38
  forbidden: true
39
39
  });
40
40
  }
41
- console.log('getJob error', error);
41
+ console.log("getJob error", error);
42
42
  } finally {
43
43
  this.setState({
44
44
  loading: false
@@ -54,7 +54,7 @@ class RequestDetail extends Component {
54
54
  assignees: res.data.Users
55
55
  });
56
56
  } catch (error) {
57
- console.log('getAssignees error', error);
57
+ console.log("getAssignees error", error);
58
58
  }
59
59
  });
60
60
  _defineProperty(this, "getExternalSync", async () => {
@@ -75,7 +75,7 @@ class RequestDetail extends Component {
75
75
  var _error$response;
76
76
  // 404 is expected if no sync - don't show error
77
77
  if (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) !== 404) {
78
- console.log('getExternalSync error', error);
78
+ console.log("getExternalSync error", error);
79
79
  }
80
80
  this.setState({
81
81
  loadingExternalSync: false
@@ -101,7 +101,7 @@ class RequestDetail extends Component {
101
101
  const updated = {
102
102
  id: job.id,
103
103
  seen: true,
104
- status: job.status || 'Unassigned'
104
+ status: job.status || "Unassigned"
105
105
  };
106
106
  const res = await maintenanceActions.editJob(updated, user.site);
107
107
  // console.log('markSeen updated');
@@ -112,7 +112,7 @@ class RequestDetail extends Component {
112
112
  seen: true
113
113
  });
114
114
  } catch (error) {
115
- console.log('markSeen error', error);
115
+ console.log("markSeen error", error);
116
116
  this.setState({
117
117
  loading: false
118
118
  });
@@ -140,7 +140,7 @@ class RequestDetail extends Component {
140
140
  this.props.jobAdded(res.data.job);
141
141
  this.getJob();
142
142
  } catch (error) {
143
- console.log('updateJob error', error);
143
+ console.log("updateJob error", error);
144
144
  } finally {
145
145
  this.setState({
146
146
  loading: false
@@ -157,7 +157,7 @@ class RequestDetail extends Component {
157
157
  this.props.jobAdded(res.data.job);
158
158
  this.getJob();
159
159
  } catch (error) {
160
- console.log('updateJobStatus error', error);
160
+ console.log("updateJobStatus error", error);
161
161
  } finally {
162
162
  this.setState({
163
163
  loading: false
@@ -174,7 +174,7 @@ class RequestDetail extends Component {
174
174
  this.props.jobAdded(res.data.job);
175
175
  this.getJob();
176
176
  } catch (error) {
177
- console.log('updateJobPriority error', error);
177
+ console.log("updateJobPriority error", error);
178
178
  } finally {
179
179
  this.setState({
180
180
  loading: false
@@ -231,7 +231,7 @@ class RequestDetail extends Component {
231
231
  });
232
232
  _defineProperty(this, "onOpenDatePicker", () => {
233
233
  this.setState({
234
- popUpType: 'date',
234
+ popUpType: "date",
235
235
  isDateTimePickerVisible: true
236
236
  });
237
237
  });
@@ -241,11 +241,11 @@ class RequestDetail extends Component {
241
241
  });
242
242
  });
243
243
  _defineProperty(this, "onDateSelected", date => {
244
- if (this.state.popUpType === 'date') {
244
+ if (this.state.popUpType === "date") {
245
245
  date = moment(date);
246
246
  this.setState({
247
247
  expectedDate: date,
248
- expectedDateText: date.format('DD/MM/YYYY'),
248
+ expectedDateText: date.format("DD/MM/YYYY"),
249
249
  isDateTimePickerVisible: false
250
250
  }, () => {
251
251
  this.updateJob();
@@ -279,7 +279,7 @@ class RequestDetail extends Component {
279
279
  this.props.jobAdded(job.data);
280
280
  this.getJob();
281
281
  } catch (error) {
282
- console.log('onCommentAdded error', error);
282
+ console.log("onCommentAdded error", error);
283
283
  } finally {
284
284
  this.setState({
285
285
  loading: false
@@ -303,7 +303,7 @@ class RequestDetail extends Component {
303
303
  return false;
304
304
  });
305
305
  _defineProperty(this, "toggleFullscreenVideo", url => {
306
- if (typeof url !== 'string') url = '';
306
+ if (typeof url !== "string") url = "";
307
307
  this.setState({
308
308
  showFullscreenVideo: url.length > 0,
309
309
  currentVideoUrl: url
@@ -316,10 +316,10 @@ class RequestDetail extends Component {
316
316
  name: a.displayName
317
317
  };
318
318
  });
319
- Services.navigation.navigate('optionSelector', {
319
+ Services.navigation.navigate("optionSelector", {
320
320
  options,
321
321
  selection: this.state.job.AssigneeId,
322
- title: 'Assign request',
322
+ title: "Assign request",
323
323
  onSelect: this.onSelectAssignee
324
324
  });
325
325
  });
@@ -328,12 +328,12 @@ class RequestDetail extends Component {
328
328
  loading: true
329
329
  }, async () => {
330
330
  try {
331
- console.log('onSelectAssignee', this.props.job.id, assignee.key);
331
+ console.log("onSelectAssignee", this.props.job.id, assignee.key);
332
332
  const res = await maintenanceActions.assignJob(this.props.job.id, assignee.key);
333
333
  this.props.jobAdded(res.data.job);
334
334
  this.getJob();
335
335
  } catch (error) {
336
- console.log('onSelectAssignee error', error);
336
+ console.log("onSelectAssignee error", error);
337
337
  } finally {
338
338
  this.setState({
339
339
  loading: false
@@ -344,18 +344,18 @@ class RequestDetail extends Component {
344
344
  this.state = {
345
345
  job: {},
346
346
  isDateTimePickerVisible: false,
347
- popUpType: '',
348
- status: '',
349
- priority: '',
347
+ popUpType: "",
348
+ status: "",
349
+ priority: "",
350
350
  expectedDate: null,
351
- expectedDateText: '',
351
+ expectedDateText: "",
352
352
  seen: false,
353
353
  showMore: true,
354
354
  showStatusPopup: false,
355
355
  showPriorityPopup: false,
356
356
  loading: false,
357
357
  showFullscreenVideo: false,
358
- currentVideoUrl: '',
358
+ currentVideoUrl: "",
359
359
  galleryOpen: false,
360
360
  galleryImages: [],
361
361
  showMessages: false,
@@ -388,7 +388,7 @@ class RequestDetail extends Component {
388
388
  };
389
389
  if (job.expectedDate) {
390
390
  newState.expectedDate = moment(job.expectedDate);
391
- newState.expectedDateText = newState.expectedDate.format('DD/MM/YYYY');
391
+ newState.expectedDateText = newState.expectedDate.format("DD/MM/YYYY");
392
392
  }
393
393
  if (job.seen) newState.seen = job.seen;
394
394
  this.setState(newState, () => {
@@ -420,7 +420,7 @@ class RequestDetail extends Component {
420
420
  const statusOption = getJobStatus(status, this.props);
421
421
  const priority = getJobPriority(job.priority);
422
422
  const canEdit = this.hasPermission();
423
- const isStaff = this.props.user.category === 'staff';
423
+ const isStaff = this.props.user.category === "staff";
424
424
  const showSeen = !status || status === getJobStatus(null, this.props).text;
425
425
  return /*#__PURE__*/React.createElement(View, {
426
426
  style: {
@@ -465,7 +465,7 @@ class RequestDetail extends Component {
465
465
  style: styles.textSectionTextContainer
466
466
  }, /*#__PURE__*/React.createElement(Text, {
467
467
  style: styles.textSectionText
468
- }, moment(job.lastActivityUnix).format('ddd D MMMM, h:mm A'))))), /*#__PURE__*/React.createElement(View, {
468
+ }, moment(job.lastActivityUnix).format("ddd D MMMM, h:mm A"))))), /*#__PURE__*/React.createElement(View, {
469
469
  style: styles.jobInfoContainer
470
470
  }, /*#__PURE__*/React.createElement(View, {
471
471
  style: styles.jobStatusExpectedContainer
@@ -587,7 +587,7 @@ class RequestDetail extends Component {
587
587
  style: styles.documentTypeText
588
588
  }, document.ext)), /*#__PURE__*/React.createElement(Text, {
589
589
  style: styles.documentText
590
- }, `${document.name}${document.uploading ? ` - ${document.uploadProgress}` : ''}`));
590
+ }, `${document.name}${document.uploading ? ` - ${document.uploadProgress}` : ""}`));
591
591
  });
592
592
  }
593
593
  return null;
@@ -632,7 +632,7 @@ class RequestDetail extends Component {
632
632
  return /*#__PURE__*/React.createElement(Components.FormCardSectionOptionLauncher, {
633
633
  onPress: this.onOpenAssigneePicker,
634
634
  title: "Assigned To",
635
- value: job.Assignee ? job.Assignee.displayName : 'Unassigned',
635
+ value: job.Assignee ? job.Assignee.displayName : "Unassigned",
636
636
  textStyle: styles.detailsText,
637
637
  sectionStyle: styles.detailsSection
638
638
  }, content);
@@ -680,7 +680,7 @@ class RequestDetail extends Component {
680
680
  style: styles.externalSyncLabel
681
681
  }, "Synced:"), /*#__PURE__*/React.createElement(Text, {
682
682
  style: styles.externalSyncValue
683
- }, moment(externalSync.syncedAt).format('D MMM YYYY h:mma')))));
683
+ }, moment(externalSync.syncedAt).format("D MMM YYYY h:mma")))));
684
684
  }
685
685
  renderCustomFields() {
686
686
  const {
@@ -691,27 +691,27 @@ class RequestDetail extends Component {
691
691
  } = job;
692
692
  const renderAnswer = field => {
693
693
  switch (field.type) {
694
- case 'date':
694
+ case "date":
695
695
  return /*#__PURE__*/React.createElement(Text, {
696
696
  style: styles.customText
697
- }, field.answer ? moment(field.answer, 'YYYY-MM-DD').format('DD MMM YYYY') : '');
698
- case 'time':
697
+ }, field.answer ? moment(field.answer, "YYYY-MM-DD").format("DD MMM YYYY") : "");
698
+ case "time":
699
699
  return /*#__PURE__*/React.createElement(Text, {
700
700
  style: styles.customText
701
- }, field.answer ? moment(field.answer, 'HH:mm').format('h:mm a') : '');
702
- case 'yn':
701
+ }, field.answer ? moment(field.answer, "HH:mm").format("h:mm a") : "");
702
+ case "yn":
703
703
  return /*#__PURE__*/React.createElement(Text, {
704
704
  style: styles.customText
705
- }, field.answer ? 'Yes' : 'No');
706
- case 'checkbox':
705
+ }, field.answer ? "Yes" : "No");
706
+ case "checkbox":
707
707
  return /*#__PURE__*/React.createElement(Text, {
708
708
  style: styles.customText
709
- }, field.answer && Array.isArray(field.answer) ? field.answer.join(', ') : '');
710
- case 'image':
709
+ }, field.answer && Array.isArray(field.answer) ? field.answer.join(", ") : "");
710
+ case "image":
711
711
  return /*#__PURE__*/React.createElement(View, {
712
712
  style: styles.customImage
713
713
  }, this.renderImage(field.answer));
714
- case 'document':
714
+ case "document":
715
715
  return /*#__PURE__*/React.createElement(View, {
716
716
  style: styles.customDocument
717
717
  }, this.renderDocument(field.answer));
@@ -722,8 +722,8 @@ class RequestDetail extends Component {
722
722
  }
723
723
  };
724
724
  return customFields.map((field, index) => {
725
- if (['staticTitle', 'staticText'].includes(field.type)) return null;
726
- if (_.isNil(field.answer) || field.answer === '' || Array.isArray(field.answer) && field.answer.length === 0) return null;
725
+ if (["staticTitle", "staticText"].includes(field.type)) return null;
726
+ if (_.isNil(field.answer) || field.answer === "" || Array.isArray(field.answer) && field.answer.length === 0) return null;
727
727
  return /*#__PURE__*/React.createElement(View, {
728
728
  key: index
729
729
  }, /*#__PURE__*/React.createElement(Text, {
@@ -742,7 +742,7 @@ class RequestDetail extends Component {
742
742
  return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Components.FormCardSectionOptionLauncher, {
743
743
  onPress: this.onToggleDetails,
744
744
  title: "Details",
745
- icon: this.state.showMore ? 'angle-up' : 'angle-down',
745
+ icon: this.state.showMore ? "angle-up" : "angle-down",
746
746
  textStyle: styles.detailsText,
747
747
  sectionStyle: styles.detailsSection
748
748
  }), this.state.showMore && /*#__PURE__*/React.createElement(View, null, hasCustomFields ? this.renderCustomFields() : null, !hasCustomFields ? /*#__PURE__*/React.createElement(React.Fragment, null, this.renderImage(job.images, job.image), !_.isEmpty(job.description) && /*#__PURE__*/React.createElement(Text, {
@@ -785,7 +785,7 @@ class RequestDetail extends Component {
785
785
  site: this.state.job.site || this.state.job.location,
786
786
  live: true,
787
787
  refreshFrequency: 10000,
788
- placeHolder: '',
788
+ placeHolder: "",
789
789
  style: {
790
790
  flex: 1,
791
791
  paddingHorizontal: 0,
@@ -805,7 +805,7 @@ class RequestDetail extends Component {
805
805
  height: 36
806
806
  },
807
807
  textStyle: {
808
- color: '#fff'
808
+ color: "#fff"
809
809
  },
810
810
  fullWidth: true
811
811
  }, "Leave Message"));
@@ -843,7 +843,7 @@ class RequestDetail extends Component {
843
843
  return /*#__PURE__*/React.createElement(Components.Forbidden, null);
844
844
  }
845
845
  return /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
846
- behavior: Platform.OS === 'ios' && 'padding',
846
+ behavior: Platform.OS === "ios" && "padding",
847
847
  style: styles.container
848
848
  }, /*#__PURE__*/React.createElement(Components.Header, {
849
849
  leftIcon: "angle-left",
@@ -855,7 +855,7 @@ class RequestDetail extends Component {
855
855
  paddingBottom: 26
856
856
  },
857
857
  style: {
858
- height: '100%'
858
+ height: "100%"
859
859
  }
860
860
  }, /*#__PURE__*/React.createElement(View, {
861
861
  style: styles.innerContainer
@@ -871,7 +871,7 @@ class RequestDetail extends Component {
871
871
  const styles = StyleSheet.create({
872
872
  container: {
873
873
  flex: 1,
874
- backgroundColor: '#fff'
874
+ backgroundColor: "#fff"
875
875
  },
876
876
  innerContainer: {
877
877
  paddingTop: 23,
@@ -882,49 +882,49 @@ const styles = StyleSheet.create({
882
882
  paddingHorizontal: 12
883
883
  },
884
884
  jobIdText: {
885
- fontFamily: 'sf-medium',
885
+ fontFamily: "sf-medium",
886
886
  fontSize: 12,
887
887
  marginBottom: 4
888
888
  },
889
889
  jobTitleText: {
890
- fontFamily: 'sf-semibold',
890
+ fontFamily: "sf-semibold",
891
891
  fontSize: 20,
892
892
  color: Colours.TEXT_DARKEST,
893
893
  marginBottom: 8
894
894
  },
895
895
  jobTypeSeenContainer: {
896
- flexDirection: 'row',
897
- alignItems: 'center'
896
+ flexDirection: "row",
897
+ alignItems: "center"
898
898
  },
899
899
  jobTypeContainer: {
900
900
  padding: 4,
901
901
  minWidth: 80,
902
902
  maxWidth: 140,
903
903
  borderRadius: 4,
904
- justifyContent: 'center'
904
+ justifyContent: "center"
905
905
  },
906
906
  jobTypeText: {
907
- fontFamily: 'sf-semibold',
907
+ fontFamily: "sf-semibold",
908
908
  fontSize: 12,
909
- textAlign: 'center',
910
- maxWidth: '100%'
909
+ textAlign: "center",
910
+ maxWidth: "100%"
911
911
  },
912
912
  jobSeenContainer: {
913
- flexDirection: 'row',
914
- alignItems: 'center',
913
+ flexDirection: "row",
914
+ alignItems: "center",
915
915
  marginLeft: 10
916
916
  },
917
917
  jobSeenIcon: {
918
918
  fontSize: 12
919
919
  },
920
920
  jobSeenText: {
921
- fontFamily: 'sf-semibold',
921
+ fontFamily: "sf-semibold",
922
922
  fontSize: 12,
923
923
  marginLeft: 4
924
924
  },
925
925
  jobStatusDateText: {
926
926
  marginTop: 8,
927
- fontFamily: 'sf-medium',
927
+ fontFamily: "sf-medium",
928
928
  fontSize: 13,
929
929
  color: Colours.TEXT_LIGHT
930
930
  },
@@ -935,60 +935,60 @@ const styles = StyleSheet.create({
935
935
  paddingHorizontal: 12
936
936
  },
937
937
  jobStatusExpectedContainer: {
938
- flexDirection: 'row',
939
- alignItems: 'flex-start',
940
- justifyContent: 'space-between'
938
+ flexDirection: "row",
939
+ alignItems: "flex-start",
940
+ justifyContent: "space-between"
941
941
  },
942
942
  jobStatusOuterContainer: {
943
943
  // marginRight: 50,
944
944
  },
945
945
  jobStatusHeading: {
946
- fontFamily: 'sf-bold',
946
+ fontFamily: "sf-bold",
947
947
  fontSize: 11,
948
948
  letterSpacing: 0.8,
949
949
  color: Colours.TEXT_DARK,
950
950
  marginBottom: 6
951
951
  },
952
952
  jobStatusContainer: {
953
- flexDirection: 'row',
954
- alignItems: 'center',
953
+ flexDirection: "row",
954
+ alignItems: "center",
955
955
  width: 120,
956
956
  height: 30,
957
957
  paddingHorizontal: 8,
958
958
  borderRadius: 4
959
959
  },
960
960
  jobStatusIcon: {
961
- color: '#fff',
961
+ color: "#fff",
962
962
  fontSize: 14,
963
963
  marginRight: 8
964
964
  },
965
965
  jobStatusText: {
966
- color: '#fff',
967
- textAlign: 'center',
968
- fontFamily: 'sf-semibold',
966
+ color: "#fff",
967
+ textAlign: "center",
968
+ fontFamily: "sf-semibold",
969
969
  fontSize: 13,
970
970
  flex: 1,
971
- textAlign: 'center'
971
+ textAlign: "center"
972
972
  },
973
973
  jobPriorityOuterContainer: {
974
974
  marginTop: 12
975
975
  },
976
976
  jobExpectedDateContainer: {
977
977
  backgroundColor: Colours.BOXGREY,
978
- flexDirection: 'row',
978
+ flexDirection: "row",
979
979
  width: 115,
980
980
  height: 30,
981
981
  borderRadius: 4,
982
- alignItems: 'center',
982
+ alignItems: "center",
983
983
  paddingLeft: 8
984
984
  },
985
985
  jobExpectedDate: {
986
- fontFamily: 'sf-regular',
986
+ fontFamily: "sf-regular",
987
987
  fontSize: 13,
988
988
  color: Colours.hexToRGBAstring(Colours.TEXT_DARKEST, 0.5)
989
989
  },
990
990
  detailsText: {
991
- fontFamily: 'sf-semibold',
991
+ fontFamily: "sf-semibold",
992
992
  fontSize: 16,
993
993
  color: Colours.TEXT_DARKEST
994
994
  },
@@ -999,55 +999,55 @@ const styles = StyleSheet.create({
999
999
  },
1000
1000
  sideBySideImages: {
1001
1001
  flex: 1,
1002
- flexDirection: 'row',
1003
- justifyContent: 'space-between',
1002
+ flexDirection: "row",
1003
+ justifyContent: "space-between",
1004
1004
  marginBottom: 16
1005
1005
  },
1006
1006
  sideBySideImageContainer: {
1007
- backgroundColor: '#fff',
1008
- width: '48%',
1007
+ backgroundColor: "#fff",
1008
+ width: "48%",
1009
1009
  height: 150,
1010
1010
  borderRadius: 2,
1011
- overflow: 'hidden'
1011
+ overflow: "hidden"
1012
1012
  },
1013
1013
  singleImageContainer: {
1014
- backgroundColor: '#fff',
1015
- width: '100%',
1014
+ backgroundColor: "#fff",
1015
+ width: "100%",
1016
1016
  height: 150,
1017
1017
  flex: 1,
1018
1018
  borderRadius: 2,
1019
- overflow: 'hidden',
1019
+ overflow: "hidden",
1020
1020
  marginBottom: 16
1021
1021
  },
1022
1022
  imageContainer: {
1023
1023
  height: 150,
1024
- width: 'auto',
1025
- justifyContent: 'center'
1024
+ width: "auto",
1025
+ justifyContent: "center"
1026
1026
  },
1027
1027
  imagePlayContainer: {
1028
- position: 'absolute',
1028
+ position: "absolute",
1029
1029
  top: 0,
1030
1030
  left: 0,
1031
1031
  right: 0,
1032
1032
  bottom: 0,
1033
- alignItems: 'center',
1034
- justifyContent: 'center'
1033
+ alignItems: "center",
1034
+ justifyContent: "center"
1035
1035
  },
1036
1036
  imageControlIcon: {
1037
- color: '#fff',
1037
+ color: "#fff",
1038
1038
  fontSize: 30,
1039
- textShadowColor: 'rgba(0,0,0,0.3)',
1039
+ textShadowColor: "rgba(0,0,0,0.3)",
1040
1040
  textShadowOffset: {
1041
1041
  width: 2,
1042
1042
  height: 2
1043
1043
  }
1044
1044
  },
1045
1045
  plusImages: {
1046
- fontFamily: 'sf-bold',
1046
+ fontFamily: "sf-bold",
1047
1047
  fontSize: 32,
1048
- textAlign: 'center',
1049
- color: '#fff',
1050
- textShadowColor: 'rgba(0, 0, 0, 0.5)',
1048
+ textAlign: "center",
1049
+ color: "#fff",
1050
+ textShadowColor: "rgba(0, 0, 0, 0.5)",
1051
1051
  textShadowOffset: {
1052
1052
  width: 0,
1053
1053
  height: 2
@@ -1055,64 +1055,64 @@ const styles = StyleSheet.create({
1055
1055
  textShadowRadius: 8
1056
1056
  },
1057
1057
  jobDescriptionText: {
1058
- fontFamily: 'sf-medium',
1058
+ fontFamily: "sf-medium",
1059
1059
  fontSize: 14,
1060
1060
  color: Colours.TEXT_LIGHT,
1061
1061
  paddingBottom: 16
1062
1062
  },
1063
1063
  locationLabel: {
1064
- fontFamily: 'sf-bold',
1064
+ fontFamily: "sf-bold",
1065
1065
  fontSize: 14,
1066
1066
  color: Colours.TEXT_DARKEST
1067
1067
  },
1068
1068
  locationText: {
1069
- fontFamily: 'sf-regular',
1069
+ fontFamily: "sf-regular",
1070
1070
  fontSize: 16,
1071
1071
  color: Colours.TEXT_DARKEST,
1072
1072
  paddingVertical: 8
1073
1073
  },
1074
1074
  requesterLabel: {
1075
- fontFamily: 'sf-bold',
1075
+ fontFamily: "sf-bold",
1076
1076
  fontSize: 14,
1077
1077
  color: Colours.TEXT_DARKEST,
1078
1078
  paddingVertical: 10
1079
1079
  },
1080
1080
  profileContainer: {
1081
- flexDirection: 'row',
1082
- alignItems: 'center'
1081
+ flexDirection: "row",
1082
+ alignItems: "center"
1083
1083
  },
1084
1084
  nameContainer: {
1085
1085
  marginLeft: 18
1086
1086
  },
1087
1087
  nameText: {
1088
- fontSize: 'sf-semibold',
1088
+ fontSize: "sf-semibold",
1089
1089
  fontSize: 14,
1090
1090
  color: Colours.TEXT_DARKEST,
1091
1091
  marginBottom: 4
1092
1092
  },
1093
1093
  phoneText: {
1094
- fontSize: 'sf-medium',
1094
+ fontSize: "sf-medium",
1095
1095
  fontSize: 14,
1096
1096
  color: Colours.TEXT_LIGHT
1097
1097
  },
1098
1098
  textSectionInner: {
1099
- flexDirection: 'row',
1100
- justifyContent: 'space-between',
1101
- alignItems: 'center',
1099
+ flexDirection: "row",
1100
+ justifyContent: "space-between",
1101
+ alignItems: "center",
1102
1102
  marginTop: 8
1103
1103
  },
1104
1104
  textSectionLabel: {
1105
- fontFamily: 'sf-semibold',
1105
+ fontFamily: "sf-semibold",
1106
1106
  fontSize: 12,
1107
1107
  lineHeight: 24,
1108
1108
  color: Colours.TEXT_DARKEST
1109
1109
  },
1110
1110
  textSectionTextContainer: {
1111
- flexDirection: 'row',
1112
- alignItems: 'center'
1111
+ flexDirection: "row",
1112
+ alignItems: "center"
1113
1113
  },
1114
1114
  textSectionText: {
1115
- fontFamily: 'sf-regular',
1115
+ fontFamily: "sf-regular",
1116
1116
  fontSize: 13,
1117
1117
  lineHeight: 24,
1118
1118
  color: Colours.TEXT_LIGHT
@@ -1123,12 +1123,12 @@ const styles = StyleSheet.create({
1123
1123
  lineHeight: 24
1124
1124
  },
1125
1125
  customLabel: {
1126
- fontFamily: 'sf-bold',
1126
+ fontFamily: "sf-bold",
1127
1127
  fontSize: 14,
1128
1128
  color: Colours.TEXT_DARKEST
1129
1129
  },
1130
1130
  customText: {
1131
- fontFamily: 'sf-regular',
1131
+ fontFamily: "sf-regular",
1132
1132
  fontSize: 16,
1133
1133
  color: Colours.TEXT_DARKEST,
1134
1134
  paddingVertical: 8
@@ -1142,59 +1142,59 @@ const styles = StyleSheet.create({
1142
1142
  },
1143
1143
  customStaticTitle: {
1144
1144
  fontSize: 20,
1145
- fontFamily: 'sf-semibold',
1145
+ fontFamily: "sf-semibold",
1146
1146
  color: Colours.TEXT_DARKEST,
1147
1147
  marginBottom: 10
1148
1148
  },
1149
1149
  customStaticText: {
1150
1150
  fontSize: 17,
1151
- fontFamily: 'sf-regular',
1151
+ fontFamily: "sf-regular",
1152
1152
  color: Colours.TEXT_DARKEST,
1153
1153
  lineHeight: 24,
1154
1154
  marginBottom: 10
1155
1155
  },
1156
1156
  documentContainer: {
1157
- flexDirection: 'row',
1158
- alignItems: 'center',
1159
- justifyContent: 'space-between',
1157
+ flexDirection: "row",
1158
+ alignItems: "center",
1159
+ justifyContent: "space-between",
1160
1160
  paddingVertical: 4
1161
1161
  },
1162
1162
  documentTypeContainer: {
1163
1163
  width: 50,
1164
1164
  height: 60,
1165
- justifyContent: 'center',
1166
- alignItems: 'center',
1165
+ justifyContent: "center",
1166
+ alignItems: "center",
1167
1167
  borderRadius: 5,
1168
1168
  marginRight: 8
1169
1169
  },
1170
1170
  documentTypeText: {
1171
- color: '#fff',
1172
- fontFamily: 'sf-semibold',
1173
- textAlign: 'center'
1171
+ color: "#fff",
1172
+ fontFamily: "sf-semibold",
1173
+ textAlign: "center"
1174
1174
  },
1175
1175
  documentText: {
1176
1176
  flex: 1,
1177
- fontFamily: 'sf-semibold',
1177
+ fontFamily: "sf-semibold",
1178
1178
  fontSize: 16,
1179
- color: '#65686D'
1179
+ color: "#65686D"
1180
1180
  },
1181
1181
  externalSyncContainer: {
1182
- backgroundColor: '#fff',
1182
+ backgroundColor: "#fff",
1183
1183
  marginTop: 16,
1184
1184
  borderRadius: 8,
1185
1185
  padding: 16
1186
1186
  },
1187
1187
  externalSyncHeader: {
1188
- flexDirection: 'row',
1189
- justifyContent: 'space-between',
1190
- alignItems: 'center',
1188
+ flexDirection: "row",
1189
+ justifyContent: "space-between",
1190
+ alignItems: "center",
1191
1191
  marginBottom: 12,
1192
1192
  paddingBottom: 12,
1193
1193
  borderBottomWidth: 1,
1194
1194
  borderBottomColor: Colours.LINEGREY
1195
1195
  },
1196
1196
  externalSyncTitle: {
1197
- fontFamily: 'sf-semibold',
1197
+ fontFamily: "sf-semibold",
1198
1198
  fontSize: 16,
1199
1199
  color: Colours.TEXT_DARKEST
1200
1200
  },
@@ -1205,17 +1205,17 @@ const styles = StyleSheet.create({
1205
1205
  paddingTop: 4
1206
1206
  },
1207
1207
  externalSyncRow: {
1208
- flexDirection: 'row',
1208
+ flexDirection: "row",
1209
1209
  marginBottom: 10
1210
1210
  },
1211
1211
  externalSyncLabel: {
1212
- fontFamily: 'sf-semibold',
1212
+ fontFamily: "sf-semibold",
1213
1213
  fontSize: 14,
1214
1214
  color: Colours.TEXT_DARK,
1215
1215
  width: 100
1216
1216
  },
1217
1217
  externalSyncValue: {
1218
- fontFamily: 'sf-regular',
1218
+ fontFamily: "sf-regular",
1219
1219
  fontSize: 14,
1220
1220
  color: Colours.TEXT_DARKEST,
1221
1221
  flex: 1