@plusscommunities/pluss-maintenance-app 6.0.7-auth.0 → 6.0.8-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 (61) hide show
  1. package/dist/module/actions/types.js +4 -3
  2. package/dist/module/actions/types.js.map +1 -1
  3. package/dist/module/apis/maintenanceActions.js +17 -15
  4. package/dist/module/apis/maintenanceActions.js.map +1 -1
  5. package/dist/module/components/MaintenanceList.js +5 -4
  6. package/dist/module/components/MaintenanceList.js.map +1 -1
  7. package/dist/module/components/MaintenanceListItem.js +3 -2
  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/WidgetSmall.js +8 -5
  12. package/dist/module/components/WidgetSmall.js.map +1 -1
  13. package/dist/module/feature.config.js +21 -36
  14. package/dist/module/feature.config.js.map +1 -1
  15. package/dist/module/index.js +15 -10
  16. package/dist/module/index.js.map +1 -1
  17. package/dist/module/reducers/JobsReducer.js +2 -1
  18. package/dist/module/reducers/JobsReducer.js.map +1 -1
  19. package/dist/module/screens/MaintenancePage.js +7 -3
  20. package/dist/module/screens/MaintenancePage.js.map +1 -1
  21. package/dist/module/screens/RequestDetail.js +106 -31
  22. package/dist/module/screens/RequestDetail.js.map +1 -1
  23. package/dist/module/screens/RequestNotes.js +2 -1
  24. package/dist/module/screens/RequestNotes.js.map +1 -1
  25. package/dist/module/screens/ServiceRequest.js +581 -86
  26. package/dist/module/screens/ServiceRequest.js.map +1 -1
  27. package/dist/module/values.config.a.js +30 -0
  28. package/dist/module/values.config.a.js.map +1 -0
  29. package/dist/module/values.config.b.js +30 -0
  30. package/dist/module/values.config.b.js.map +1 -0
  31. package/dist/module/values.config.c.js +30 -0
  32. package/dist/module/values.config.c.js.map +1 -0
  33. package/dist/module/values.config.d.js +30 -0
  34. package/dist/module/values.config.d.js.map +1 -0
  35. package/dist/module/values.config.default.js +35 -0
  36. package/dist/module/values.config.default.js.map +1 -0
  37. package/dist/module/values.config.forms.js +35 -0
  38. package/dist/module/values.config.forms.js.map +1 -0
  39. package/dist/module/values.config.js +35 -0
  40. package/dist/module/values.config.js.map +1 -0
  41. package/package.json +9 -6
  42. package/src/actions/types.js +5 -3
  43. package/src/apis/maintenanceActions.js +30 -14
  44. package/src/components/MaintenanceList.js +6 -4
  45. package/src/components/MaintenanceListItem.js +7 -2
  46. package/src/components/MaintenanceWidgetItem.js +2 -1
  47. package/src/components/WidgetSmall.js +8 -5
  48. package/src/feature.config.js +30 -40
  49. package/src/index.js +15 -8
  50. package/src/reducers/JobsReducer.js +2 -1
  51. package/src/screens/MaintenancePage.js +5 -4
  52. package/src/screens/RequestDetail.js +101 -33
  53. package/src/screens/RequestNotes.js +2 -1
  54. package/src/screens/ServiceRequest.js +625 -152
  55. package/src/values.config.a.js +30 -0
  56. package/src/values.config.b.js +30 -0
  57. package/src/values.config.c.js +30 -0
  58. package/src/values.config.d.js +30 -0
  59. package/src/values.config.default.js +35 -0
  60. package/src/values.config.forms.js +35 -0
  61. package/src/values.config.js +35 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Text","View","ScrollView","StyleSheet","connect","_","maintenanceActions","jobsLoaded","MaintenanceWidgetItem","Services","Colours","Components","Config","MAX_ITEMS","WidgetSmall","constructor","props","_defineProperty","options","isEmpty","Title","env","strings","MAINTENANCE","userCategory","EmptyText","EMPTY_REQUESTS_STAFF","EMPTY_REQUESTS_USER","onLoadingChanged","res","getJobsRecursive","site","error","console","log","loading","callback","setState","state","navigation","navigate","componentDidMount","refresh","componentDidUpdate","prevProps","dataUpdated","renderContent","jobs","createElement","style","styles","loadingPadding","LoadingStateWidget","height","EmptyStateWidget","title","getEmptyStateText","horizontal","contentContainerStyle","paddingLeft","paddingRight","showsHorizontalScrollIndicator","slice","map","job","key","id","render","colourBrandingMain","sectionContainer","sectionPadding","sectionHeading","sectionTitle","getTitle","InlineButton","onPress","onPressAll","color","touchableStyle","paddingTop","textStyle","create","backgroundColor","paddingHorizontal","paddingBottom","marginBottom","flexDirection","alignContent","justifyContent","fontFamily","fontSize","TEXT_DARKEST","mapStateToProps","user","notifications","getMainBrandingColourFromState","orderBy","category","forwardRef"],"sources":["WidgetSmall.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Text, View, ScrollView, StyleSheet } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { maintenanceActions } from '../apis';\nimport { jobsLoaded } from '../actions';\nimport MaintenanceWidgetItem from './MaintenanceWidgetItem';\nimport { Services } from '../feature.config';\nimport { Colours, Components, Config } from '../core.config';\n\nconst MAX_ITEMS = 10;\n\nclass WidgetSmall extends Component {\n constructor(props) {\n super(props);\n this.state = { loading: false };\n }\n\n componentDidMount() {\n this.refresh();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();\n }\n\n getTitle = () => {\n const { options } = this.props;\n if (options && !_.isEmpty(options.Title)) return options.Title;\n return Config.env.strings.MAINTENANCE;\n };\n\n getEmptyStateText = () => {\n const { options, userCategory } = this.props;\n if (options && !_.isEmpty(options.EmptyText)) return options.EmptyText;\n return userCategory === 'staff' ? Config.env.strings.EMPTY_REQUESTS_STAFF : Config.env.strings.EMPTY_REQUESTS_USER;\n };\n\n refresh = () => {\n this.onLoadingChanged(true, async () => {\n try {\n const res = await maintenanceActions.getJobsRecursive(this.props.site);\n // console.log('WidgetSmall - refresh', res.data);\n this.props.jobsLoaded(res);\n } catch (error) {\n console.log('refresh error', error);\n } finally {\n this.onLoadingChanged(false);\n }\n });\n };\n\n onLoadingChanged = (loading, callback) => {\n this.setState({ loading }, () => {\n if (this.props.onLoadingChanged) this.props.onLoadingChanged(this.state.loading);\n if (callback) callback();\n });\n };\n\n onPressAll = () => {\n Services.navigation.navigate('maintenance', { options: this.props.options });\n };\n\n renderContent() {\n const { jobs } = this.props;\n if (_.isEmpty(jobs)) {\n if (this.state.loading) {\n return (\n <View style={styles.loadingPadding}>\n <Components.LoadingStateWidget height={180} />\n </View>\n );\n }\n return (\n <View style={styles.loadingPadding}>\n <Components.EmptyStateWidget title={this.getEmptyStateText()} height={180} />\n </View>\n );\n }\n return (\n <ScrollView horizontal contentContainerStyle={{ paddingLeft: 6, paddingRight: 8 }} showsHorizontalScrollIndicator={false}>\n {jobs.slice(0, MAX_ITEMS).map(job => {\n return <MaintenanceWidgetItem key={job.id} job={job} />;\n })}\n </ScrollView>\n );\n }\n\n render() {\n const { colourBrandingMain } = this.props;\n\n return (\n <View style={styles.sectionContainer}>\n <View style={styles.sectionPadding}>\n <View style={styles.sectionHeading}>\n <Text style={styles.sectionTitle}>{this.getTitle()}</Text>\n <Components.InlineButton\n onPress={this.onPressAll}\n color={colourBrandingMain}\n touchableStyle={{ paddingTop: 6 }}\n textStyle={{ color: '#fff' }}\n >\n View All\n </Components.InlineButton>\n </View>\n </View>\n {this.renderContent()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n sectionContainer: {\n backgroundColor: '#fff',\n paddingTop: 16,\n },\n sectionPadding: {\n paddingHorizontal: 16,\n paddingBottom: 6,\n },\n loadingPadding: {\n paddingHorizontal: 16,\n },\n sectionHeading: {\n marginBottom: 4,\n flexDirection: 'row',\n alignContent: 'flex-start',\n justifyContent: 'space-between',\n },\n sectionTitle: {\n fontFamily: 'sf-bold',\n fontSize: 24,\n color: Colours.TEXT_DARKEST,\n },\n});\n\nconst mapStateToProps = state => {\n const { user, jobs, notifications } = state;\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n jobs: _.orderBy(jobs.jobs, ['createdUnix'], ['desc']),\n site: user.site,\n userCategory: user.category,\n dataUpdated: notifications.dataUpdated.jobs,\n };\n};\n\nexport default connect(mapStateToProps, { jobsLoaded }, null, { forwardRef: true })(WidgetSmall);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","Text","View","ScrollView","StyleSheet","connect","_","maintenanceActions","jobsLoaded","MaintenanceWidgetItem","Services","Colours","Components","Config","values","MAX_ITEMS","WidgetSmall","constructor","props","_defineProperty","options","isEmpty","Title","strings","featureKey","textFeatureTitle","userCategory","EmptyText","emptyRequestsStaff","emptyRequestsUser","onLoadingChanged","res","getJobsRecursive","site","error","console","log","loading","callback","setState","state","navigation","navigate","screenMaintenance","componentDidMount","refresh","componentDidUpdate","prevProps","dataUpdated","renderContent","jobs","createElement","style","styles","loadingPadding","LoadingStateWidget","height","EmptyStateWidget","title","getEmptyStateText","horizontal","contentContainerStyle","paddingLeft","paddingRight","showsHorizontalScrollIndicator","slice","map","job","key","id","render","colourBrandingMain","sectionContainer","sectionPadding","sectionHeading","sectionTitle","getTitle","InlineButton","onPress","onPressAll","color","touchableStyle","paddingTop","textStyle","create","backgroundColor","paddingHorizontal","paddingBottom","marginBottom","flexDirection","alignContent","justifyContent","fontFamily","fontSize","TEXT_DARKEST","mapStateToProps","_state$strings","user","notifications","reducerKey","getMainBrandingColourFromState","orderBy","category","updateKey","config","forwardRef"],"sources":["WidgetSmall.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Text, View, ScrollView, StyleSheet } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { maintenanceActions } from '../apis';\nimport { jobsLoaded } from '../actions';\nimport MaintenanceWidgetItem from './MaintenanceWidgetItem';\nimport { Services } from '../feature.config';\nimport { Colours, Components, Config } from '../core.config';\nimport { values } from '../values.config';\n\nconst MAX_ITEMS = 10;\n\nclass WidgetSmall extends Component {\n constructor(props) {\n super(props);\n this.state = { loading: false };\n }\n\n componentDidMount() {\n this.refresh();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();\n }\n\n getTitle = () => {\n const { options } = this.props;\n if (options && !_.isEmpty(options.Title)) return options.Title;\n return this.props.strings[`${values.featureKey}_textFeatureTitle`] || values.textFeatureTitle;\n };\n\n getEmptyStateText = () => {\n const { options, userCategory } = this.props;\n if (options && !_.isEmpty(options.EmptyText)) return options.EmptyText;\n return userCategory === 'staff' ? values.emptyRequestsStaff : values.emptyRequestsUser;\n };\n\n refresh = () => {\n this.onLoadingChanged(true, async () => {\n try {\n const res = await maintenanceActions.getJobsRecursive(this.props.site);\n // console.log('WidgetSmall - refresh', res.data);\n this.props.jobsLoaded(res);\n } catch (error) {\n console.log('refresh error', error);\n } finally {\n this.onLoadingChanged(false);\n }\n });\n };\n\n onLoadingChanged = (loading, callback) => {\n this.setState({ loading }, () => {\n if (this.props.onLoadingChanged) this.props.onLoadingChanged(this.state.loading);\n if (callback) callback();\n });\n };\n\n onPressAll = () => {\n Services.navigation.navigate(values.screenMaintenance, { options: this.props.options });\n };\n\n renderContent() {\n const { jobs } = this.props;\n if (_.isEmpty(jobs)) {\n if (this.state.loading) {\n return (\n <View style={styles.loadingPadding}>\n <Components.LoadingStateWidget height={180} />\n </View>\n );\n }\n return (\n <View style={styles.loadingPadding}>\n <Components.EmptyStateWidget title={this.getEmptyStateText()} height={180} />\n </View>\n );\n }\n return (\n <ScrollView horizontal contentContainerStyle={{ paddingLeft: 6, paddingRight: 8 }} showsHorizontalScrollIndicator={false}>\n {jobs.slice(0, MAX_ITEMS).map(job => {\n return <MaintenanceWidgetItem key={job.id} job={job} />;\n })}\n </ScrollView>\n );\n }\n\n render() {\n const { colourBrandingMain } = this.props;\n\n return (\n <View style={styles.sectionContainer}>\n <View style={styles.sectionPadding}>\n <View style={styles.sectionHeading}>\n <Text style={styles.sectionTitle}>{this.getTitle()}</Text>\n <Components.InlineButton\n onPress={this.onPressAll}\n color={colourBrandingMain}\n touchableStyle={{ paddingTop: 6 }}\n textStyle={{ color: '#fff' }}\n >\n View All\n </Components.InlineButton>\n </View>\n </View>\n {this.renderContent()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n sectionContainer: {\n backgroundColor: '#fff',\n paddingTop: 16,\n },\n sectionPadding: {\n paddingHorizontal: 16,\n paddingBottom: 6,\n },\n loadingPadding: {\n paddingHorizontal: 16,\n },\n sectionHeading: {\n marginBottom: 4,\n flexDirection: 'row',\n alignContent: 'flex-start',\n justifyContent: 'space-between',\n },\n sectionTitle: {\n fontFamily: 'sf-bold',\n fontSize: 24,\n color: Colours.TEXT_DARKEST,\n },\n});\n\nconst mapStateToProps = state => {\n const { user, notifications } = state;\n const jobs = state[values.reducerKey];\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n jobs: _.orderBy(jobs.jobs, ['createdUnix'], ['desc']),\n site: user.site,\n userCategory: user.category,\n dataUpdated: notifications.dataUpdated[values.updateKey],\n strings: state.strings?.config || {},\n };\n};\n\nexport default connect(mapStateToProps, { jobsLoaded }, null, { forwardRef: true })(WidgetSmall);\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  // import * as PlussCore from '../../pluss-core/src';
2
2
  import * as PlussCore from '@plusscommunities/pluss-core-app';
3
+ import { values } from './values.config';
3
4
  export const Services = {
4
5
  navigation: null
5
6
  };
@@ -7,28 +8,28 @@ export const BaseComponents = {
7
8
  NotificationBell: null
8
9
  };
9
10
  const FeatureConfig = {
10
- key: 'maintenance',
11
- aliases: ['maintenanceRequest'],
12
- title: 'Request',
11
+ key: values.featureKey,
12
+ aliases: values.aliases,
13
+ title: values.textFeatureTitle,
13
14
  gridMenu: {
14
- icon: 'maintenance',
15
- viewBox: '0 0 30 30',
16
- navigate: 'maintenance'
15
+ icon: values.iconGridMenu,
16
+ viewBox: values.gridViewBox,
17
+ navigate: values.screenMaintenance
17
18
  },
18
19
  addMenu: {
19
- order: 5,
20
- icon: 'request',
21
- title: 'Request',
22
- navigate: 'serviceRequest',
20
+ order: values.orderAddMenu,
21
+ icon: values.iconAddMenu,
22
+ title: values.textAddMenuTitle,
23
+ navigate: values.screenServiceRequest,
23
24
  visibleExps: {
24
25
  type: 'feature',
25
- value: 'maintenance'
26
+ value: values.featureKey
26
27
  }
27
28
  },
28
- moreMenu: {
29
- order: 4,
30
- title: 'Request',
31
- navigate: 'maintenance',
29
+ moreMenu: values.hasMoreOption ? {
30
+ order: values.orderMoreMenu,
31
+ title: values.textMoreMenuTitle,
32
+ navigate: values.screenMaintenance,
32
33
  visibleExps: {
33
34
  type: 'and',
34
35
  exps: [{
@@ -39,12 +40,12 @@ const FeatureConfig = {
39
40
  value: 'KIOSK'
40
41
  }]
41
42
  }
42
- },
43
+ } : undefined,
43
44
  kioskAction: {
44
- order: 1,
45
- icon: 'wrench',
46
- title: 'Request',
47
- navigate: 'serviceRequest'
45
+ order: values.orderKioskAction,
46
+ icon: values.iconKioskAction,
47
+ title: values.textKioskActionTitle,
48
+ navigate: values.screenServiceRequest
48
49
  },
49
50
  hideTabBar: [],
50
51
  env: {
@@ -68,22 +69,6 @@ const FeatureConfig = {
68
69
  Services.navigation = navigation;
69
70
  BaseComponents.NotificationBell = notificationBell;
70
71
  PlussCore.Config.init(environment, navigation);
71
-
72
- // Override strings
73
- if (environment && environment.strings) {
74
- const {
75
- MAINTENANCE,
76
- MAINTENANCE_REQUEST
77
- } = environment.strings;
78
- if (MAINTENANCE) {
79
- FeatureConfig.addMenu.title = MAINTENANCE;
80
- }
81
- if (MAINTENANCE_REQUEST) {
82
- FeatureConfig.title = MAINTENANCE_REQUEST;
83
- FeatureConfig.moreMenu.title = MAINTENANCE_REQUEST;
84
- FeatureConfig.kioskAction.title = MAINTENANCE_REQUEST;
85
- }
86
- }
87
72
  }
88
73
  };
89
74
  export default FeatureConfig;
@@ -1 +1 @@
1
- {"version":3,"names":["PlussCore","Services","navigation","BaseComponents","NotificationBell","FeatureConfig","key","aliases","title","gridMenu","icon","viewBox","navigate","addMenu","order","visibleExps","type","value","moreMenu","exps","kioskAction","hideTabBar","env","baseStage","baseAPIUrl","hasGradientHeader","defaultProfileImage","tinyChatDefault","baseUploadsUrl","allowMediaDownload","allowMediaSharing","awsUploadsBucket","awsStorageBucket","preferredSite","strings","newEventDefaults","defaultAllowComments","init","environment","notificationBell","Config","MAINTENANCE","MAINTENANCE_REQUEST"],"sources":["feature.config.js"],"sourcesContent":["// import * as PlussCore from '../../pluss-core/src';\nimport * as PlussCore from '@plusscommunities/pluss-core-app';\n\nexport const Services = {\n navigation: null,\n};\n\nexport const BaseComponents = {\n NotificationBell: null,\n};\n\nconst FeatureConfig = {\n key: 'maintenance',\n aliases: ['maintenanceRequest'],\n title: 'Request',\n gridMenu: {\n icon: 'maintenance',\n viewBox: '0 0 30 30',\n navigate: 'maintenance',\n },\n addMenu: {\n order: 5,\n icon: 'request',\n title: 'Request',\n navigate: 'serviceRequest',\n visibleExps: { type: 'feature', value: 'maintenance' },\n },\n moreMenu: {\n order: 4,\n title: 'Request',\n navigate: 'maintenance',\n visibleExps: {\n type: 'and',\n exps: [\n { type: 'notHidden', value: 'maintenanceRequest' },\n { type: 'notUserType', value: 'KIOSK' },\n ],\n },\n },\n kioskAction: {\n order: 1,\n icon: 'wrench',\n title: 'Request',\n navigate: 'serviceRequest',\n },\n hideTabBar: [],\n env: {\n baseStage: '',\n baseAPIUrl: '',\n hasGradientHeader: false,\n defaultProfileImage: '',\n tinyChatDefault: '',\n baseUploadsUrl: '',\n allowMediaDownload: false,\n allowMediaSharing: false,\n awsUploadsBucket: '',\n awsStorageBucket: '',\n preferredSite: '',\n strings: {},\n newEventDefaults: '',\n defaultAllowComments: true,\n },\n init: (environment, navigation, notificationBell) => {\n FeatureConfig.env = environment;\n Services.navigation = navigation;\n BaseComponents.NotificationBell = notificationBell;\n PlussCore.Config.init(environment, navigation);\n\n // Override strings\n if (environment && environment.strings) {\n const { MAINTENANCE, MAINTENANCE_REQUEST } = environment.strings;\n if (MAINTENANCE) {\n FeatureConfig.addMenu.title = MAINTENANCE;\n }\n if (MAINTENANCE_REQUEST) {\n FeatureConfig.title = MAINTENANCE_REQUEST;\n FeatureConfig.moreMenu.title = MAINTENANCE_REQUEST;\n FeatureConfig.kioskAction.title = MAINTENANCE_REQUEST;\n }\n }\n },\n};\nexport default FeatureConfig;\n"],"mappings":"AAAA;AACA,OAAO,KAAKA,SAAS,MAAM,kCAAkC;AAE7D,OAAO,MAAMC,QAAQ,GAAG;EACtBC,UAAU,EAAE;AACd,CAAC;AAED,OAAO,MAAMC,cAAc,GAAG;EAC5BC,gBAAgB,EAAE;AACpB,CAAC;AAED,MAAMC,aAAa,GAAG;EACpBC,GAAG,EAAE,aAAa;EAClBC,OAAO,EAAE,CAAC,oBAAoB,CAAC;EAC/BC,KAAK,EAAE,SAAS;EAChBC,QAAQ,EAAE;IACRC,IAAI,EAAE,aAAa;IACnBC,OAAO,EAAE,WAAW;IACpBC,QAAQ,EAAE;EACZ,CAAC;EACDC,OAAO,EAAE;IACPC,KAAK,EAAE,CAAC;IACRJ,IAAI,EAAE,SAAS;IACfF,KAAK,EAAE,SAAS;IAChBI,QAAQ,EAAE,gBAAgB;IAC1BG,WAAW,EAAE;MAAEC,IAAI,EAAE,SAAS;MAAEC,KAAK,EAAE;IAAc;EACvD,CAAC;EACDC,QAAQ,EAAE;IACRJ,KAAK,EAAE,CAAC;IACRN,KAAK,EAAE,SAAS;IAChBI,QAAQ,EAAE,aAAa;IACvBG,WAAW,EAAE;MACXC,IAAI,EAAE,KAAK;MACXG,IAAI,EAAE,CACJ;QAAEH,IAAI,EAAE,WAAW;QAAEC,KAAK,EAAE;MAAqB,CAAC,EAClD;QAAED,IAAI,EAAE,aAAa;QAAEC,KAAK,EAAE;MAAQ,CAAC;IAE3C;EACF,CAAC;EACDG,WAAW,EAAE;IACXN,KAAK,EAAE,CAAC;IACRJ,IAAI,EAAE,QAAQ;IACdF,KAAK,EAAE,SAAS;IAChBI,QAAQ,EAAE;EACZ,CAAC;EACDS,UAAU,EAAE,EAAE;EACdC,GAAG,EAAE;IACHC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE,EAAE;IACdC,iBAAiB,EAAE,KAAK;IACxBC,mBAAmB,EAAE,EAAE;IACvBC,eAAe,EAAE,EAAE;IACnBC,cAAc,EAAE,EAAE;IAClBC,kBAAkB,EAAE,KAAK;IACzBC,iBAAiB,EAAE,KAAK;IACxBC,gBAAgB,EAAE,EAAE;IACpBC,gBAAgB,EAAE,EAAE;IACpBC,aAAa,EAAE,EAAE;IACjBC,OAAO,EAAE,CAAC,CAAC;IACXC,gBAAgB,EAAE,EAAE;IACpBC,oBAAoB,EAAE;EACxB,CAAC;EACDC,IAAI,EAAEA,CAACC,WAAW,EAAEpC,UAAU,EAAEqC,gBAAgB,KAAK;IACnDlC,aAAa,CAACiB,GAAG,GAAGgB,WAAW;IAC/BrC,QAAQ,CAACC,UAAU,GAAGA,UAAU;IAChCC,cAAc,CAACC,gBAAgB,GAAGmC,gBAAgB;IAClDvC,SAAS,CAACwC,MAAM,CAACH,IAAI,CAACC,WAAW,EAAEpC,UAAU,CAAC;;IAE9C;IACA,IAAIoC,WAAW,IAAIA,WAAW,CAACJ,OAAO,EAAE;MACtC,MAAM;QAAEO,WAAW;QAAEC;MAAoB,CAAC,GAAGJ,WAAW,CAACJ,OAAO;MAChE,IAAIO,WAAW,EAAE;QACfpC,aAAa,CAACQ,OAAO,CAACL,KAAK,GAAGiC,WAAW;MAC3C;MACA,IAAIC,mBAAmB,EAAE;QACvBrC,aAAa,CAACG,KAAK,GAAGkC,mBAAmB;QACzCrC,aAAa,CAACa,QAAQ,CAACV,KAAK,GAAGkC,mBAAmB;QAClDrC,aAAa,CAACe,WAAW,CAACZ,KAAK,GAAGkC,mBAAmB;MACvD;IACF;EACF;AACF,CAAC;AACD,eAAerC,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["PlussCore","values","Services","navigation","BaseComponents","NotificationBell","FeatureConfig","key","featureKey","aliases","title","textFeatureTitle","gridMenu","icon","iconGridMenu","viewBox","gridViewBox","navigate","screenMaintenance","addMenu","order","orderAddMenu","iconAddMenu","textAddMenuTitle","screenServiceRequest","visibleExps","type","value","moreMenu","hasMoreOption","orderMoreMenu","textMoreMenuTitle","exps","undefined","kioskAction","orderKioskAction","iconKioskAction","textKioskActionTitle","hideTabBar","env","baseStage","baseAPIUrl","hasGradientHeader","defaultProfileImage","tinyChatDefault","baseUploadsUrl","allowMediaDownload","allowMediaSharing","awsUploadsBucket","awsStorageBucket","preferredSite","strings","newEventDefaults","defaultAllowComments","init","environment","notificationBell","Config"],"sources":["feature.config.js"],"sourcesContent":["// import * as PlussCore from '../../pluss-core/src';\nimport * as PlussCore from '@plusscommunities/pluss-core-app';\nimport { values } from './values.config';\n\nexport const Services = {\n navigation: null,\n};\n\nexport const BaseComponents = {\n NotificationBell: null,\n};\n\nconst FeatureConfig = {\n key: values.featureKey,\n aliases: values.aliases,\n title: values.textFeatureTitle,\n gridMenu: {\n icon: values.iconGridMenu,\n viewBox: values.gridViewBox,\n navigate: values.screenMaintenance,\n },\n addMenu: {\n order: values.orderAddMenu,\n icon: values.iconAddMenu,\n title: values.textAddMenuTitle,\n navigate: values.screenServiceRequest,\n visibleExps: { type: 'feature', value: values.featureKey },\n },\n moreMenu: values.hasMoreOption\n ? {\n order: values.orderMoreMenu,\n title: values.textMoreMenuTitle,\n navigate: values.screenMaintenance,\n visibleExps: {\n type: 'and',\n exps: [\n { type: 'notHidden', value: 'maintenanceRequest' },\n { type: 'notUserType', value: 'KIOSK' },\n ],\n },\n }\n : undefined,\n kioskAction: {\n order: values.orderKioskAction,\n icon: values.iconKioskAction,\n title: values.textKioskActionTitle,\n navigate: values.screenServiceRequest,\n },\n hideTabBar: [],\n env: {\n baseStage: '',\n baseAPIUrl: '',\n hasGradientHeader: false,\n defaultProfileImage: '',\n tinyChatDefault: '',\n baseUploadsUrl: '',\n allowMediaDownload: false,\n allowMediaSharing: false,\n awsUploadsBucket: '',\n awsStorageBucket: '',\n preferredSite: '',\n strings: {},\n newEventDefaults: '',\n defaultAllowComments: true,\n },\n init: (environment, navigation, notificationBell) => {\n FeatureConfig.env = environment;\n Services.navigation = navigation;\n BaseComponents.NotificationBell = notificationBell;\n PlussCore.Config.init(environment, navigation);\n },\n};\nexport default FeatureConfig;\n"],"mappings":"AAAA;AACA,OAAO,KAAKA,SAAS,MAAM,kCAAkC;AAC7D,SAASC,MAAM,QAAQ,iBAAiB;AAExC,OAAO,MAAMC,QAAQ,GAAG;EACtBC,UAAU,EAAE;AACd,CAAC;AAED,OAAO,MAAMC,cAAc,GAAG;EAC5BC,gBAAgB,EAAE;AACpB,CAAC;AAED,MAAMC,aAAa,GAAG;EACpBC,GAAG,EAAEN,MAAM,CAACO,UAAU;EACtBC,OAAO,EAAER,MAAM,CAACQ,OAAO;EACvBC,KAAK,EAAET,MAAM,CAACU,gBAAgB;EAC9BC,QAAQ,EAAE;IACRC,IAAI,EAAEZ,MAAM,CAACa,YAAY;IACzBC,OAAO,EAAEd,MAAM,CAACe,WAAW;IAC3BC,QAAQ,EAAEhB,MAAM,CAACiB;EACnB,CAAC;EACDC,OAAO,EAAE;IACPC,KAAK,EAAEnB,MAAM,CAACoB,YAAY;IAC1BR,IAAI,EAAEZ,MAAM,CAACqB,WAAW;IACxBZ,KAAK,EAAET,MAAM,CAACsB,gBAAgB;IAC9BN,QAAQ,EAAEhB,MAAM,CAACuB,oBAAoB;IACrCC,WAAW,EAAE;MAAEC,IAAI,EAAE,SAAS;MAAEC,KAAK,EAAE1B,MAAM,CAACO;IAAW;EAC3D,CAAC;EACDoB,QAAQ,EAAE3B,MAAM,CAAC4B,aAAa,GAC1B;IACET,KAAK,EAAEnB,MAAM,CAAC6B,aAAa;IAC3BpB,KAAK,EAAET,MAAM,CAAC8B,iBAAiB;IAC/Bd,QAAQ,EAAEhB,MAAM,CAACiB,iBAAiB;IAClCO,WAAW,EAAE;MACXC,IAAI,EAAE,KAAK;MACXM,IAAI,EAAE,CACJ;QAAEN,IAAI,EAAE,WAAW;QAAEC,KAAK,EAAE;MAAqB,CAAC,EAClD;QAAED,IAAI,EAAE,aAAa;QAAEC,KAAK,EAAE;MAAQ,CAAC;IAE3C;EACF,CAAC,GACDM,SAAS;EACbC,WAAW,EAAE;IACXd,KAAK,EAAEnB,MAAM,CAACkC,gBAAgB;IAC9BtB,IAAI,EAAEZ,MAAM,CAACmC,eAAe;IAC5B1B,KAAK,EAAET,MAAM,CAACoC,oBAAoB;IAClCpB,QAAQ,EAAEhB,MAAM,CAACuB;EACnB,CAAC;EACDc,UAAU,EAAE,EAAE;EACdC,GAAG,EAAE;IACHC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE,EAAE;IACdC,iBAAiB,EAAE,KAAK;IACxBC,mBAAmB,EAAE,EAAE;IACvBC,eAAe,EAAE,EAAE;IACnBC,cAAc,EAAE,EAAE;IAClBC,kBAAkB,EAAE,KAAK;IACzBC,iBAAiB,EAAE,KAAK;IACxBC,gBAAgB,EAAE,EAAE;IACpBC,gBAAgB,EAAE,EAAE;IACpBC,aAAa,EAAE,EAAE;IACjBC,OAAO,EAAE,CAAC,CAAC;IACXC,gBAAgB,EAAE,EAAE;IACpBC,oBAAoB,EAAE;EACxB,CAAC;EACDC,IAAI,EAAEA,CAACC,WAAW,EAAEpD,UAAU,EAAEqD,gBAAgB,KAAK;IACnDlD,aAAa,CAACiC,GAAG,GAAGgB,WAAW;IAC/BrD,QAAQ,CAACC,UAAU,GAAGA,UAAU;IAChCC,cAAc,CAACC,gBAAgB,GAAGmD,gBAAgB;IAClDxD,SAAS,CAACyD,MAAM,CAACH,IAAI,CAACC,WAAW,EAAEpD,UAAU,CAAC;EAChD;AACF,CAAC;AACD,eAAeG,aAAa","ignoreList":[]}
@@ -4,16 +4,21 @@ import ServiceRequest from './screens/ServiceRequest';
4
4
  import JobTypePicker from './screens/JobTypePicker';
5
5
  import RequestNotes from './screens/RequestNotes';
6
6
  import JobsReducer from './reducers/JobsReducer';
7
- export const Reducers = {
8
- jobs: JobsReducer
9
- };
10
- export const Screens = {
11
- maintenance: MaintenancePage,
12
- requestDetail: RequestDetail,
13
- serviceRequest: ServiceRequest,
14
- jobTypePicker: JobTypePicker,
15
- requestNotes: RequestNotes
16
- };
7
+ import { values } from './values.config';
8
+ export const Reducers = (() => {
9
+ const reducers = {};
10
+ reducers[values.reducerKey] = JobsReducer;
11
+ return reducers;
12
+ })();
13
+ export const Screens = (() => {
14
+ const screens = {};
15
+ screens[values.screenMaintenance] = MaintenancePage;
16
+ screens[values.screenRequestDetail] = RequestDetail;
17
+ screens[values.screenServiceRequest] = ServiceRequest;
18
+ screens[values.screenJobTypePicker] = JobTypePicker;
19
+ screens[values.screenRequestNotes] = RequestNotes;
20
+ return screens;
21
+ })();
17
22
  export { default as Config } from './feature.config';
18
23
  export { default as WidgetSmall } from './components/WidgetSmall';
19
24
  export { default as WidgetLarge } from './components/WidgetLarge';
@@ -1 +1 @@
1
- {"version":3,"names":["MaintenancePage","RequestDetail","ServiceRequest","JobTypePicker","RequestNotes","JobsReducer","Reducers","jobs","Screens","maintenance","requestDetail","serviceRequest","jobTypePicker","requestNotes","default","Config","WidgetSmall","WidgetLarge"],"sources":["index.js"],"sourcesContent":["import MaintenancePage from './screens/MaintenancePage';\nimport RequestDetail from './screens/RequestDetail';\nimport ServiceRequest from './screens/ServiceRequest';\nimport JobTypePicker from './screens/JobTypePicker';\nimport RequestNotes from './screens/RequestNotes';\nimport JobsReducer from './reducers/JobsReducer';\n\nexport const Reducers = { jobs: JobsReducer };\nexport const Screens = {\n maintenance: MaintenancePage,\n requestDetail: RequestDetail,\n serviceRequest: ServiceRequest,\n jobTypePicker: JobTypePicker,\n requestNotes: RequestNotes,\n};\nexport { default as Config } from './feature.config';\nexport { default as WidgetSmall } from './components/WidgetSmall';\nexport { default as WidgetLarge } from './components/WidgetLarge';\n"],"mappings":"AAAA,OAAOA,eAAe,MAAM,2BAA2B;AACvD,OAAOC,aAAa,MAAM,yBAAyB;AACnD,OAAOC,cAAc,MAAM,0BAA0B;AACrD,OAAOC,aAAa,MAAM,yBAAyB;AACnD,OAAOC,YAAY,MAAM,wBAAwB;AACjD,OAAOC,WAAW,MAAM,wBAAwB;AAEhD,OAAO,MAAMC,QAAQ,GAAG;EAAEC,IAAI,EAAEF;AAAY,CAAC;AAC7C,OAAO,MAAMG,OAAO,GAAG;EACrBC,WAAW,EAAET,eAAe;EAC5BU,aAAa,EAAET,aAAa;EAC5BU,cAAc,EAAET,cAAc;EAC9BU,aAAa,EAAET,aAAa;EAC5BU,YAAY,EAAET;AAChB,CAAC;AACD,SAASU,OAAO,IAAIC,MAAM,QAAQ,kBAAkB;AACpD,SAASD,OAAO,IAAIE,WAAW,QAAQ,0BAA0B;AACjE,SAASF,OAAO,IAAIG,WAAW,QAAQ,0BAA0B","ignoreList":[]}
1
+ {"version":3,"names":["MaintenancePage","RequestDetail","ServiceRequest","JobTypePicker","RequestNotes","JobsReducer","values","Reducers","reducers","reducerKey","Screens","screens","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","default","Config","WidgetSmall","WidgetLarge"],"sources":["index.js"],"sourcesContent":["import MaintenancePage from './screens/MaintenancePage';\nimport RequestDetail from './screens/RequestDetail';\nimport ServiceRequest from './screens/ServiceRequest';\nimport JobTypePicker from './screens/JobTypePicker';\nimport RequestNotes from './screens/RequestNotes';\nimport JobsReducer from './reducers/JobsReducer';\nimport { values } from './values.config';\n\nexport const Reducers = (() => {\n const reducers = {};\n reducers[values.reducerKey] = JobsReducer;\n return reducers;\n})();\nexport const Screens = (() => {\n const screens = {};\n screens[values.screenMaintenance] = MaintenancePage;\n screens[values.screenRequestDetail] = RequestDetail;\n screens[values.screenServiceRequest] = ServiceRequest;\n screens[values.screenJobTypePicker] = JobTypePicker;\n screens[values.screenRequestNotes] = RequestNotes;\n return screens;\n})();\nexport { default as Config } from './feature.config';\nexport { default as WidgetSmall } from './components/WidgetSmall';\nexport { default as WidgetLarge } from './components/WidgetLarge';\n"],"mappings":"AAAA,OAAOA,eAAe,MAAM,2BAA2B;AACvD,OAAOC,aAAa,MAAM,yBAAyB;AACnD,OAAOC,cAAc,MAAM,0BAA0B;AACrD,OAAOC,aAAa,MAAM,yBAAyB;AACnD,OAAOC,YAAY,MAAM,wBAAwB;AACjD,OAAOC,WAAW,MAAM,wBAAwB;AAChD,SAASC,MAAM,QAAQ,iBAAiB;AAExC,OAAO,MAAMC,QAAQ,GAAG,CAAC,MAAM;EAC7B,MAAMC,QAAQ,GAAG,CAAC,CAAC;EACnBA,QAAQ,CAACF,MAAM,CAACG,UAAU,CAAC,GAAGJ,WAAW;EACzC,OAAOG,QAAQ;AACjB,CAAC,EAAE,CAAC;AACJ,OAAO,MAAME,OAAO,GAAG,CAAC,MAAM;EAC5B,MAAMC,OAAO,GAAG,CAAC,CAAC;EAClBA,OAAO,CAACL,MAAM,CAACM,iBAAiB,CAAC,GAAGZ,eAAe;EACnDW,OAAO,CAACL,MAAM,CAACO,mBAAmB,CAAC,GAAGZ,aAAa;EACnDU,OAAO,CAACL,MAAM,CAACQ,oBAAoB,CAAC,GAAGZ,cAAc;EACrDS,OAAO,CAACL,MAAM,CAACS,mBAAmB,CAAC,GAAGZ,aAAa;EACnDQ,OAAO,CAACL,MAAM,CAACU,kBAAkB,CAAC,GAAGZ,YAAY;EACjD,OAAOO,OAAO;AAChB,CAAC,EAAE,CAAC;AACJ,SAASM,OAAO,IAAIC,MAAM,QAAQ,kBAAkB;AACpD,SAASD,OAAO,IAAIE,WAAW,QAAQ,0BAA0B;AACjE,SAASF,OAAO,IAAIG,WAAW,QAAQ,0BAA0B","ignoreList":[]}
@@ -3,7 +3,8 @@ import _ from 'lodash';
3
3
  import { REHYDRATE } from 'redux-persist';
4
4
  import { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from '../actions/types';
5
5
  import { ActionTypes } from '../core.config';
6
- const REDUCER_KEY = 'jobs';
6
+ import { values } from '../values.config';
7
+ const REDUCER_KEY = values.reducerKey;
7
8
  const INITIAL_STATE = {
8
9
  jobs: []
9
10
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_","REHYDRATE","JOBS_LOADED","JOB_ADDED","JOBS_ADDED","ActionTypes","REDUCER_KEY","INITIAL_STATE","jobs","state","action","updateJobs","index","type","LOGOUT","CHANGE_ROLE","payload","map","job","title","description","unionWith","j1","j2","id","findIndex","item","push"],"sources":["JobsReducer.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport _ from 'lodash';\nimport { REHYDRATE } from 'redux-persist';\nimport { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from '../actions/types';\nimport { ActionTypes } from '../core.config';\n\nconst REDUCER_KEY = 'jobs';\n\nconst INITIAL_STATE = {\n jobs: [],\n};\n\nexport default (state = INITIAL_STATE, action) => {\n let updateJobs = [];\n let index = 0;\n\n switch (action.type) {\n case ActionTypes.LOGOUT:\n case ActionTypes.CHANGE_ROLE:\n return INITIAL_STATE;\n case JOBS_LOADED:\n return { ...state, jobs: action.payload.map(job => ({ title: job.title || job.description, ...job })) };\n case JOBS_ADDED:\n updateJobs = action.payload.map(job => ({ title: job.title || job.description, ...job }));\n updateJobs = _.unionWith(updateJobs, state.jobs, (j1, j2) => {\n return j1.id === j2.id;\n });\n return { ...state, jobs: updateJobs };\n case JOB_ADDED:\n updateJobs = [...state.jobs];\n index = updateJobs.findIndex(item => item.id === action.payload.id);\n if (index > -1) {\n updateJobs[index] = action.payload;\n } else {\n updateJobs.push(action.payload);\n }\n return { ...state, jobs: updateJobs };\n case REHYDRATE:\n if (!action.payload) return state;\n if (action.payload[REDUCER_KEY]) {\n if (action.payload[REDUCER_KEY].jobs == null) {\n action.payload[REDUCER_KEY].jobs = [];\n }\n return action.payload[REDUCER_KEY];\n }\n return state;\n default:\n return state;\n }\n};\n"],"mappings":"AAAA;AACA,OAAOA,CAAC,MAAM,QAAQ;AACtB,SAASC,SAAS,QAAQ,eAAe;AACzC,SAASC,WAAW,EAAEC,SAAS,EAAEC,UAAU,QAAQ,kBAAkB;AACrE,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,MAAMC,WAAW,GAAG,MAAM;AAE1B,MAAMC,aAAa,GAAG;EACpBC,IAAI,EAAE;AACR,CAAC;AAED,eAAe,CAACC,KAAK,GAAGF,aAAa,EAAEG,MAAM,KAAK;EAChD,IAAIC,UAAU,GAAG,EAAE;EACnB,IAAIC,KAAK,GAAG,CAAC;EAEb,QAAQF,MAAM,CAACG,IAAI;IACjB,KAAKR,WAAW,CAACS,MAAM;IACvB,KAAKT,WAAW,CAACU,WAAW;MAC1B,OAAOR,aAAa;IACtB,KAAKL,WAAW;MACd,OAAO;QAAE,GAAGO,KAAK;QAAED,IAAI,EAAEE,MAAM,CAACM,OAAO,CAACC,GAAG,CAACC,GAAG,KAAK;UAAEC,KAAK,EAAED,GAAG,CAACC,KAAK,IAAID,GAAG,CAACE,WAAW;UAAE,GAAGF;QAAI,CAAC,CAAC;MAAE,CAAC;IACzG,KAAKd,UAAU;MACbO,UAAU,GAAGD,MAAM,CAACM,OAAO,CAACC,GAAG,CAACC,GAAG,KAAK;QAAEC,KAAK,EAAED,GAAG,CAACC,KAAK,IAAID,GAAG,CAACE,WAAW;QAAE,GAAGF;MAAI,CAAC,CAAC,CAAC;MACzFP,UAAU,GAAGX,CAAC,CAACqB,SAAS,CAACV,UAAU,EAAEF,KAAK,CAACD,IAAI,EAAE,CAACc,EAAE,EAAEC,EAAE,KAAK;QAC3D,OAAOD,EAAE,CAACE,EAAE,KAAKD,EAAE,CAACC,EAAE;MACxB,CAAC,CAAC;MACF,OAAO;QAAE,GAAGf,KAAK;QAAED,IAAI,EAAEG;MAAW,CAAC;IACvC,KAAKR,SAAS;MACZQ,UAAU,GAAG,CAAC,GAAGF,KAAK,CAACD,IAAI,CAAC;MAC5BI,KAAK,GAAGD,UAAU,CAACc,SAAS,CAACC,IAAI,IAAIA,IAAI,CAACF,EAAE,KAAKd,MAAM,CAACM,OAAO,CAACQ,EAAE,CAAC;MACnE,IAAIZ,KAAK,GAAG,CAAC,CAAC,EAAE;QACdD,UAAU,CAACC,KAAK,CAAC,GAAGF,MAAM,CAACM,OAAO;MACpC,CAAC,MAAM;QACLL,UAAU,CAACgB,IAAI,CAACjB,MAAM,CAACM,OAAO,CAAC;MACjC;MACA,OAAO;QAAE,GAAGP,KAAK;QAAED,IAAI,EAAEG;MAAW,CAAC;IACvC,KAAKV,SAAS;MACZ,IAAI,CAACS,MAAM,CAACM,OAAO,EAAE,OAAOP,KAAK;MACjC,IAAIC,MAAM,CAACM,OAAO,CAACV,WAAW,CAAC,EAAE;QAC/B,IAAII,MAAM,CAACM,OAAO,CAACV,WAAW,CAAC,CAACE,IAAI,IAAI,IAAI,EAAE;UAC5CE,MAAM,CAACM,OAAO,CAACV,WAAW,CAAC,CAACE,IAAI,GAAG,EAAE;QACvC;QACA,OAAOE,MAAM,CAACM,OAAO,CAACV,WAAW,CAAC;MACpC;MACA,OAAOG,KAAK;IACd;MACE,OAAOA,KAAK;EAChB;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_","REHYDRATE","JOBS_LOADED","JOB_ADDED","JOBS_ADDED","ActionTypes","values","REDUCER_KEY","reducerKey","INITIAL_STATE","jobs","state","action","updateJobs","index","type","LOGOUT","CHANGE_ROLE","payload","map","job","title","description","unionWith","j1","j2","id","findIndex","item","push"],"sources":["JobsReducer.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport _ from 'lodash';\nimport { REHYDRATE } from 'redux-persist';\nimport { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from '../actions/types';\nimport { ActionTypes } from '../core.config';\nimport { values } from '../values.config';\n\nconst REDUCER_KEY = values.reducerKey;\n\nconst INITIAL_STATE = {\n jobs: [],\n};\n\nexport default (state = INITIAL_STATE, action) => {\n let updateJobs = [];\n let index = 0;\n\n switch (action.type) {\n case ActionTypes.LOGOUT:\n case ActionTypes.CHANGE_ROLE:\n return INITIAL_STATE;\n case JOBS_LOADED:\n return { ...state, jobs: action.payload.map(job => ({ title: job.title || job.description, ...job })) };\n case JOBS_ADDED:\n updateJobs = action.payload.map(job => ({ title: job.title || job.description, ...job }));\n updateJobs = _.unionWith(updateJobs, state.jobs, (j1, j2) => {\n return j1.id === j2.id;\n });\n return { ...state, jobs: updateJobs };\n case JOB_ADDED:\n updateJobs = [...state.jobs];\n index = updateJobs.findIndex(item => item.id === action.payload.id);\n if (index > -1) {\n updateJobs[index] = action.payload;\n } else {\n updateJobs.push(action.payload);\n }\n return { ...state, jobs: updateJobs };\n case REHYDRATE:\n if (!action.payload) return state;\n if (action.payload[REDUCER_KEY]) {\n if (action.payload[REDUCER_KEY].jobs == null) {\n action.payload[REDUCER_KEY].jobs = [];\n }\n return action.payload[REDUCER_KEY];\n }\n return state;\n default:\n return state;\n }\n};\n"],"mappings":"AAAA;AACA,OAAOA,CAAC,MAAM,QAAQ;AACtB,SAASC,SAAS,QAAQ,eAAe;AACzC,SAASC,WAAW,EAAEC,SAAS,EAAEC,UAAU,QAAQ,kBAAkB;AACrE,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,MAAMC,WAAW,GAAGD,MAAM,CAACE,UAAU;AAErC,MAAMC,aAAa,GAAG;EACpBC,IAAI,EAAE;AACR,CAAC;AAED,eAAe,CAACC,KAAK,GAAGF,aAAa,EAAEG,MAAM,KAAK;EAChD,IAAIC,UAAU,GAAG,EAAE;EACnB,IAAIC,KAAK,GAAG,CAAC;EAEb,QAAQF,MAAM,CAACG,IAAI;IACjB,KAAKV,WAAW,CAACW,MAAM;IACvB,KAAKX,WAAW,CAACY,WAAW;MAC1B,OAAOR,aAAa;IACtB,KAAKP,WAAW;MACd,OAAO;QAAE,GAAGS,KAAK;QAAED,IAAI,EAAEE,MAAM,CAACM,OAAO,CAACC,GAAG,CAACC,GAAG,KAAK;UAAEC,KAAK,EAAED,GAAG,CAACC,KAAK,IAAID,GAAG,CAACE,WAAW;UAAE,GAAGF;QAAI,CAAC,CAAC;MAAE,CAAC;IACzG,KAAKhB,UAAU;MACbS,UAAU,GAAGD,MAAM,CAACM,OAAO,CAACC,GAAG,CAACC,GAAG,KAAK;QAAEC,KAAK,EAAED,GAAG,CAACC,KAAK,IAAID,GAAG,CAACE,WAAW;QAAE,GAAGF;MAAI,CAAC,CAAC,CAAC;MACzFP,UAAU,GAAGb,CAAC,CAACuB,SAAS,CAACV,UAAU,EAAEF,KAAK,CAACD,IAAI,EAAE,CAACc,EAAE,EAAEC,EAAE,KAAK;QAC3D,OAAOD,EAAE,CAACE,EAAE,KAAKD,EAAE,CAACC,EAAE;MACxB,CAAC,CAAC;MACF,OAAO;QAAE,GAAGf,KAAK;QAAED,IAAI,EAAEG;MAAW,CAAC;IACvC,KAAKV,SAAS;MACZU,UAAU,GAAG,CAAC,GAAGF,KAAK,CAACD,IAAI,CAAC;MAC5BI,KAAK,GAAGD,UAAU,CAACc,SAAS,CAACC,IAAI,IAAIA,IAAI,CAACF,EAAE,KAAKd,MAAM,CAACM,OAAO,CAACQ,EAAE,CAAC;MACnE,IAAIZ,KAAK,GAAG,CAAC,CAAC,EAAE;QACdD,UAAU,CAACC,KAAK,CAAC,GAAGF,MAAM,CAACM,OAAO;MACpC,CAAC,MAAM;QACLL,UAAU,CAACgB,IAAI,CAACjB,MAAM,CAACM,OAAO,CAAC;MACjC;MACA,OAAO;QAAE,GAAGP,KAAK;QAAED,IAAI,EAAEG;MAAW,CAAC;IACvC,KAAKZ,SAAS;MACZ,IAAI,CAACW,MAAM,CAACM,OAAO,EAAE,OAAOP,KAAK;MACjC,IAAIC,MAAM,CAACM,OAAO,CAACX,WAAW,CAAC,EAAE;QAC/B,IAAIK,MAAM,CAACM,OAAO,CAACX,WAAW,CAAC,CAACG,IAAI,IAAI,IAAI,EAAE;UAC5CE,MAAM,CAACM,OAAO,CAACX,WAAW,CAAC,CAACG,IAAI,GAAG,EAAE;QACvC;QACA,OAAOE,MAAM,CAACM,OAAO,CAACX,WAAW,CAAC;MACpC;MACA,OAAOI,KAAK;IACd;MACE,OAAOA,KAAK;EAChB;AACF,CAAC","ignoreList":[]}
@@ -8,6 +8,7 @@ import _ from 'lodash';
8
8
  import MaintenanceList from '../components/MaintenanceList';
9
9
  import { Services, BaseComponents } from '../feature.config';
10
10
  import { Components, Helper, Styles, Config } from '../core.config';
11
+ import { values } from '../values.config';
11
12
  class MaintenancePage extends Component {
12
13
  constructor(props) {
13
14
  super(props);
@@ -31,9 +32,10 @@ class MaintenancePage extends Component {
31
32
  });
32
33
  }
33
34
  renderHeader() {
35
+ const title = this.props.title || this.props.strings[`${values.featureKey}_textFeatureTitle`] || values.textFeatureTitle;
34
36
  if (this.state.isHomeTab) {
35
37
  return /*#__PURE__*/React.createElement(Components.Header, {
36
- text: this.props.title || Config.env.strings.MAINTENANCE,
38
+ text: title,
37
39
  rightContent: _.includes(this.props.user.hidden, 'notifications') ? null : /*#__PURE__*/React.createElement(View, {
38
40
  style: styles.notificationContainer
39
41
  }, /*#__PURE__*/React.createElement(BaseComponents.NotificationBell, {
@@ -45,7 +47,7 @@ class MaintenancePage extends Component {
45
47
  return /*#__PURE__*/React.createElement(Components.Header, {
46
48
  leftIcon: "angle-left",
47
49
  onPressLeft: this.onPressBack,
48
- text: this.props.title || Config.env.strings.MAINTENANCE
50
+ text: values.textFeatureTitle
49
51
  });
50
52
  }
51
53
  render() {
@@ -80,8 +82,10 @@ const styles = StyleSheet.create({
80
82
  }
81
83
  });
82
84
  const mapStateToProps = state => {
85
+ var _state$strings;
83
86
  return {
84
- user: state.user
87
+ user: state.user,
88
+ strings: ((_state$strings = state.strings) === null || _state$strings === void 0 ? void 0 : _state$strings.config) || {}
85
89
  };
86
90
  };
87
91
  export default connect(mapStateToProps, {})(MaintenancePage);
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","View","StyleSheet","connect","_","MaintenanceList","Services","BaseComponents","Components","Helper","Styles","Config","MaintenancePage","constructor","props","_defineProperty","navigation","goBack","loading","setState","state","isHomeTab","componentDidMount","getParentRoute","renderHeader","createElement","Header","text","title","env","strings","MAINTENANCE","rightContent","includes","user","hidden","style","styles","notificationContainer","NotificationBell","colourBrandingHeader","containerStyle","notificationBell","leftIcon","onPressLeft","onPressBack","render","container","LoadingIndicator","visible","maintenanceList","onLoadingChanged","enableAdd","options","create","flex","position","top","bottom","right","paddingTop","StatusBarHeight","marginTop","mapStateToProps"],"sources":["MaintenancePage.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport MaintenanceList from '../components/MaintenanceList';\nimport { Services, BaseComponents } from '../feature.config';\nimport { Components, Helper, Styles, Config } from '../core.config';\n\nclass MaintenancePage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isHomeTab: false,\n loading: false,\n };\n }\n\n componentDidMount() {\n // console.log('!Services.navigation.getParentRoute()', !Services.navigation.getParentRoute());\n this.setState({ isHomeTab: !Services.navigation.getParentRoute() });\n }\n\n onPressBack = () => {\n Services.navigation.goBack();\n };\n\n onLoadingChanged = loading => {\n this.setState({ loading });\n };\n\n renderHeader() {\n if (this.state.isHomeTab) {\n return (\n <Components.Header\n text={this.props.title || Config.env.strings.MAINTENANCE}\n rightContent={\n _.includes(this.props.user.hidden, 'notifications') ? null : (\n <View style={styles.notificationContainer}>\n <BaseComponents.NotificationBell\n colourBrandingHeader={this.props.colourBrandingHeader}\n containerStyle={Styles.notificationBell}\n />\n </View>\n )\n }\n />\n );\n }\n return (\n <Components.Header leftIcon=\"angle-left\" onPressLeft={this.onPressBack} text={this.props.title || Config.env.strings.MAINTENANCE} />\n );\n }\n\n render() {\n const { isHomeTab } = this.state;\n\n return (\n <View style={styles.container}>\n {this.renderHeader()}\n <Components.LoadingIndicator visible={this.state.loading} />\n <MaintenanceList\n style={styles.maintenanceList}\n onLoadingChanged={this.onLoadingChanged}\n enableAdd={!isHomeTab}\n options={this.props.options}\n />\n {/* {isHomeTab && <Components.AddContentButton />} */}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n notificationContainer: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 0,\n paddingTop: Helper.StatusBarHeight(0),\n },\n maintenanceList: {\n marginTop: 12,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n user: state.user,\n };\n};\n\nexport default connect(mapStateToProps, {})(MaintenancePage);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","View","StyleSheet","connect","_","MaintenanceList","Services","BaseComponents","Components","Helper","Styles","Config","values","MaintenancePage","constructor","props","_defineProperty","navigation","goBack","loading","setState","state","isHomeTab","componentDidMount","getParentRoute","renderHeader","title","strings","featureKey","textFeatureTitle","createElement","Header","text","rightContent","includes","user","hidden","style","styles","notificationContainer","NotificationBell","colourBrandingHeader","containerStyle","notificationBell","leftIcon","onPressLeft","onPressBack","render","container","LoadingIndicator","visible","maintenanceList","onLoadingChanged","enableAdd","options","create","flex","position","top","bottom","right","paddingTop","StatusBarHeight","marginTop","mapStateToProps","_state$strings","config"],"sources":["MaintenancePage.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport MaintenanceList from '../components/MaintenanceList';\nimport { Services, BaseComponents } from '../feature.config';\nimport { Components, Helper, Styles, Config } from '../core.config';\nimport { values } from '../values.config';\n\nclass MaintenancePage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isHomeTab: false,\n loading: false,\n };\n }\n\n componentDidMount() {\n // console.log('!Services.navigation.getParentRoute()', !Services.navigation.getParentRoute());\n this.setState({ isHomeTab: !Services.navigation.getParentRoute() });\n }\n\n onPressBack = () => {\n Services.navigation.goBack();\n };\n\n onLoadingChanged = loading => {\n this.setState({ loading });\n };\n\n renderHeader() {\n const title = this.props.title || this.props.strings[`${values.featureKey}_textFeatureTitle`] || values.textFeatureTitle;\n if (this.state.isHomeTab) {\n return (\n <Components.Header\n text={title}\n rightContent={\n _.includes(this.props.user.hidden, 'notifications') ? null : (\n <View style={styles.notificationContainer}>\n <BaseComponents.NotificationBell\n colourBrandingHeader={this.props.colourBrandingHeader}\n containerStyle={Styles.notificationBell}\n />\n </View>\n )\n }\n />\n );\n }\n return <Components.Header leftIcon=\"angle-left\" onPressLeft={this.onPressBack} text={values.textFeatureTitle} />;\n }\n\n render() {\n const { isHomeTab } = this.state;\n\n return (\n <View style={styles.container}>\n {this.renderHeader()}\n <Components.LoadingIndicator visible={this.state.loading} />\n <MaintenanceList\n style={styles.maintenanceList}\n onLoadingChanged={this.onLoadingChanged}\n enableAdd={!isHomeTab}\n options={this.props.options}\n />\n {/* {isHomeTab && <Components.AddContentButton />} */}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n notificationContainer: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 0,\n paddingTop: Helper.StatusBarHeight(0),\n },\n maintenanceList: {\n marginTop: 12,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n user: state.user,\n strings: state.strings?.config || {},\n };\n};\n\nexport default connect(mapStateToProps, {})(MaintenancePage);\n"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,7 @@ import StatusSelectorPopup from '../components/StatusSelectorPopup';
14
14
  import { jobStatusOptions, getJobStatusProps } from '../helper';
15
15
  import { Services } from '../feature.config';
16
16
  import { Colours, Helper, Components, Config } from '../core.config';
17
+ import { values } from '../values.config';
17
18
  class RequestDetail extends Component {
18
19
  constructor(props) {
19
20
  super(props);
@@ -158,7 +159,7 @@ class RequestDetail extends Component {
158
159
  });
159
160
  });
160
161
  _defineProperty(this, "openStaffNotes", () => {
161
- Services.navigation.navigate('requestNotes', {
162
+ Services.navigation.navigate(values.screenRequestNotes, {
162
163
  job: this.state.job,
163
164
  onChange: this.getJob
164
165
  });
@@ -228,10 +229,10 @@ class RequestDetail extends Component {
228
229
  const {
229
230
  permissions
230
231
  } = this.props.user;
231
- if (_.includes(permissions, 'maintenanceTracking')) {
232
+ if (_.includes(permissions, values.permissionMaintenanceTracking)) {
232
233
  return true;
233
234
  }
234
- if (_.includes(permissions, 'maintenanceAssignment')) {
235
+ if (_.includes(permissions, values.permissionMaintenanceAssign)) {
235
236
  return job.AssigneeId === this.props.user.Id;
236
237
  }
237
238
  return false;
@@ -289,6 +290,7 @@ class RequestDetail extends Component {
289
290
  showFullscreenVideo: false,
290
291
  currentVideoUrl: '',
291
292
  galleryOpen: false,
293
+ galleryImages: [],
292
294
  showMessages: false,
293
295
  assignees: []
294
296
  };
@@ -320,9 +322,10 @@ class RequestDetail extends Component {
320
322
  this.markSeen();
321
323
  });
322
324
  }
323
- openGallery(index) {
325
+ openGallery(galleryImages, index) {
324
326
  this.setState({
325
- galleryOpen: true
327
+ galleryOpen: true,
328
+ galleryImages
326
329
  });
327
330
  this.refs.imagePopup.scrollTo(index);
328
331
  }
@@ -357,7 +360,7 @@ class RequestDetail extends Component {
357
360
  style: [styles.jobIdText, {
358
361
  color: this.props.colourBrandingMain
359
362
  }]
360
- }, `Job #${job.jobId}`) : null, /*#__PURE__*/React.createElement(Text, {
363
+ }, `${values.textEntityName} #${job.jobId}`) : null, /*#__PURE__*/React.createElement(Text, {
361
364
  style: styles.jobTitleText
362
365
  }, job.title), /*#__PURE__*/React.createElement(View, {
363
366
  style: styles.jobTypeSeenContainer
@@ -422,7 +425,8 @@ class RequestDetail extends Component {
422
425
  style: styles.jobStatusText
423
426
  }, "Notes (", (job.Notes || []).length, ")"))))));
424
427
  }
425
- renderPlayableImageUrl(url, index, containerStyle, showMore) {
428
+ renderPlayableImageUrl(images, index, containerStyle, showMore) {
429
+ const url = images[index || 0];
426
430
  const thumbUrl = Helper.getThumb300(url);
427
431
  if (Helper.isVideo(url)) {
428
432
  return /*#__PURE__*/React.createElement(ImageBackground, {
@@ -445,7 +449,7 @@ class RequestDetail extends Component {
445
449
  const imageUrl = Helper.get1400(url);
446
450
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
447
451
  style: containerStyle,
448
- onPress: this.openGallery.bind(this, index || 0)
452
+ onPress: this.openGallery.bind(this, images, index || 0)
449
453
  }, /*#__PURE__*/React.createElement(ImageBackground, {
450
454
  style: styles.imageContainer,
451
455
  source: {
@@ -455,35 +459,31 @@ class RequestDetail extends Component {
455
459
  style: styles.plusImages
456
460
  }, "+", this.state.job.images.length - 2)));
457
461
  }
458
- renderPlayableImage(index, containerStyle, showMore) {
459
- const url = this.state.job.images[index];
460
- return this.renderPlayableImageUrl(url, index, containerStyle, showMore);
462
+ renderPlayableImage(images, index, containerStyle, showMore) {
463
+ return this.renderPlayableImageUrl(images, index, containerStyle, showMore);
461
464
  }
462
- renderImage() {
463
- const {
464
- job
465
- } = this.state;
466
- if (!_.isNil(job.images) && !_.isEmpty(job.images)) {
467
- if (job.images.length >= 2) {
465
+ renderImage(images, image = null) {
466
+ if (!_.isNil(images) && !_.isEmpty(images)) {
467
+ if (images.length >= 2) {
468
468
  return /*#__PURE__*/React.createElement(View, {
469
469
  style: styles.sideBySideImages
470
- }, this.renderPlayableImage(0, styles.sideBySideImageContainer), this.renderPlayableImage(1, styles.sideBySideImageContainer, job.images.length > 2));
470
+ }, this.renderPlayableImage(images, 0, styles.sideBySideImageContainer), this.renderPlayableImage(images, 1, styles.sideBySideImageContainer, images.length > 2));
471
471
  } else {
472
472
  return /*#__PURE__*/React.createElement(View, {
473
473
  style: styles.singleImageContainer
474
- }, this.renderPlayableImage(0));
474
+ }, this.renderPlayableImage(images, 0));
475
475
  }
476
- } else if (!_.isNil(job.image)) {
476
+ } else if (!_.isNil(image)) {
477
477
  return /*#__PURE__*/React.createElement(View, {
478
478
  style: styles.singleImageContainer
479
- }, this.renderPlayableImageUrl(job.image));
479
+ }, this.renderPlayableImageUrl([image], 0));
480
480
  }
481
481
  return null;
482
482
  }
483
483
  renderImagePopup() {
484
484
  return /*#__PURE__*/React.createElement(Components.ImagePopup, {
485
485
  visible: this.state.galleryOpen,
486
- images: this.state.job.images || [this.state.job.image],
486
+ images: this.state.galleryImages,
487
487
  onClose: this.closeGallery.bind(this),
488
488
  ref: "imagePopup"
489
489
  });
@@ -516,24 +516,75 @@ class RequestDetail extends Component {
516
516
  }
517
517
  return content;
518
518
  }
519
+ renderCustomFields() {
520
+ const {
521
+ job
522
+ } = this.state;
523
+ const {
524
+ customFields
525
+ } = job;
526
+ const renderAnswer = field => {
527
+ switch (field.type) {
528
+ case 'date':
529
+ return /*#__PURE__*/React.createElement(Text, {
530
+ style: styles.customText
531
+ }, field.answer ? moment(field.answer, 'YYYY-MM-DD').format('DD MMM YYYY') : '');
532
+ case 'time':
533
+ return /*#__PURE__*/React.createElement(Text, {
534
+ style: styles.customText
535
+ }, field.answer ? moment(field.answer, 'HH:mm').format('h:mm a') : '');
536
+ case 'yn':
537
+ return /*#__PURE__*/React.createElement(Text, {
538
+ style: styles.customText
539
+ }, field.answer ? 'Yes' : 'No');
540
+ case 'checkbox':
541
+ return /*#__PURE__*/React.createElement(Text, {
542
+ style: styles.customText
543
+ }, field.answer && Array.isArray(field.answer) ? field.answer.join(', ') : '');
544
+ case 'image':
545
+ return /*#__PURE__*/React.createElement(View, {
546
+ style: {
547
+ marginTop: 8
548
+ }
549
+ }, this.renderImage(field.answer));
550
+ default:
551
+ return /*#__PURE__*/React.createElement(Text, {
552
+ style: styles.customText
553
+ }, field.answer);
554
+ }
555
+ };
556
+ return customFields.map((field, index) => {
557
+ if (['staticTitle', 'staticText'].includes(field.type)) return null;
558
+ if (_.isNil(field.answer) || field.answer === '' || Array.isArray(field.answer) && field.answer.length === 0) return null;
559
+ return /*#__PURE__*/React.createElement(View, {
560
+ key: index
561
+ }, /*#__PURE__*/React.createElement(Text, {
562
+ style: styles.customLabel
563
+ }, field.label), renderAnswer(field));
564
+ });
565
+ }
519
566
  rendeDetails() {
520
567
  const {
521
568
  job
522
569
  } = this.state;
570
+ const {
571
+ customFields
572
+ } = job;
573
+ const hasCustomFields = customFields && customFields.length > 0;
523
574
  return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Components.FormCardSectionOptionLauncher, {
524
575
  onPress: this.onToggleDetails,
525
576
  title: "Details",
526
577
  icon: this.state.showMore ? 'angle-up' : 'angle-down',
527
578
  textStyle: styles.detailsText,
528
579
  sectionStyle: styles.detailsSection
529
- }), this.state.showMore && /*#__PURE__*/React.createElement(View, null, this.renderImage(), !_.isEmpty(job.description) && /*#__PURE__*/React.createElement(Text, {
580
+ }), 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, {
530
581
  numberOfLines: 10,
531
582
  style: styles.jobDescriptionText
532
- }, job.description), /*#__PURE__*/React.createElement(Text, {
583
+ }, job.description)) : null, /*#__PURE__*/React.createElement(Text, {
533
584
  style: styles.locationLabel
534
- }, "Location"), /*#__PURE__*/React.createElement(Text, {
585
+ }, "Address"), /*#__PURE__*/React.createElement(Text, {
535
586
  style: styles.locationText
536
- }, job.room), job.isHome ? /*#__PURE__*/React.createElement(View, {
587
+ }, job.room), !hasCustomFields && job.isHome ? /*#__PURE__*/React.createElement(View, {
537
588
  style: styles.detailsSection
538
589
  }, /*#__PURE__*/React.createElement(Text, {
539
590
  style: styles.locationLabel
@@ -541,7 +592,7 @@ class RequestDetail extends Component {
541
592
  style: styles.locationText
542
593
  }, job.homeText)) : null, /*#__PURE__*/React.createElement(Text, {
543
594
  style: styles.requesterLabel
544
- }, "Person Requesting"), /*#__PURE__*/React.createElement(View, {
595
+ }, "Submitted By"), /*#__PURE__*/React.createElement(View, {
545
596
  style: styles.profileContainer
546
597
  }, /*#__PURE__*/React.createElement(Components.ProfilePic, {
547
598
  ProfilePic: job.userProfilePic,
@@ -559,8 +610,8 @@ class RequestDetail extends Component {
559
610
  ref: this.commentSection,
560
611
  commentReply: this.commentReply,
561
612
  scrollView: this.scrollView,
562
- adminPermission: "maintenanceTracking",
563
- entityType: "maintenancerequest",
613
+ adminPermission: values.permissionMaintenanceTracking,
614
+ entityType: values.featureKey,
564
615
  entityId: this.props.job.id,
565
616
  entityName: this.props.job.title,
566
617
  site: this.state.job.site || this.state.job.location,
@@ -597,7 +648,7 @@ class RequestDetail extends Component {
597
648
  ref: this.commentReply,
598
649
  commentSection: this.commentSection,
599
650
  scrollView: this.scrollView,
600
- entityType: "maintenancerequest",
651
+ entityType: values.featureKey,
601
652
  entityId: this.props.job.id,
602
653
  entityName: this.props.job.title,
603
654
  site: this.state.job.site || this.state.job.location
@@ -890,13 +941,37 @@ const styles = StyleSheet.create({
890
941
  fontSize: 24,
891
942
  marginLeft: 10,
892
943
  lineHeight: 24
944
+ },
945
+ customLabel: {
946
+ fontFamily: 'sf-bold',
947
+ fontSize: 14,
948
+ color: Colours.TEXT_DARKEST
949
+ },
950
+ customText: {
951
+ fontFamily: 'sf-regular',
952
+ fontSize: 16,
953
+ color: Colours.TEXT_DARKEST,
954
+ paddingVertical: 8
955
+ },
956
+ customStaticTitle: {
957
+ fontSize: 20,
958
+ fontFamily: 'sf-semibold',
959
+ color: Colours.TEXT_DARKEST,
960
+ marginBottom: 10
961
+ },
962
+ customStaticText: {
963
+ fontSize: 17,
964
+ fontFamily: 'sf-regular',
965
+ color: Colours.TEXT_DARKEST,
966
+ lineHeight: 24,
967
+ marginBottom: 10
893
968
  }
894
969
  });
895
970
  const mapStateToProps = state => {
896
971
  return {
897
972
  user: state.user,
898
973
  colourBrandingMain: Colours.getMainBrandingColourFromState(state),
899
- jobs: state.jobs.jobs
974
+ jobs: state[values.reducerKey].jobs
900
975
  };
901
976
  };
902
977
  export default connect(mapStateToProps, {