@plusscommunities/pluss-maintenance-app 3.0.1 → 3.0.3-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 (42) hide show
  1. package/dist/module/actions/JobActions.js.map +1 -1
  2. package/dist/module/actions/index.js.map +1 -1
  3. package/dist/module/actions/types.js.map +1 -1
  4. package/dist/module/apis/generalActions.js +32 -2
  5. package/dist/module/apis/generalActions.js.map +1 -1
  6. package/dist/module/apis/index.js.map +1 -1
  7. package/dist/module/components/FilterPopupMenu.js +5 -19
  8. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  9. package/dist/module/components/MaintenanceList.js +15 -51
  10. package/dist/module/components/MaintenanceList.js.map +1 -1
  11. package/dist/module/components/MaintenanceListItem.js +7 -21
  12. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  13. package/dist/module/components/MaintenanceWidgetItem.js +3 -12
  14. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  15. package/dist/module/components/StatusSelectorPopup.js +0 -5
  16. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  17. package/dist/module/components/WidgetLarge.js +0 -3
  18. package/dist/module/components/WidgetLarge.js.map +1 -1
  19. package/dist/module/components/WidgetSmall.js +6 -23
  20. package/dist/module/components/WidgetSmall.js.map +1 -1
  21. package/dist/module/core.config.js.map +1 -1
  22. package/dist/module/feature.config.js +2 -3
  23. package/dist/module/feature.config.js.map +1 -1
  24. package/dist/module/helper.js +0 -3
  25. package/dist/module/helper.js.map +1 -1
  26. package/dist/module/index.js.map +1 -1
  27. package/dist/module/reducers/JobsReducer.js +6 -14
  28. package/dist/module/reducers/JobsReducer.js.map +1 -1
  29. package/dist/module/screens/JobTypePicker.js +5 -14
  30. package/dist/module/screens/JobTypePicker.js.map +1 -1
  31. package/dist/module/screens/MaintenancePage.js +3 -14
  32. package/dist/module/screens/MaintenancePage.js.map +1 -1
  33. package/dist/module/screens/RequestDetail.js +15 -59
  34. package/dist/module/screens/RequestDetail.js.map +1 -1
  35. package/dist/module/screens/RequestNotes.js +7 -40
  36. package/dist/module/screens/RequestNotes.js.map +1 -1
  37. package/dist/module/screens/ServiceRequest.js +7 -59
  38. package/dist/module/screens/ServiceRequest.js.map +1 -1
  39. package/package.json +4 -4
  40. package/src/apis/generalActions.js +27 -0
  41. package/src/components/MaintenanceList.js +3 -3
  42. package/src/components/WidgetSmall.js +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["JOBS_LOADED","JOB_ADDED","JOBS_ADDED","jobsLoaded","jobs","type","payload","jobAdded","job","jobsAdded"],"sources":["JobActions.js"],"sourcesContent":["import { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from './types';\n\nexport const jobsLoaded = jobs => {\n return {\n type: JOBS_LOADED,\n payload: jobs,\n };\n};\n\nexport const jobAdded = job => {\n return {\n type: JOB_ADDED,\n payload: job,\n };\n};\n\nexport const jobsAdded = jobs => {\n return {\n type: JOBS_ADDED,\n payload: jobs,\n };\n};\n"],"mappings":"AAAA,SAASA,WAAT,EAAsBC,SAAtB,EAAiCC,UAAjC,QAAmD,SAAnD;AAEA,OAAO,MAAMC,UAAU,GAAGC,IAAI,IAAI;EAChC,OAAO;IACLC,IAAI,EAAEL,WADD;IAELM,OAAO,EAAEF;EAFJ,CAAP;AAID,CALM;AAOP,OAAO,MAAMG,QAAQ,GAAGC,GAAG,IAAI;EAC7B,OAAO;IACLH,IAAI,EAAEJ,SADD;IAELK,OAAO,EAAEE;EAFJ,CAAP;AAID,CALM;AAOP,OAAO,MAAMC,SAAS,GAAGL,IAAI,IAAI;EAC/B,OAAO;IACLC,IAAI,EAAEH,UADD;IAELI,OAAO,EAAEF;EAFJ,CAAP;AAID,CALM"}
1
+ {"version":3,"names":["JOBS_LOADED","JOB_ADDED","JOBS_ADDED","jobsLoaded","jobs","type","payload","jobAdded","job","jobsAdded"],"sources":["JobActions.js"],"sourcesContent":["import { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from './types';\n\nexport const jobsLoaded = jobs => {\n return {\n type: JOBS_LOADED,\n payload: jobs,\n };\n};\n\nexport const jobAdded = job => {\n return {\n type: JOB_ADDED,\n payload: job,\n };\n};\n\nexport const jobsAdded = jobs => {\n return {\n type: JOBS_ADDED,\n payload: jobs,\n };\n};\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,UAAU,QAAQ,SAAS;AAE5D,OAAO,MAAMC,UAAU,GAAGC,IAAI,IAAI;EAChC,OAAO;IACLC,IAAI,EAAEL,WAAW;IACjBM,OAAO,EAAEF;EACX,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,QAAQ,GAAGC,GAAG,IAAI;EAC7B,OAAO;IACLH,IAAI,EAAEJ,SAAS;IACfK,OAAO,EAAEE;EACX,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,SAAS,GAAGL,IAAI,IAAI;EAC/B,OAAO;IACLC,IAAI,EAAEH,UAAU;IAChBI,OAAO,EAAEF;EACX,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.js"],"sourcesContent":["export * from './JobActions';\n"],"mappings":"AAAA,cAAc,cAAd"}
1
+ {"version":3,"names":[],"sources":["index.js"],"sourcesContent":["export * from './JobActions';\n"],"mappings":"AAAA,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"names":["JOBS_LOADED","JOB_ADDED","JOBS_ADDED"],"sources":["types.js"],"sourcesContent":["export const JOBS_LOADED = 'JOBS_LOADED';\nexport const JOB_ADDED = 'JOB_ADDED';\nexport const JOBS_ADDED = 'JOBS_ADDED';\n"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,aAApB;AACP,OAAO,MAAMC,SAAS,GAAG,WAAlB;AACP,OAAO,MAAMC,UAAU,GAAG,YAAnB"}
1
+ {"version":3,"names":["JOBS_LOADED","JOB_ADDED","JOBS_ADDED"],"sources":["types.js"],"sourcesContent":["export const JOBS_LOADED = 'JOBS_LOADED';\nexport const JOB_ADDED = 'JOB_ADDED';\nexport const JOBS_ADDED = 'JOBS_ADDED';\n"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,aAAa;AACxC,OAAO,MAAMC,SAAS,GAAG,WAAW;AACpC,OAAO,MAAMC,UAAU,GAAG,YAAY"}
@@ -36,6 +36,36 @@ export const generalActions = {
36
36
  }
37
37
  });
38
38
  },
39
+ getJobs2: (site, status, type, lastKey) => {
40
+ const query = {
41
+ site
42
+ };
43
+ if (status) {
44
+ query.status = status;
45
+ }
46
+ if (type) {
47
+ query.type = type;
48
+ }
49
+ if (lastKey) {
50
+ query.lastKey = JSON.stringify(lastKey);
51
+ }
52
+ return Session.authedFunction({
53
+ method: 'GET',
54
+ url: Helper.getUrl('maintenance', 'get/requests', query)
55
+ });
56
+ },
57
+ getJobsRecursive: function (site, status, type, lastKey) {
58
+ let jobs = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
59
+ return new Promise(resolve => {
60
+ generalActions.getJobs2(site, status, type, lastKey).then(jobRes => {
61
+ const newJobs = [...jobs, ...jobRes.data.Items];
62
+ if (!jobRes.data.LastKey) {
63
+ return resolve(newJobs);
64
+ }
65
+ return resolve(generalActions.getJobsRecursive(site, status, type, jobRes.data.LastKey, newJobs));
66
+ });
67
+ });
68
+ },
39
69
  sendMaintenanceRequest: (userID, userName, phone, room, title, description, date, type, images, location, isHome, homeText) => {
40
70
  const request = {
41
71
  method: 'POST',
@@ -126,7 +156,8 @@ export const generalActions = {
126
156
  site
127
157
  }
128
158
  });
129
- } // sendBookingRequest: async bookingInfo => {
159
+ }
160
+ // sendBookingRequest: async bookingInfo => {
130
161
  // return authedFunction({
131
162
  // method: 'POST',
132
163
  // data: {
@@ -154,6 +185,5 @@ export const generalActions = {
154
185
  // //deprecated
155
186
  // return null;
156
187
  // },
157
-
158
188
  };
159
189
  //# sourceMappingURL=generalActions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Helper","Session","generalActions","getJob","site","id","authedFunction","method","url","getUrl","data","getJobByJobId","jobId","getJobs","status","type","sendMaintenanceRequest","userID","userName","phone","room","title","description","date","images","location","isHome","homeText","request","editJob","job","editJobStatus","addNote","note","attachments","action","editNote","noteId","deleteNote","getJobTypes"],"sources":["generalActions.js"],"sourcesContent":["// import axios from 'axios';\n// import { getUrl } from './helper';\n// import { authedFunction } from '../js';\nimport { Helper, Session } from '../core.config';\n\nexport const generalActions = {\n getJob: (site, id) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJob'),\n data: { site, id },\n });\n },\n getJobByJobId: (site, jobId) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJob'),\n data: { site, jobId },\n });\n },\n getJobs: (site, status = '', type = '') => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJobs'),\n data: { site, status, type },\n });\n },\n sendMaintenanceRequest: (userID, userName, phone, room, title, description, date, type, images, location, isHome, homeText) => {\n const request = {\n method: 'POST',\n url: Helper.getUrl('maintenance', 'sendMaintenance'),\n data: {\n userID,\n userName,\n phone,\n room,\n title,\n description,\n date,\n type,\n images,\n location,\n isHome,\n homeText,\n },\n };\n return Session.authedFunction(request);\n },\n editJob: (job, site) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'editJob'),\n data: { job, site },\n });\n },\n editJobStatus: (id, status) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'editJobStatus'),\n data: { id, status },\n });\n },\n addNote: (jobId, note, attachments) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n note,\n attachments,\n action: 'AddNote',\n },\n });\n },\n editNote: (jobId, noteId, note, attachments) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n note,\n attachments,\n noteId,\n action: 'EditNote',\n },\n });\n },\n deleteNote: (jobId, noteId) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n noteId,\n action: 'DeleteNote',\n },\n });\n },\n // getWeeklyMenu: async time => {\n // //deprecated\n // return null;\n // },\n getJobTypes: async site => {\n const url = Helper.getUrl('maintenance', 'getjobtypes');\n return Session.authedFunction({\n method: 'POST',\n url,\n data: { site },\n });\n },\n // sendBookingRequest: async bookingInfo => {\n // return authedFunction({\n // method: 'POST',\n // data: {\n // bookingInfo,\n // },\n // url: getUrl('utility', 'sendBookingRequest'),\n // });\n // },\n // getString: async (site, id, useDefault) => {\n // return axios({\n // method: 'GET',\n // url: getUrl('strings', `get/${site}_${id}`, useDefault ? { useDefault } : undefined),\n // }).catch(error => {\n // console.log('getString error', error);\n // throw error;\n // });\n // },\n // getGeneralTerms: async () => {\n // return axios({\n // method: 'GET',\n // url: 'https://pluss.plussapp.com.au/strings-prd/get/plussSpace_termsofuse',\n // });\n // },\n // declineTerms: async (site, userID) => {\n // //deprecated\n // return null;\n // },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Helper","Session","generalActions","getJob","site","id","authedFunction","method","url","getUrl","data","getJobByJobId","jobId","getJobs","status","arguments","length","undefined","type","getJobs2","lastKey","query","JSON","stringify","getJobsRecursive","jobs","Promise","resolve","then","jobRes","newJobs","Items","LastKey","sendMaintenanceRequest","userID","userName","phone","room","title","description","date","images","location","isHome","homeText","request","editJob","job","editJobStatus","addNote","note","attachments","action","editNote","noteId","deleteNote","getJobTypes"],"sources":["generalActions.js"],"sourcesContent":["// import axios from 'axios';\n// import { getUrl } from './helper';\n// import { authedFunction } from '../js';\nimport { Helper, Session } from '../core.config';\n\nexport const generalActions = {\n getJob: (site, id) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJob'),\n data: { site, id },\n });\n },\n getJobByJobId: (site, jobId) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJob'),\n data: { site, jobId },\n });\n },\n getJobs: (site, status = '', type = '') => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJobs'),\n data: { site, status, type },\n });\n },\n getJobs2: (site, status, type, lastKey) => {\n const query = { site };\n if (status) {\n query.status = status;\n }\n if (type) {\n query.type = type;\n }\n if (lastKey) {\n query.lastKey = JSON.stringify(lastKey);\n }\n return Session.authedFunction({\n method: 'GET',\n url: Helper.getUrl('maintenance', 'get/requests', query),\n });\n },\n getJobsRecursive: (site, status, type, lastKey, jobs = []) => {\n return new Promise(resolve => {\n generalActions.getJobs2(site, status, type, lastKey).then(jobRes => {\n const newJobs = [...jobs, ...jobRes.data.Items];\n if (!jobRes.data.LastKey) {\n return resolve(newJobs);\n }\n return resolve(generalActions.getJobsRecursive(site, status, type, jobRes.data.LastKey, newJobs));\n });\n });\n },\n sendMaintenanceRequest: (userID, userName, phone, room, title, description, date, type, images, location, isHome, homeText) => {\n const request = {\n method: 'POST',\n url: Helper.getUrl('maintenance', 'sendMaintenance'),\n data: {\n userID,\n userName,\n phone,\n room,\n title,\n description,\n date,\n type,\n images,\n location,\n isHome,\n homeText,\n },\n };\n return Session.authedFunction(request);\n },\n editJob: (job, site) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'editJob'),\n data: { job, site },\n });\n },\n editJobStatus: (id, status) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'editJobStatus'),\n data: { id, status },\n });\n },\n addNote: (jobId, note, attachments) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n note,\n attachments,\n action: 'AddNote',\n },\n });\n },\n editNote: (jobId, noteId, note, attachments) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n note,\n attachments,\n noteId,\n action: 'EditNote',\n },\n });\n },\n deleteNote: (jobId, noteId) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n noteId,\n action: 'DeleteNote',\n },\n });\n },\n // getWeeklyMenu: async time => {\n // //deprecated\n // return null;\n // },\n getJobTypes: async site => {\n const url = Helper.getUrl('maintenance', 'getjobtypes');\n return Session.authedFunction({\n method: 'POST',\n url,\n data: { site },\n });\n },\n // sendBookingRequest: async bookingInfo => {\n // return authedFunction({\n // method: 'POST',\n // data: {\n // bookingInfo,\n // },\n // url: getUrl('utility', 'sendBookingRequest'),\n // });\n // },\n // getString: async (site, id, useDefault) => {\n // return axios({\n // method: 'GET',\n // url: getUrl('strings', `get/${site}_${id}`, useDefault ? { useDefault } : undefined),\n // }).catch(error => {\n // console.log('getString error', error);\n // throw error;\n // });\n // },\n // getGeneralTerms: async () => {\n // return axios({\n // method: 'GET',\n // url: 'https://pluss.plussapp.com.au/strings-prd/get/plussSpace_termsofuse',\n // });\n // },\n // declineTerms: async (site, userID) => {\n // //deprecated\n // return null;\n // },\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.js"],"sourcesContent":["export * from './generalActions';\n"],"mappings":"AAAA,cAAc,kBAAd"}
1
+ {"version":3,"names":[],"sources":["index.js"],"sourcesContent":["export * from './generalActions';\n"],"mappings":"AAAA,cAAc,kBAAkB"}
@@ -1,16 +1,15 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
4
  import React, { Component } from 'react';
4
5
  import { View, Text, TouchableOpacity, Modal } from 'react-native';
5
6
  import { connect } from 'react-redux';
6
7
  import _ from 'lodash';
7
8
  import { generalActions } from '../apis';
8
9
  import { Colours, Helper } from '../core.config';
9
-
10
10
  class FilterPopupMenu extends Component {
11
11
  constructor(props) {
12
12
  super(props);
13
-
14
13
  _defineProperty(this, "refreshTypes", async () => {
15
14
  const {
16
15
  data
@@ -24,19 +23,17 @@ class FilterPopupMenu extends Component {
24
23
  types.splice(0, 0, {
25
24
  label: 'All',
26
25
  value: ''
27
- }); // console.log('refreshTypes', types);
28
-
26
+ });
27
+ // console.log('refreshTypes', types);
29
28
  this.setState({
30
29
  types
31
30
  });
32
31
  });
33
-
34
32
  _defineProperty(this, "onSelectOption", (key, value) => {
35
33
  const newState = {};
36
34
  newState[key] = value;
37
35
  this.setState(newState);
38
36
  });
39
-
40
37
  _defineProperty(this, "onDone", () => {
41
38
  const {
42
39
  onClose
@@ -50,7 +47,6 @@ class FilterPopupMenu extends Component {
50
47
  type: selectedType
51
48
  });
52
49
  });
53
-
54
50
  this.state = {
55
51
  types: props.types || [],
56
52
  selectedStatus: props.status || '',
@@ -73,17 +69,14 @@ class FilterPopupMenu extends Component {
73
69
  value: 'Completed'
74
70
  }];
75
71
  }
76
-
77
72
  componentDidMount() {
78
73
  if (_.isEmpty(this.state.types)) this.refreshTypes();
79
74
  }
80
-
81
75
  componentDidUpdate(prevProps) {
82
76
  if (prevProps.site !== this.props.site) {
83
77
  this.refreshTypes();
84
78
  }
85
79
  }
86
-
87
80
  renderTitle() {
88
81
  const {
89
82
  title
@@ -94,7 +87,6 @@ class FilterPopupMenu extends Component {
94
87
  style: styles.titleText
95
88
  }, title || 'Filter By'));
96
89
  }
97
-
98
90
  renderCancel() {
99
91
  const {
100
92
  colourBrandingMain,
@@ -110,7 +102,6 @@ class FilterPopupMenu extends Component {
110
102
  }]
111
103
  }, cancelText || 'Done')));
112
104
  }
113
-
114
105
  renderOptions(title, options, selectedKey) {
115
106
  const {
116
107
  colourBrandingMain
@@ -140,7 +131,6 @@ class FilterPopupMenu extends Component {
140
131
  }, o.label)));
141
132
  })));
142
133
  }
143
-
144
134
  render() {
145
135
  return /*#__PURE__*/React.createElement(Modal, {
146
136
  visible: true,
@@ -155,9 +145,7 @@ class FilterPopupMenu extends Component {
155
145
  style: styles.optionContent
156
146
  }, this.renderOptions('Status', this.statusOptions, 'selectedStatus'), this.renderOptions('Type', this.state.types, 'selectedType')), this.renderCancel())));
157
147
  }
158
-
159
148
  }
160
-
161
149
  const styles = {
162
150
  container: {
163
151
  position: 'absolute',
@@ -234,7 +222,6 @@ const styles = {
234
222
  fontSize: 13
235
223
  }
236
224
  };
237
-
238
225
  const mapStateToProps = state => {
239
226
  const {
240
227
  user
@@ -244,6 +231,5 @@ const mapStateToProps = state => {
244
231
  colourBrandingMain: Colours.getMainBrandingColourFromState(state)
245
232
  };
246
233
  };
247
-
248
234
  export default connect(mapStateToProps, {})(FilterPopupMenu);
249
235
  //# sourceMappingURL=FilterPopupMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","View","Text","TouchableOpacity","Modal","connect","_","generalActions","Colours","Helper","FilterPopupMenu","constructor","props","data","getJobTypes","getSite","site","types","map","t","label","typeName","value","splice","setState","key","newState","onClose","selectedStatus","selectedType","state","status","type","statusOptions","componentDidMount","isEmpty","refreshTypes","componentDidUpdate","prevProps","renderTitle","title","styles","titleContainer","titleText","renderCancel","colourBrandingMain","cancelText","onDone","cancelContainer","color","renderOptions","options","selectedKey","optionsContainer","optionsTitle","o","selected","backgroundColor","onSelectOption","optionContainer","borderColor","optionText","render","container","menu","optionContent","position","bottom","left","right","top","zIndex","borderTopLeftRadius","borderTopRightRadius","paddingVertical","LINEGREY","borderTopWidth","paddingHorizontal","fontFamily","fontSize","textAlign","TEXT_DARK","padding","borderBottomWidth","marginHorizontal","marginBottom","flex","flexDirection","flexWrap","alignItems","justifyContent","minWidth","height","borderRadius","borderWidth","marginRight","mapStateToProps","user","getMainBrandingColourFromState"],"sources":["FilterPopupMenu.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, TouchableOpacity, Modal } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { generalActions } from '../apis';\nimport { Colours, Helper } from '../core.config';\n\nclass FilterPopupMenu extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n types: props.types || [],\n selectedStatus: props.status || '',\n selectedType: props.type || '',\n };\n this.statusOptions = [\n {\n label: 'All',\n value: '',\n },\n {\n label: 'Incomplete',\n value: 'Unassigned|In Progress',\n },\n {\n label: 'Unassigned',\n value: 'Unassigned',\n },\n {\n label: 'In Progress',\n value: 'In Progress',\n },\n {\n label: 'Completed',\n value: 'Completed',\n },\n ];\n }\n\n componentDidMount() {\n if (_.isEmpty(this.state.types)) this.refreshTypes();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.site !== this.props.site) {\n this.refreshTypes();\n }\n }\n\n refreshTypes = async () => {\n const { data } = await generalActions.getJobTypes(Helper.getSite(this.props.site));\n const types = data.map(t => {\n return { label: t.typeName, value: t.typeName };\n });\n types.splice(0, 0, { label: 'All', value: '' });\n // console.log('refreshTypes', types);\n this.setState({ types });\n };\n\n onSelectOption = (key, value) => {\n const newState = {};\n newState[key] = value;\n this.setState(newState);\n };\n\n onDone = () => {\n const { onClose } = this.props;\n const { selectedStatus, selectedType } = this.state;\n if (onClose)\n onClose({\n status: selectedStatus,\n type: selectedType,\n });\n };\n\n renderTitle() {\n const { title } = this.props;\n return (\n <View style={styles.titleContainer}>\n <Text style={styles.titleText}>{title || 'Filter By'}</Text>\n </View>\n );\n }\n\n renderCancel() {\n const { colourBrandingMain, cancelText } = this.props;\n return (\n <TouchableOpacity onPress={this.onDone}>\n <View style={styles.cancelContainer}>\n <Text style={[styles.cancelText, { color: colourBrandingMain }]}>{cancelText || 'Done'}</Text>\n </View>\n </TouchableOpacity>\n );\n }\n\n renderOptions(title, options, selectedKey) {\n const { colourBrandingMain } = this.props;\n return (\n <View style={styles.optionsContainer}>\n <Text style={styles.optionsTitle}>{title}</Text>\n <View style={styles.options}>\n {options.map(o => {\n const selected = this.state[selectedKey];\n const backgroundColor = o.value === selected ? colourBrandingMain : '#fff';\n const color = o.value === selected ? '#fff' : colourBrandingMain;\n return (\n <TouchableOpacity key={o.label} onPress={() => this.onSelectOption(selectedKey, o.value)}>\n <View style={[styles.optionContainer, { backgroundColor, borderColor: colourBrandingMain }]}>\n <Text style={[styles.optionText, { color }]}>{o.label}</Text>\n </View>\n </TouchableOpacity>\n );\n })}\n </View>\n </View>\n );\n }\n\n render() {\n return (\n <Modal visible transparent animationType=\"slide\" onRequestClose={this.onDone}>\n <View style={styles.container}>\n <View style={styles.menu}>\n {this.renderTitle()}\n <View style={styles.optionContent}>\n {this.renderOptions('Status', this.statusOptions, 'selectedStatus')}\n {this.renderOptions('Type', this.state.types, 'selectedType')}\n </View>\n {this.renderCancel()}\n </View>\n </View>\n </Modal>\n );\n }\n}\n\nconst styles = {\n container: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n backgroundColor: 'rgba(0,0,0,0.5)',\n zIndex: 1000,\n },\n menu: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n backgroundColor: '#fff',\n borderTopLeftRadius: 12,\n borderTopRightRadius: 12,\n },\n cancelContainer: {\n paddingVertical: 16,\n borderColor: Colours.LINEGREY,\n borderTopWidth: 1,\n paddingHorizontal: 16,\n },\n cancelText: {\n fontFamily: 'sf-medium',\n fontSize: 16,\n textAlign: 'center',\n color: Colours.TEXT_DARK,\n },\n titleContainer: {\n padding: 16,\n borderColor: Colours.LINEGREY,\n borderBottomWidth: 1,\n },\n titleText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n textAlign: 'center',\n color: Colours.TEXT_DARK,\n },\n optionContent: {\n paddingVertical: 10,\n },\n optionsContainer: {\n marginHorizontal: 14,\n },\n optionsTitle: {\n fontFamily: 'sf-semibold',\n marginBottom: 4,\n },\n options: {\n flex: 1,\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n optionContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: 50,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n borderWidth: 1,\n marginRight: 8,\n marginBottom: 8,\n },\n optionText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n};\n\nconst mapStateToProps = state => {\n const { user } = state;\n\n return {\n site: user.site,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(FilterPopupMenu);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Component","View","Text","TouchableOpacity","Modal","connect","_","generalActions","Colours","Helper","FilterPopupMenu","constructor","props","_defineProperty","data","getJobTypes","getSite","site","types","map","t","label","typeName","value","splice","setState","key","newState","onClose","selectedStatus","selectedType","state","status","type","statusOptions","componentDidMount","isEmpty","refreshTypes","componentDidUpdate","prevProps","renderTitle","title","createElement","style","styles","titleContainer","titleText","renderCancel","colourBrandingMain","cancelText","onPress","onDone","cancelContainer","color","renderOptions","options","selectedKey","optionsContainer","optionsTitle","o","selected","backgroundColor","onSelectOption","optionContainer","borderColor","optionText","render","visible","transparent","animationType","onRequestClose","container","menu","optionContent","position","bottom","left","right","top","zIndex","borderTopLeftRadius","borderTopRightRadius","paddingVertical","LINEGREY","borderTopWidth","paddingHorizontal","fontFamily","fontSize","textAlign","TEXT_DARK","padding","borderBottomWidth","marginHorizontal","marginBottom","flex","flexDirection","flexWrap","alignItems","justifyContent","minWidth","height","borderRadius","borderWidth","marginRight","mapStateToProps","user","getMainBrandingColourFromState"],"sources":["FilterPopupMenu.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, TouchableOpacity, Modal } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { generalActions } from '../apis';\nimport { Colours, Helper } from '../core.config';\n\nclass FilterPopupMenu extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n types: props.types || [],\n selectedStatus: props.status || '',\n selectedType: props.type || '',\n };\n this.statusOptions = [\n {\n label: 'All',\n value: '',\n },\n {\n label: 'Incomplete',\n value: 'Unassigned|In Progress',\n },\n {\n label: 'Unassigned',\n value: 'Unassigned',\n },\n {\n label: 'In Progress',\n value: 'In Progress',\n },\n {\n label: 'Completed',\n value: 'Completed',\n },\n ];\n }\n\n componentDidMount() {\n if (_.isEmpty(this.state.types)) this.refreshTypes();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.site !== this.props.site) {\n this.refreshTypes();\n }\n }\n\n refreshTypes = async () => {\n const { data } = await generalActions.getJobTypes(Helper.getSite(this.props.site));\n const types = data.map(t => {\n return { label: t.typeName, value: t.typeName };\n });\n types.splice(0, 0, { label: 'All', value: '' });\n // console.log('refreshTypes', types);\n this.setState({ types });\n };\n\n onSelectOption = (key, value) => {\n const newState = {};\n newState[key] = value;\n this.setState(newState);\n };\n\n onDone = () => {\n const { onClose } = this.props;\n const { selectedStatus, selectedType } = this.state;\n if (onClose)\n onClose({\n status: selectedStatus,\n type: selectedType,\n });\n };\n\n renderTitle() {\n const { title } = this.props;\n return (\n <View style={styles.titleContainer}>\n <Text style={styles.titleText}>{title || 'Filter By'}</Text>\n </View>\n );\n }\n\n renderCancel() {\n const { colourBrandingMain, cancelText } = this.props;\n return (\n <TouchableOpacity onPress={this.onDone}>\n <View style={styles.cancelContainer}>\n <Text style={[styles.cancelText, { color: colourBrandingMain }]}>{cancelText || 'Done'}</Text>\n </View>\n </TouchableOpacity>\n );\n }\n\n renderOptions(title, options, selectedKey) {\n const { colourBrandingMain } = this.props;\n return (\n <View style={styles.optionsContainer}>\n <Text style={styles.optionsTitle}>{title}</Text>\n <View style={styles.options}>\n {options.map(o => {\n const selected = this.state[selectedKey];\n const backgroundColor = o.value === selected ? colourBrandingMain : '#fff';\n const color = o.value === selected ? '#fff' : colourBrandingMain;\n return (\n <TouchableOpacity key={o.label} onPress={() => this.onSelectOption(selectedKey, o.value)}>\n <View style={[styles.optionContainer, { backgroundColor, borderColor: colourBrandingMain }]}>\n <Text style={[styles.optionText, { color }]}>{o.label}</Text>\n </View>\n </TouchableOpacity>\n );\n })}\n </View>\n </View>\n );\n }\n\n render() {\n return (\n <Modal visible transparent animationType=\"slide\" onRequestClose={this.onDone}>\n <View style={styles.container}>\n <View style={styles.menu}>\n {this.renderTitle()}\n <View style={styles.optionContent}>\n {this.renderOptions('Status', this.statusOptions, 'selectedStatus')}\n {this.renderOptions('Type', this.state.types, 'selectedType')}\n </View>\n {this.renderCancel()}\n </View>\n </View>\n </Modal>\n );\n }\n}\n\nconst styles = {\n container: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n backgroundColor: 'rgba(0,0,0,0.5)',\n zIndex: 1000,\n },\n menu: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n backgroundColor: '#fff',\n borderTopLeftRadius: 12,\n borderTopRightRadius: 12,\n },\n cancelContainer: {\n paddingVertical: 16,\n borderColor: Colours.LINEGREY,\n borderTopWidth: 1,\n paddingHorizontal: 16,\n },\n cancelText: {\n fontFamily: 'sf-medium',\n fontSize: 16,\n textAlign: 'center',\n color: Colours.TEXT_DARK,\n },\n titleContainer: {\n padding: 16,\n borderColor: Colours.LINEGREY,\n borderBottomWidth: 1,\n },\n titleText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n textAlign: 'center',\n color: Colours.TEXT_DARK,\n },\n optionContent: {\n paddingVertical: 10,\n },\n optionsContainer: {\n marginHorizontal: 14,\n },\n optionsTitle: {\n fontFamily: 'sf-semibold',\n marginBottom: 4,\n },\n options: {\n flex: 1,\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n optionContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: 50,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n borderWidth: 1,\n marginRight: 8,\n marginBottom: 8,\n },\n optionText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n};\n\nconst mapStateToProps = state => {\n const { user } = state;\n\n return {\n site: user.site,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(FilterPopupMenu);\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
4
  import React, { Component } from 'react';
4
5
  import { View, StyleSheet, FlatList, TouchableOpacity, Text } from 'react-native';
5
6
  import _ from 'lodash';
@@ -9,28 +10,25 @@ import { jobsLoaded, jobAdded, jobsAdded } from '../actions';
9
10
  import MaintenanceListItem from '../components/MaintenanceListItem';
10
11
  import FilterPopupMenu from './FilterPopupMenu';
11
12
  import { Components, Colours, Config, Helper } from '../core.config';
12
-
13
13
  class MaintenanceList extends Component {
14
14
  constructor(props) {
15
15
  var _this;
16
-
17
16
  super(props);
18
17
  _this = this;
19
-
20
18
  _defineProperty(this, "refresh", () => {
21
19
  this.onLoadingChanged(true, async () => {
22
20
  try {
23
21
  const {
24
22
  selectedStatus,
25
23
  selectedType
26
- } = this.state; // console.log('filters', { selectedStatus, selectedType });
27
-
28
- const res = await generalActions.getJobs(this.props.site, selectedStatus, selectedType); // console.log('refresh', res?.data);
29
-
24
+ } = this.state;
25
+ // console.log('filters', { selectedStatus, selectedType });
26
+ const res = await generalActions.getJobsRecursive(this.props.site, selectedStatus, selectedType);
27
+ // console.log('refresh', res?.data);
30
28
  if (selectedStatus || selectedType) {
31
- this.props.jobsAdded(res.data);
29
+ this.props.jobsAdded(res);
32
30
  } else {
33
- this.props.jobsLoaded(res.data);
31
+ this.props.jobsLoaded(res);
34
32
  }
35
33
  } catch (error) {
36
34
  console.log('refresh error', error);
@@ -39,7 +37,6 @@ class MaintenanceList extends Component {
39
37
  }
40
38
  });
41
39
  });
42
-
43
40
  _defineProperty(this, "refreshTypes", async () => {
44
41
  const {
45
42
  data
@@ -53,19 +50,18 @@ class MaintenanceList extends Component {
53
50
  types.splice(0, 0, {
54
51
  label: 'All',
55
52
  value: ''
56
- }); // console.log('refreshTypes', types);
57
-
53
+ });
54
+ // console.log('refreshTypes', types);
58
55
  this.setState({
59
56
  types
60
57
  });
61
58
  });
62
-
63
59
  _defineProperty(this, "fetchJob", jobId => {
64
60
  if (this.state.loading) return;
65
61
  this.onLoadingChanged(true, async () => {
66
62
  try {
67
- const job = await generalActions.getJobByJobId(this.props.site, jobId); // console.log('fetchJob', job?.data);
68
-
63
+ const job = await generalActions.getJobByJobId(this.props.site, jobId);
64
+ // console.log('fetchJob', job?.data);
69
65
  this.props.jobAdded(job.data);
70
66
  } catch (error) {
71
67
  console.log('fetchJob error', error);
@@ -74,7 +70,6 @@ class MaintenanceList extends Component {
74
70
  }
75
71
  });
76
72
  });
77
-
78
73
  _defineProperty(this, "resetDataSource", function () {
79
74
  let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
80
75
  const {
@@ -87,39 +82,30 @@ class MaintenanceList extends Component {
87
82
  } = _this.props;
88
83
  let filteredList = jobs;
89
84
  let jobIdMatch = null;
90
-
91
85
  if (searchText) {
92
86
  jobIdMatch = _.find(jobs, j => j.jobId === searchText);
93
87
  filteredList = jobs.filter(j => {
94
88
  if (j.room && j.room.toLowerCase().indexOf(searchText.toLowerCase()) > -1) {
95
89
  return true;
96
90
  }
97
-
98
91
  return false;
99
92
  });
100
93
  if (!jobIdMatch) _this.fetchJob(searchText);
101
94
  }
102
-
103
95
  if (selectedStatus) filteredList = filteredList.filter(j => selectedStatus.includes(j.status));
104
96
  if (selectedType) filteredList = filteredList.filter(j => selectedType.includes(j.type));
105
-
106
97
  if (jobIdMatch) {
107
98
  const jobIndex = filteredList.indexOf(jobIdMatch);
108
-
109
99
  if (jobIndex > -1) {
110
100
  filteredList.splice(jobIndex, 1);
111
101
  }
112
-
113
102
  filteredList.unshift(jobIdMatch);
114
103
  }
115
-
116
104
  if (source !== 'search') _this.refresh();
117
-
118
105
  _this.setState({
119
106
  filteredList
120
107
  });
121
108
  });
122
-
123
109
  _defineProperty(this, "onLoadingChanged", (loading, callback) => {
124
110
  this.setState({
125
111
  loading
@@ -128,7 +114,6 @@ class MaintenanceList extends Component {
128
114
  if (callback) callback();
129
115
  });
130
116
  });
131
-
132
117
  _defineProperty(this, "onSearchText", value => {
133
118
  this.setState({
134
119
  searchText: value
@@ -136,17 +121,14 @@ class MaintenanceList extends Component {
136
121
  if (_.isEmpty(this.state.searchText)) this.resetDataSource('search');
137
122
  });
138
123
  });
139
-
140
124
  _defineProperty(this, "onSearchSubmit", () => {
141
125
  this.resetDataSource('search');
142
126
  });
143
-
144
127
  _defineProperty(this, "onToggleFilter", () => {
145
128
  this.setState({
146
129
  showFilterPopup: !this.state.showFilterPopup
147
130
  });
148
131
  });
149
-
150
132
  _defineProperty(this, "onSelectFilter", selected => {
151
133
  this.setState({
152
134
  selectedStatus: selected.status,
@@ -156,7 +138,6 @@ class MaintenanceList extends Component {
156
138
  this.onToggleFilter();
157
139
  });
158
140
  });
159
-
160
141
  this.state = {
161
142
  types: [],
162
143
  filteredList: props.jobs,
@@ -167,26 +148,21 @@ class MaintenanceList extends Component {
167
148
  selectedType: ''
168
149
  };
169
150
  }
170
-
171
151
  componentDidMount() {
172
152
  this.refresh();
173
153
  this.refreshTypes();
174
154
  this.resetDataSource();
175
155
  }
176
-
177
156
  componentDidUpdate(prevProps) {
178
157
  if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();
179
158
  if (!_.isEqual(prevProps.jobs, this.props.jobs)) this.resetDataSource();
180
159
  }
181
-
182
160
  getEmptyStateText() {
183
161
  if (this.props.options && !_.isEmpty(this.props.options.EmptyText)) {
184
162
  return this.props.options.EmptyText;
185
163
  }
186
-
187
164
  return this.props.userCategory === 'staff' ? Config.env.strings.EMPTY_REQUESTS_STAFF : Config.env.strings.EMPTY_REQUESTS_USER;
188
165
  }
189
-
190
166
  renderEmptyList() {
191
167
  return this.state.loading ? null : /*#__PURE__*/React.createElement(Components.EmptyStateMain, {
192
168
  title: this.getEmptyStateText(),
@@ -195,7 +171,6 @@ class MaintenanceList extends Component {
195
171
  }
196
172
  });
197
173
  }
198
-
199
174
  renderFilterButton() {
200
175
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
201
176
  onPress: this.onToggleFilter
@@ -207,7 +182,6 @@ class MaintenanceList extends Component {
207
182
  }]
208
183
  }, "Filter")));
209
184
  }
210
-
211
185
  renderSearch() {
212
186
  if (!this.props.hasPermission) return null;
213
187
  return /*#__PURE__*/React.createElement(View, {
@@ -218,12 +192,12 @@ class MaintenanceList extends Component {
218
192
  onChangeText: this.onSearchText,
219
193
  onSubmitEditing: this.onSearchSubmit,
220
194
  squaredCorners: true,
221
- hasClear: true // keyboardType={'numeric'}
195
+ hasClear: true
196
+ // keyboardType={'numeric'}
222
197
  ,
223
198
  returnKeyType: 'done'
224
199
  }));
225
200
  }
226
-
227
201
  renderListHeader() {
228
202
  const {
229
203
  ListHeaderComponent
@@ -234,7 +208,6 @@ class MaintenanceList extends Component {
234
208
  }
235
209
  }), this.renderFilterButton(), this.renderSearch());
236
210
  }
237
-
238
211
  renderList() {
239
212
  const {
240
213
  filteredList
@@ -262,7 +235,6 @@ class MaintenanceList extends Component {
262
235
  ListHeaderComponent: this.renderListHeader()
263
236
  });
264
237
  }
265
-
266
238
  renderFilterPopup() {
267
239
  const {
268
240
  showFilterPopup,
@@ -279,15 +251,12 @@ class MaintenanceList extends Component {
279
251
  onClose: this.onSelectFilter
280
252
  });
281
253
  }
282
-
283
254
  render() {
284
255
  return /*#__PURE__*/React.createElement(View, {
285
256
  style: [styles.container, this.props.style]
286
257
  }, this.renderList(), this.renderFilterPopup());
287
258
  }
288
-
289
259
  }
290
-
291
260
  const styles = StyleSheet.create({
292
261
  container: {
293
262
  flex: 1,
@@ -334,18 +303,14 @@ const styles = StyleSheet.create({
334
303
  fontSize: 16
335
304
  }
336
305
  });
337
-
338
306
  const mapStateToProps = state => {
339
307
  const {
340
308
  user,
341
309
  jobs,
342
310
  notifications
343
311
  } = state;
344
-
345
312
  const jobsOrdered = _.orderBy(jobs.jobs, ['createdUnix'], ['desc']);
346
-
347
313
  const hasPermission = _.includes(user.permissions, 'maintenanceTracking');
348
-
349
314
  return {
350
315
  hasPermission,
351
316
  jobs: jobsOrdered,
@@ -355,7 +320,6 @@ const mapStateToProps = state => {
355
320
  dataUpdated: notifications.dataUpdated['jobs']
356
321
  };
357
322
  };
358
-
359
323
  export default connect(mapStateToProps, {
360
324
  jobsLoaded,
361
325
  jobAdded,