@plusscommunities/pluss-maintenance-app-forms 7.0.21 → 8.0.1-auth.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 (58) hide show
  1. package/dist/module/apis/maintenanceActions.js +12 -4
  2. package/dist/module/apis/maintenanceActions.js.map +1 -1
  3. package/dist/module/components/FilterPopupMenu.js +30 -14
  4. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  5. package/dist/module/components/MaintenanceList.js +199 -25
  6. package/dist/module/components/MaintenanceList.js.map +1 -1
  7. package/dist/module/components/MaintenanceListItem.js +2 -1
  8. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  9. package/dist/module/components/MaintenanceWidgetItem.js +2 -1
  10. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  11. package/dist/module/components/PrioritySelectorPopup.js +2 -1
  12. package/dist/module/components/PrioritySelectorPopup.js.map +1 -1
  13. package/dist/module/components/StatusSelectorPopup.js +2 -1
  14. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  15. package/dist/module/components/WidgetSmall.js +5 -4
  16. package/dist/module/components/WidgetSmall.js.map +1 -1
  17. package/dist/module/core.config.js +1 -2
  18. package/dist/module/core.config.js.map +1 -1
  19. package/dist/module/screens/JobTypePicker.js +2 -1
  20. package/dist/module/screens/JobTypePicker.js.map +1 -1
  21. package/dist/module/screens/MaintenanceUserPicker.js +73 -91
  22. package/dist/module/screens/MaintenanceUserPicker.js.map +1 -1
  23. package/dist/module/screens/RequestDetail.js +76 -29
  24. package/dist/module/screens/RequestDetail.js.map +1 -1
  25. package/dist/module/screens/RequestNotes.js +11 -7
  26. package/dist/module/screens/RequestNotes.js.map +1 -1
  27. package/dist/module/screens/ServiceRequest.js +43 -42
  28. package/dist/module/screens/ServiceRequest.js.map +1 -1
  29. package/dist/module/values.config.a.js +1 -2
  30. package/dist/module/values.config.a.js.map +1 -1
  31. package/dist/module/values.config.default.js +1 -2
  32. package/dist/module/values.config.default.js.map +1 -1
  33. package/dist/module/values.config.enquiry.js +1 -2
  34. package/dist/module/values.config.enquiry.js.map +1 -1
  35. package/dist/module/values.config.feedback.js +1 -2
  36. package/dist/module/values.config.feedback.js.map +1 -1
  37. package/dist/module/values.config.food.js +1 -2
  38. package/dist/module/values.config.food.js.map +1 -1
  39. package/package.json +18 -14
  40. package/src/apis/maintenanceActions.js +17 -7
  41. package/src/components/FilterPopupMenu.js +67 -40
  42. package/src/components/MaintenanceList.js +234 -40
  43. package/src/components/MaintenanceListItem.js +2 -1
  44. package/src/components/MaintenanceWidgetItem.js +2 -1
  45. package/src/components/PrioritySelectorPopup.js +2 -1
  46. package/src/components/StatusSelectorPopup.js +2 -1
  47. package/src/components/WidgetSmall.js +12 -4
  48. package/src/core.config.js +0 -2
  49. package/src/screens/JobTypePicker.js +2 -1
  50. package/src/screens/MaintenanceUserPicker.js +77 -114
  51. package/src/screens/RequestDetail.js +88 -32
  52. package/src/screens/RequestNotes.js +17 -10
  53. package/src/screens/ServiceRequest.js +85 -44
  54. package/src/values.config.a.js +0 -1
  55. package/src/values.config.default.js +0 -1
  56. package/src/values.config.enquiry.js +0 -1
  57. package/src/values.config.feedback.js +0 -1
  58. package/src/values.config.food.js +0 -1
@@ -32,7 +32,7 @@ export const maintenanceActions = {
32
32
  }
33
33
  });
34
34
  },
35
- getJobs2: (site, status, priority, type, lastKey) => {
35
+ getJobs2: (site, status, priority, type, lastKey, assignee) => {
36
36
  const query = {
37
37
  site
38
38
  };
@@ -48,20 +48,28 @@ export const maintenanceActions = {
48
48
  if (lastKey) {
49
49
  query.lastKey = JSON.stringify(lastKey);
50
50
  }
51
+ if (assignee) {
52
+ query.assignee = assignee;
53
+ }
51
54
  return Session.authedFunction({
52
55
  method: "GET",
53
56
  url: Helper.getUrl(values.serviceKey, "get/requests", query)
54
57
  });
55
58
  },
59
+ /**
60
+ * @deprecated Use getJobs2 with pagination instead.
61
+ * This method recursively fetches ALL pages which can be slow for large datasets.
62
+ * For better performance, use getJobs2 directly and implement pagination in the UI.
63
+ */
56
64
  getJobsRecursive: (site, status, priority, type, lastKey, jobs = []) => {
57
- return new Promise(resolve => {
65
+ return new Promise((resolve, reject) => {
58
66
  maintenanceActions.getJobs2(site, status, priority, type, lastKey).then(jobRes => {
59
67
  const newJobs = [...jobs, ...jobRes.data.Items];
60
68
  if (!jobRes.data.LastKey) {
61
69
  return resolve(newJobs);
62
70
  }
63
- return resolve(maintenanceActions.getJobsRecursive(site, status, priority, type, jobRes.data.LastKey, newJobs));
64
- });
71
+ maintenanceActions.getJobsRecursive(site, status, priority, type, jobRes.data.LastKey, newJobs).then(resolve).catch(reject);
72
+ }).catch(reject);
65
73
  });
66
74
  },
67
75
  sendMaintenanceRequest: (userID, userName, phone, room, title, description, date, type, images, location, isHome, homeText, customFields) => {
@@ -1 +1 @@
1
- {"version":3,"names":["Helper","Session","values","maintenanceActions","getJob","site","id","authedFunction","method","url","getUrl","serviceKey","data","getJobByJobId","jobId","getJobs","status","type","getJobs2","priority","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","customFields","request","editJob","job","editJobStatus","editJobPriority","assignJob","userId","getAssignees","addNote","note","attachments","action","editNote","noteId","deleteNote","getJobTypes","getExternalSync"],"sources":["maintenanceActions.js"],"sourcesContent":["import { Helper, Session } from \"../core.config\";\nimport { values } from \"../values.config\";\n\nexport const maintenanceActions = {\n\tgetJob: (site, id) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"getJob\"),\n\t\t\tdata: { site, id },\n\t\t});\n\t},\n\tgetJobByJobId: (site, jobId) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"getJob\"),\n\t\t\tdata: { site, jobId },\n\t\t});\n\t},\n\tgetJobs: (site, status = \"\", type = \"\") => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"getJobs\"),\n\t\t\tdata: { site, status, type },\n\t\t});\n\t},\n\tgetJobs2: (site, status, priority, type, lastKey) => {\n\t\tconst query = { site };\n\t\tif (status) {\n\t\t\tquery.status = status;\n\t\t}\n\t\tif (priority) {\n\t\t\tquery.priority = priority;\n\t\t}\n\t\tif (type) {\n\t\t\tquery.type = type;\n\t\t}\n\t\tif (lastKey) {\n\t\t\tquery.lastKey = JSON.stringify(lastKey);\n\t\t}\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"GET\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"get/requests\", query),\n\t\t});\n\t},\n\tgetJobsRecursive: (site, status, priority, type, lastKey, jobs = []) => {\n\t\treturn new Promise((resolve) => {\n\t\t\tmaintenanceActions\n\t\t\t\t.getJobs2(site, status, priority, type, lastKey)\n\t\t\t\t.then((jobRes) => {\n\t\t\t\t\tconst newJobs = [...jobs, ...jobRes.data.Items];\n\t\t\t\t\tif (!jobRes.data.LastKey) {\n\t\t\t\t\t\treturn resolve(newJobs);\n\t\t\t\t\t}\n\t\t\t\t\treturn resolve(\n\t\t\t\t\t\tmaintenanceActions.getJobsRecursive(\n\t\t\t\t\t\t\tsite,\n\t\t\t\t\t\t\tstatus,\n\t\t\t\t\t\t\tpriority,\n\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\tjobRes.data.LastKey,\n\t\t\t\t\t\t\tnewJobs,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t});\n\t},\n\tsendMaintenanceRequest: (\n\t\tuserID,\n\t\tuserName,\n\t\tphone,\n\t\troom,\n\t\ttitle,\n\t\tdescription,\n\t\tdate,\n\t\ttype,\n\t\timages,\n\t\tlocation,\n\t\tisHome,\n\t\thomeText,\n\t\tcustomFields,\n\t) => {\n\t\tconst request = {\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"sendMaintenance\"),\n\t\t\tdata: {\n\t\t\t\tuserID,\n\t\t\t\tuserName,\n\t\t\t\tphone,\n\t\t\t\troom,\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t\tdate,\n\t\t\t\ttype,\n\t\t\t\timages,\n\t\t\t\tlocation,\n\t\t\t\tisHome,\n\t\t\t\thomeText,\n\t\t\t\tcustomFields,\n\t\t\t},\n\t\t};\n\t\treturn Session.authedFunction(request);\n\t},\n\teditJob: (job, site) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"editJob\"),\n\t\t\tdata: { job, site },\n\t\t});\n\t},\n\teditJobStatus: (id, status) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"editJobStatus\"),\n\t\t\tdata: { id, status },\n\t\t});\n\t},\n\teditJobPriority: (id, priority) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"update/priority\"),\n\t\t\tdata: { id, priority },\n\t\t});\n\t},\n\tassignJob: (jobId, userId) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"update/assign\"),\n\t\t\tdata: {\n\t\t\t\tid: jobId,\n\t\t\t\tuserId,\n\t\t\t},\n\t\t});\n\t},\n\tgetAssignees: (site) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"GET\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"get/assignees\", { site }),\n\t\t});\n\t},\n\taddNote: (jobId, note, attachments, images) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"requests/note\"),\n\t\t\tdata: {\n\t\t\t\tid: jobId,\n\t\t\t\tnote,\n\t\t\t\tattachments,\n\t\t\t\timages,\n\t\t\t\taction: \"AddNote\",\n\t\t\t},\n\t\t});\n\t},\n\teditNote: (jobId, noteId, note, attachments, images) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"requests/note\"),\n\t\t\tdata: {\n\t\t\t\tid: jobId,\n\t\t\t\tnote,\n\t\t\t\tattachments,\n\t\t\t\timages,\n\t\t\t\tnoteId,\n\t\t\t\taction: \"EditNote\",\n\t\t\t},\n\t\t});\n\t},\n\tdeleteNote: (jobId, noteId) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"requests/note\"),\n\t\t\tdata: {\n\t\t\t\tid: jobId,\n\t\t\t\tnoteId,\n\t\t\t\taction: \"DeleteNote\",\n\t\t\t},\n\t\t});\n\t},\n\tgetJobTypes: async (site) => {\n\t\tconst url = Helper.getUrl(values.serviceKey, \"getjobtypes\");\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl,\n\t\t\tdata: { site },\n\t\t});\n\t},\n\tgetExternalSync: (jobId) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"GET\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"get/externalsync\", { id: jobId }),\n\t\t});\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Helper","Session","values","maintenanceActions","getJob","site","id","authedFunction","method","url","getUrl","serviceKey","data","getJobByJobId","jobId","getJobs","status","type","getJobs2","priority","lastKey","assignee","query","JSON","stringify","getJobsRecursive","jobs","Promise","resolve","reject","then","jobRes","newJobs","Items","LastKey","catch","sendMaintenanceRequest","userID","userName","phone","room","title","description","date","images","location","isHome","homeText","customFields","request","editJob","job","editJobStatus","editJobPriority","assignJob","userId","getAssignees","addNote","note","attachments","action","editNote","noteId","deleteNote","getJobTypes","getExternalSync"],"sources":["maintenanceActions.js"],"sourcesContent":["import { Helper, Session } from \"../core.config\";\nimport { values } from \"../values.config\";\n\nexport const maintenanceActions = {\n\tgetJob: (site, id) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"getJob\"),\n\t\t\tdata: { site, id },\n\t\t});\n\t},\n\tgetJobByJobId: (site, jobId) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"getJob\"),\n\t\t\tdata: { site, jobId },\n\t\t});\n\t},\n\tgetJobs: (site, status = \"\", type = \"\") => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"getJobs\"),\n\t\t\tdata: { site, status, type },\n\t\t});\n\t},\n\tgetJobs2: (site, status, priority, type, lastKey, assignee) => {\n\t\tconst query = { site };\n\t\tif (status) {\n\t\t\tquery.status = status;\n\t\t}\n\t\tif (priority) {\n\t\t\tquery.priority = priority;\n\t\t}\n\t\tif (type) {\n\t\t\tquery.type = type;\n\t\t}\n\t\tif (lastKey) {\n\t\t\tquery.lastKey = JSON.stringify(lastKey);\n\t\t}\n\t\tif (assignee) {\n\t\t\tquery.assignee = assignee;\n\t\t}\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"GET\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"get/requests\", query),\n\t\t});\n\t},\n\t/**\n\t * @deprecated Use getJobs2 with pagination instead.\n\t * This method recursively fetches ALL pages which can be slow for large datasets.\n\t * For better performance, use getJobs2 directly and implement pagination in the UI.\n\t */\n\tgetJobsRecursive: (site, status, priority, type, lastKey, jobs = []) => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tmaintenanceActions\n\t\t\t\t.getJobs2(site, status, priority, type, lastKey)\n\t\t\t\t.then((jobRes) => {\n\t\t\t\t\tconst newJobs = [...jobs, ...jobRes.data.Items];\n\t\t\t\t\tif (!jobRes.data.LastKey) {\n\t\t\t\t\t\treturn resolve(newJobs);\n\t\t\t\t\t}\n\t\t\t\t\tmaintenanceActions\n\t\t\t\t\t\t.getJobsRecursive(\n\t\t\t\t\t\t\tsite,\n\t\t\t\t\t\t\tstatus,\n\t\t\t\t\t\t\tpriority,\n\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\tjobRes.data.LastKey,\n\t\t\t\t\t\t\tnewJobs,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.then(resolve)\n\t\t\t\t\t\t.catch(reject);\n\t\t\t\t})\n\t\t\t\t.catch(reject);\n\t\t});\n\t},\n\tsendMaintenanceRequest: (\n\t\tuserID,\n\t\tuserName,\n\t\tphone,\n\t\troom,\n\t\ttitle,\n\t\tdescription,\n\t\tdate,\n\t\ttype,\n\t\timages,\n\t\tlocation,\n\t\tisHome,\n\t\thomeText,\n\t\tcustomFields,\n\t) => {\n\t\tconst request = {\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"sendMaintenance\"),\n\t\t\tdata: {\n\t\t\t\tuserID,\n\t\t\t\tuserName,\n\t\t\t\tphone,\n\t\t\t\troom,\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t\tdate,\n\t\t\t\ttype,\n\t\t\t\timages,\n\t\t\t\tlocation,\n\t\t\t\tisHome,\n\t\t\t\thomeText,\n\t\t\t\tcustomFields,\n\t\t\t},\n\t\t};\n\t\treturn Session.authedFunction(request);\n\t},\n\teditJob: (job, site) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"editJob\"),\n\t\t\tdata: { job, site },\n\t\t});\n\t},\n\teditJobStatus: (id, status) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"editJobStatus\"),\n\t\t\tdata: { id, status },\n\t\t});\n\t},\n\teditJobPriority: (id, priority) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"update/priority\"),\n\t\t\tdata: { id, priority },\n\t\t});\n\t},\n\tassignJob: (jobId, userId) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"update/assign\"),\n\t\t\tdata: {\n\t\t\t\tid: jobId,\n\t\t\t\tuserId,\n\t\t\t},\n\t\t});\n\t},\n\tgetAssignees: (site) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"GET\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"get/assignees\", { site }),\n\t\t});\n\t},\n\taddNote: (jobId, note, attachments, images) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"requests/note\"),\n\t\t\tdata: {\n\t\t\t\tid: jobId,\n\t\t\t\tnote,\n\t\t\t\tattachments,\n\t\t\t\timages,\n\t\t\t\taction: \"AddNote\",\n\t\t\t},\n\t\t});\n\t},\n\teditNote: (jobId, noteId, note, attachments, images) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"requests/note\"),\n\t\t\tdata: {\n\t\t\t\tid: jobId,\n\t\t\t\tnote,\n\t\t\t\tattachments,\n\t\t\t\timages,\n\t\t\t\tnoteId,\n\t\t\t\taction: \"EditNote\",\n\t\t\t},\n\t\t});\n\t},\n\tdeleteNote: (jobId, noteId) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"requests/note\"),\n\t\t\tdata: {\n\t\t\t\tid: jobId,\n\t\t\t\tnoteId,\n\t\t\t\taction: \"DeleteNote\",\n\t\t\t},\n\t\t});\n\t},\n\tgetJobTypes: async (site) => {\n\t\tconst url = Helper.getUrl(values.serviceKey, \"getjobtypes\");\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"POST\",\n\t\t\turl,\n\t\t\tdata: { site },\n\t\t});\n\t},\n\tgetExternalSync: (jobId) => {\n\t\treturn Session.authedFunction({\n\t\t\tmethod: \"GET\",\n\t\t\turl: Helper.getUrl(values.serviceKey, \"get/externalsync\", { id: jobId }),\n\t\t});\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
@@ -2,12 +2,15 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
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
4
  import React, { Component } from "react";
5
- import { View, Text, TouchableOpacity, Modal, ScrollView, Dimensions } from "react-native";
5
+ import { Text } from "@plusscommunities/pluss-core-app/components";
6
+ import { View, TouchableOpacity, Modal, ScrollView, Dimensions, Platform } from "react-native";
7
+ import { SafeAreaProvider, SafeAreaView } from "react-native-safe-area-context";
6
8
  import { connect } from "react-redux";
9
+ import { withSafeAreaInsets } from "react-native-safe-area-context";
7
10
  import _ from "lodash";
8
11
  import { maintenanceActions } from "../apis";
9
12
  import { Colours, Helper } from "../core.config";
10
- import { getJobStatusOptions, getIncompleteJobStatuses, jobPriorityOptions, getDefaultJobPriority } from "../helper";
13
+ import { getJobStatusOptions, jobPriorityOptions, getDefaultJobPriority } from "../helper";
11
14
  import { values } from "../values.config";
12
15
  const SCREEN_HEIGHT = Dimensions.get("window").height;
13
16
  class FilterPopupMenu extends Component {
@@ -20,7 +23,7 @@ class FilterPopupMenu extends Component {
20
23
  value: ""
21
24
  }, {
22
25
  label: "Incomplete",
23
- value: `Unassigned|${getIncompleteJobStatuses(this.props).map(s => s.text).join("|")}`
26
+ value: "Incomplete"
24
27
  }, ...statusOptions.map(s => ({
25
28
  label: s.text,
26
29
  value: s.text
@@ -44,6 +47,9 @@ class FilterPopupMenu extends Component {
44
47
  _defineProperty(this, "getAssignees", async () => {
45
48
  try {
46
49
  const res = await maintenanceActions.getAssignees(this.props.site);
50
+ const newState = {
51
+ loadingAssignees: false
52
+ };
47
53
  let assignees = res.data.Users.map(t => {
48
54
  return {
49
55
  label: t.displayName,
@@ -55,16 +61,17 @@ class FilterPopupMenu extends Component {
55
61
  label: "All",
56
62
  value: ""
57
63
  });
58
- const newState = {
59
- assignees
60
- };
61
64
  if (!assignees.some(a => a.value === this.state.selectedAssignee)) {
62
65
  newState.selectedAssignee = "";
63
66
  }
67
+ newState.assignees = assignees;
64
68
  // console.log('refreshassignees', assignees);
65
69
  this.setState(newState);
66
70
  } catch (error) {
67
71
  console.error("getAssignees", error);
72
+ this.setState({
73
+ loadingAssignees: false
74
+ });
68
75
  }
69
76
  });
70
77
  _defineProperty(this, "refreshTypes", async () => {
@@ -118,7 +125,8 @@ class FilterPopupMenu extends Component {
118
125
  selectedPriority: props.priority || "",
119
126
  selectedType: props.type || "",
120
127
  selectedAssignee: props.assignee || "",
121
- assignees: []
128
+ assignees: [],
129
+ loadingAssignees: true
122
130
  };
123
131
  }
124
132
  componentDidMount() {
@@ -141,14 +149,18 @@ class FilterPopupMenu extends Component {
141
149
  }, title || "Filter By"));
142
150
  }
143
151
  renderCancel() {
152
+ var _this$props$insets;
144
153
  const {
145
154
  colourBrandingMain,
146
155
  cancelText
147
156
  } = this.props;
157
+ const bottom = Platform.OS === "android" ? ((_this$props$insets = this.props.insets) === null || _this$props$insets === void 0 ? void 0 : _this$props$insets.bottom) ?? 0 : 0;
148
158
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
149
159
  onPress: this.onDone
150
160
  }, /*#__PURE__*/React.createElement(View, {
151
- style: styles.cancelContainer
161
+ style: [styles.cancelContainer, bottom > 0 && {
162
+ paddingBottom: 16 + bottom
163
+ }]
152
164
  }, /*#__PURE__*/React.createElement(Text, {
153
165
  style: [styles.cancelText, {
154
166
  color: colourBrandingMain
@@ -187,19 +199,23 @@ class FilterPopupMenu extends Component {
187
199
  render() {
188
200
  // console.log('FilterPopupMenu', JSON.stringify({ category: this.props.user.category, permissions: this.props.user.permissions }, null, 2))
189
201
  const isStaff = this.props.user.category === "staff";
190
- const canFilterAssignee = !_.includes(this.props.user.permissions, values.permissionMaintenanceAssignment);
202
+ const canFilterAssignee = this.props.user.category === "master" || this.props.user.category === "staff" || _.includes(this.props.user.permissions, values.permissionMaintenanceTracking) || _.includes(this.props.user.permissions, values.permissionMaintenanceAssignment);
191
203
  return /*#__PURE__*/React.createElement(Modal, {
192
204
  visible: true,
193
205
  transparent: true,
194
206
  animationType: "slide",
195
207
  onRequestClose: this.onDone
196
- }, /*#__PURE__*/React.createElement(View, {
208
+ }, /*#__PURE__*/React.createElement(SafeAreaProvider, null, /*#__PURE__*/React.createElement(View, {
197
209
  style: styles.container
198
- }, /*#__PURE__*/React.createElement(View, {
199
- style: styles.menu
210
+ }, /*#__PURE__*/React.createElement(SafeAreaView, {
211
+ style: styles.menu,
212
+ edges: ["bottom"]
200
213
  }, this.renderTitle(), /*#__PURE__*/React.createElement(ScrollView, {
201
214
  style: styles.optionContent
202
- }, this.renderOptions("Status", this.getStatusOptions(), "selectedStatus"), isStaff ? this.renderOptions("Priority", this.getPriorityOptions(), "selectedPriority") : null, this.renderOptions("Type", this.state.types, "selectedType"), canFilterAssignee ? this.renderOptions("Assigned To", this.state.assignees, "selectedAssignee") : null), this.renderCancel())));
215
+ }, this.renderOptions("Status", this.getStatusOptions(), "selectedStatus"), isStaff ? this.renderOptions("Priority", this.getPriorityOptions(), "selectedPriority") : null, this.renderOptions("Type", this.state.types, "selectedType"), canFilterAssignee ? this.state.loadingAssignees ? this.renderOptions("Assigned To", [{
216
+ label: "Loading...",
217
+ value: ""
218
+ }], "selectedAssignee") : this.renderOptions("Assigned To", this.state.assignees, "selectedAssignee") : null), this.renderCancel()))));
203
219
  }
204
220
  }
205
221
  const styles = {
@@ -290,5 +306,5 @@ const mapStateToProps = state => {
290
306
  statusTypes: state[values.reducerKey].jobstatuses
291
307
  };
292
308
  };
293
- export default connect(mapStateToProps, {})(FilterPopupMenu);
309
+ export default connect(mapStateToProps, {})(withSafeAreaInsets(FilterPopupMenu));
294
310
  //# sourceMappingURL=FilterPopupMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","View","Text","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 {\n\tView,\n\tText,\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","Platform","SafeAreaProvider","SafeAreaView","connect","withSafeAreaInsets","_","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","newState","loadingAssignees","assignees","data","Users","t","displayName","id","orderBy","splice","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","_this$props$insets","colourBrandingMain","cancelText","bottom","OS","insets","onPress","onDone","cancelContainer","paddingBottom","color","renderOptions","selectedKey","optionsContainer","optionsTitle","selected","backgroundColor","onSelectOption","optionContainer","borderColor","optionText","render","isStaff","user","category","canFilterAssignee","includes","permissions","permissionMaintenanceTracking","permissionMaintenanceAssignment","visible","transparent","animationType","onRequestClose","container","menu","edges","optionContent","position","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\tPlatform,\n} from \"react-native\";\nimport { SafeAreaProvider, SafeAreaView } from \"react-native-safe-area-context\";\nimport { connect } from \"react-redux\";\nimport { withSafeAreaInsets } from \"react-native-safe-area-context\";\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\tloadingAssignees: true,\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\tconst newState = { loadingAssignees: false };\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\tif (!assignees.some((a) => a.value === this.state.selectedAssignee)) {\n\t\t\t\tnewState.selectedAssignee = \"\";\n\t\t\t}\n\t\t\tnewState.assignees = assignees;\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\tthis.setState({ loadingAssignees: false });\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\tconst bottom =\n\t\t\tPlatform.OS === \"android\" ? (this.props.insets?.bottom ?? 0) : 0;\n\t\treturn (\n\t\t\t<TouchableOpacity onPress={this.onDone}>\n\t\t\t\t<View\n\t\t\t\t\tstyle={[\n\t\t\t\t\t\tstyles.cancelContainer,\n\t\t\t\t\t\tbottom > 0 && { paddingBottom: 16 + bottom },\n\t\t\t\t\t]}\n\t\t\t\t>\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 =\n\t\t\tthis.props.user.category === \"master\" ||\n\t\t\tthis.props.user.category === \"staff\" ||\n\t\t\t_.includes(\n\t\t\t\tthis.props.user.permissions,\n\t\t\t\tvalues.permissionMaintenanceTracking,\n\t\t\t) ||\n\t\t\t_.includes(\n\t\t\t\tthis.props.user.permissions,\n\t\t\t\tvalues.permissionMaintenanceAssignment,\n\t\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<SafeAreaProvider>\n\t\t\t\t\t<View style={styles.container}>\n\t\t\t\t\t\t<SafeAreaView style={styles.menu} edges={[\"bottom\"]}>\n\t\t\t\t\t\t\t{this.renderTitle()}\n\t\t\t\t\t\t\t<ScrollView style={styles.optionContent}>\n\t\t\t\t\t\t\t\t{this.renderOptions(\n\t\t\t\t\t\t\t\t\t\"Status\",\n\t\t\t\t\t\t\t\t\tthis.getStatusOptions(),\n\t\t\t\t\t\t\t\t\t\"selectedStatus\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{isStaff\n\t\t\t\t\t\t\t\t\t? this.renderOptions(\n\t\t\t\t\t\t\t\t\t\t\t\"Priority\",\n\t\t\t\t\t\t\t\t\t\t\tthis.getPriorityOptions(),\n\t\t\t\t\t\t\t\t\t\t\t\"selectedPriority\",\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t\t\t{this.renderOptions(\"Type\", this.state.types, \"selectedType\")}\n\t\t\t\t\t\t\t\t{canFilterAssignee\n\t\t\t\t\t\t\t\t\t? this.state.loadingAssignees\n\t\t\t\t\t\t\t\t\t\t? this.renderOptions(\n\t\t\t\t\t\t\t\t\t\t\t\t\"Assigned To\",\n\t\t\t\t\t\t\t\t\t\t\t\t[{ label: \"Loading...\", value: \"\" }],\n\t\t\t\t\t\t\t\t\t\t\t\t\"selectedAssignee\",\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t: this.renderOptions(\n\t\t\t\t\t\t\t\t\t\t\t\t\"Assigned To\",\n\t\t\t\t\t\t\t\t\t\t\t\tthis.state.assignees,\n\t\t\t\t\t\t\t\t\t\t\t\t\"selectedAssignee\",\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t\t{this.renderCancel()}\n\t\t\t\t\t\t</SafeAreaView>\n\t\t\t\t\t</View>\n\t\t\t\t</SafeAreaProvider>\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(\n\tmapStateToProps,\n\t{},\n)(withSafeAreaInsets(FilterPopupMenu));\n"],"mappings":"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","ignoreList":[]}