@plusscommunities/pluss-maintenance-app-forms 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.
- package/dist/module/actions/JobActions.js +20 -0
- package/dist/module/actions/JobActions.js.map +1 -0
- package/dist/module/actions/index.js +2 -0
- package/dist/module/actions/index.js.map +1 -0
- package/dist/module/actions/types.js +5 -0
- package/dist/module/actions/types.js.map +1 -0
- package/dist/module/apis/index.js +2 -0
- package/dist/module/apis/index.js.map +1 -0
- package/dist/module/apis/maintenanceActions.js +171 -0
- package/dist/module/apis/maintenanceActions.js.map +1 -0
- package/dist/module/components/FilterPopupMenu.js +271 -0
- package/dist/module/components/FilterPopupMenu.js.map +1 -0
- package/dist/module/components/MaintenanceList.js +360 -0
- package/dist/module/components/MaintenanceList.js.map +1 -0
- package/dist/module/components/MaintenanceListItem.js +322 -0
- package/dist/module/components/MaintenanceListItem.js.map +1 -0
- package/dist/module/components/MaintenanceWidgetItem.js +149 -0
- package/dist/module/components/MaintenanceWidgetItem.js.map +1 -0
- package/dist/module/components/StatusSelectorPopup.js +89 -0
- package/dist/module/components/StatusSelectorPopup.js.map +1 -0
- package/dist/module/components/WidgetLarge.js +9 -0
- package/dist/module/components/WidgetLarge.js.map +1 -0
- package/dist/module/components/WidgetSmall.js +171 -0
- package/dist/module/components/WidgetSmall.js.map +1 -0
- package/dist/module/core.config.js +17 -0
- package/dist/module/core.config.js.map +1 -0
- package/dist/module/feature.config.js +75 -0
- package/dist/module/feature.config.js.map +1 -0
- package/dist/module/helper.js +33 -0
- package/dist/module/helper.js.map +1 -0
- package/dist/module/images/speechbubble.png +0 -0
- package/dist/module/index.js +25 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/reducers/JobsReducer.js +63 -0
- package/dist/module/reducers/JobsReducer.js.map +1 -0
- package/dist/module/screens/JobTypePicker.js +130 -0
- package/dist/module/screens/JobTypePicker.js.map +1 -0
- package/dist/module/screens/MaintenancePage.js +92 -0
- package/dist/module/screens/MaintenancePage.js.map +1 -0
- package/dist/module/screens/RequestDetail.js +980 -0
- package/dist/module/screens/RequestDetail.js.map +1 -0
- package/dist/module/screens/RequestNotes.js +390 -0
- package/dist/module/screens/RequestNotes.js.map +1 -0
- package/dist/module/screens/ServiceRequest.js +1243 -0
- package/dist/module/screens/ServiceRequest.js.map +1 -0
- package/dist/module/values.config.a.js +30 -0
- package/dist/module/values.config.a.js.map +1 -0
- package/dist/module/values.config.b.js +30 -0
- package/dist/module/values.config.b.js.map +1 -0
- package/dist/module/values.config.c.js +30 -0
- package/dist/module/values.config.c.js.map +1 -0
- package/dist/module/values.config.d.js +30 -0
- package/dist/module/values.config.d.js.map +1 -0
- package/dist/module/values.config.default.js +35 -0
- package/dist/module/values.config.default.js.map +1 -0
- package/dist/module/values.config.forms.js +35 -0
- package/dist/module/values.config.forms.js.map +1 -0
- package/dist/module/values.config.js +35 -0
- package/dist/module/values.config.js.map +1 -0
- package/package.json +53 -0
- package/src/actions/JobActions.js +22 -0
- package/src/actions/index.js +1 -0
- package/src/actions/types.js +5 -0
- package/src/apis/index.js +1 -0
- package/src/apis/maintenanceActions.js +163 -0
- package/src/components/FilterPopupMenu.js +256 -0
- package/src/components/MaintenanceList.js +335 -0
- package/src/components/MaintenanceListItem.js +289 -0
- package/src/components/MaintenanceWidgetItem.js +132 -0
- package/src/components/StatusSelectorPopup.js +87 -0
- package/src/components/WidgetLarge.js +10 -0
- package/src/components/WidgetSmall.js +152 -0
- package/src/core.config.js +5 -0
- package/src/feature.config.js +73 -0
- package/src/helper.js +39 -0
- package/src/images/speechbubble.png +0 -0
- package/src/index.js +25 -0
- package/src/reducers/JobsReducer.js +51 -0
- package/src/screens/JobTypePicker.js +107 -0
- package/src/screens/MaintenancePage.js +96 -0
- package/src/screens/RequestDetail.js +915 -0
- package/src/screens/RequestNotes.js +418 -0
- package/src/screens/ServiceRequest.js +1219 -0
- package/src/values.config.a.js +30 -0
- package/src/values.config.b.js +30 -0
- package/src/values.config.c.js +30 -0
- package/src/values.config.d.js +30 -0
- package/src/values.config.default.js +35 -0
- package/src/values.config.forms.js +35 -0
- package/src/values.config.js +35 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
+
import React, { Component } from 'react';
|
|
5
|
+
import { Text, View, ScrollView, StyleSheet } from 'react-native';
|
|
6
|
+
import { connect } from 'react-redux';
|
|
7
|
+
import _ from 'lodash';
|
|
8
|
+
import { maintenanceActions } from '../apis';
|
|
9
|
+
import { jobsLoaded } from '../actions';
|
|
10
|
+
import MaintenanceWidgetItem from './MaintenanceWidgetItem';
|
|
11
|
+
import { Services } from '../feature.config';
|
|
12
|
+
import { Colours, Components, Config } from '../core.config';
|
|
13
|
+
import { values } from '../values.config';
|
|
14
|
+
const MAX_ITEMS = 10;
|
|
15
|
+
class WidgetSmall extends Component {
|
|
16
|
+
constructor(props) {
|
|
17
|
+
super(props);
|
|
18
|
+
_defineProperty(this, "getTitle", () => {
|
|
19
|
+
const {
|
|
20
|
+
options
|
|
21
|
+
} = this.props;
|
|
22
|
+
if (options && !_.isEmpty(options.Title)) return options.Title;
|
|
23
|
+
return this.props.strings[`${values.featureKey}_textFeatureTitle`] || values.textFeatureTitle;
|
|
24
|
+
});
|
|
25
|
+
_defineProperty(this, "getEmptyStateText", () => {
|
|
26
|
+
const {
|
|
27
|
+
options,
|
|
28
|
+
userCategory
|
|
29
|
+
} = this.props;
|
|
30
|
+
if (options && !_.isEmpty(options.EmptyText)) return options.EmptyText;
|
|
31
|
+
return userCategory === 'staff' ? values.emptyRequestsStaff : values.emptyRequestsUser;
|
|
32
|
+
});
|
|
33
|
+
_defineProperty(this, "refresh", () => {
|
|
34
|
+
this.onLoadingChanged(true, async () => {
|
|
35
|
+
try {
|
|
36
|
+
const res = await maintenanceActions.getJobsRecursive(this.props.site);
|
|
37
|
+
// console.log('WidgetSmall - refresh', res.data);
|
|
38
|
+
this.props.jobsLoaded(res);
|
|
39
|
+
} catch (error) {
|
|
40
|
+
console.log('refresh error', error);
|
|
41
|
+
} finally {
|
|
42
|
+
this.onLoadingChanged(false);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
_defineProperty(this, "onLoadingChanged", (loading, callback) => {
|
|
47
|
+
this.setState({
|
|
48
|
+
loading
|
|
49
|
+
}, () => {
|
|
50
|
+
if (this.props.onLoadingChanged) this.props.onLoadingChanged(this.state.loading);
|
|
51
|
+
if (callback) callback();
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
_defineProperty(this, "onPressAll", () => {
|
|
55
|
+
Services.navigation.navigate(values.screenMaintenance, {
|
|
56
|
+
options: this.props.options
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
this.state = {
|
|
60
|
+
loading: false
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
componentDidMount() {
|
|
64
|
+
this.refresh();
|
|
65
|
+
}
|
|
66
|
+
componentDidUpdate(prevProps) {
|
|
67
|
+
if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();
|
|
68
|
+
}
|
|
69
|
+
renderContent() {
|
|
70
|
+
const {
|
|
71
|
+
jobs
|
|
72
|
+
} = this.props;
|
|
73
|
+
if (_.isEmpty(jobs)) {
|
|
74
|
+
if (this.state.loading) {
|
|
75
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
76
|
+
style: styles.loadingPadding
|
|
77
|
+
}, /*#__PURE__*/React.createElement(Components.LoadingStateWidget, {
|
|
78
|
+
height: 180
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
82
|
+
style: styles.loadingPadding
|
|
83
|
+
}, /*#__PURE__*/React.createElement(Components.EmptyStateWidget, {
|
|
84
|
+
title: this.getEmptyStateText(),
|
|
85
|
+
height: 180
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
return /*#__PURE__*/React.createElement(ScrollView, {
|
|
89
|
+
horizontal: true,
|
|
90
|
+
contentContainerStyle: {
|
|
91
|
+
paddingLeft: 6,
|
|
92
|
+
paddingRight: 8
|
|
93
|
+
},
|
|
94
|
+
showsHorizontalScrollIndicator: false
|
|
95
|
+
}, jobs.slice(0, MAX_ITEMS).map(job => {
|
|
96
|
+
return /*#__PURE__*/React.createElement(MaintenanceWidgetItem, {
|
|
97
|
+
key: job.id,
|
|
98
|
+
job: job
|
|
99
|
+
});
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
render() {
|
|
103
|
+
const {
|
|
104
|
+
colourBrandingMain
|
|
105
|
+
} = this.props;
|
|
106
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
107
|
+
style: styles.sectionContainer
|
|
108
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
109
|
+
style: styles.sectionPadding
|
|
110
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
111
|
+
style: styles.sectionHeading
|
|
112
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
113
|
+
style: styles.sectionTitle
|
|
114
|
+
}, this.getTitle()), /*#__PURE__*/React.createElement(Components.InlineButton, {
|
|
115
|
+
onPress: this.onPressAll,
|
|
116
|
+
color: colourBrandingMain,
|
|
117
|
+
touchableStyle: {
|
|
118
|
+
paddingTop: 6
|
|
119
|
+
},
|
|
120
|
+
textStyle: {
|
|
121
|
+
color: '#fff'
|
|
122
|
+
}
|
|
123
|
+
}, "View All"))), this.renderContent());
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const styles = StyleSheet.create({
|
|
127
|
+
sectionContainer: {
|
|
128
|
+
backgroundColor: '#fff',
|
|
129
|
+
paddingTop: 16
|
|
130
|
+
},
|
|
131
|
+
sectionPadding: {
|
|
132
|
+
paddingHorizontal: 16,
|
|
133
|
+
paddingBottom: 6
|
|
134
|
+
},
|
|
135
|
+
loadingPadding: {
|
|
136
|
+
paddingHorizontal: 16
|
|
137
|
+
},
|
|
138
|
+
sectionHeading: {
|
|
139
|
+
marginBottom: 4,
|
|
140
|
+
flexDirection: 'row',
|
|
141
|
+
alignContent: 'flex-start',
|
|
142
|
+
justifyContent: 'space-between'
|
|
143
|
+
},
|
|
144
|
+
sectionTitle: {
|
|
145
|
+
fontFamily: 'sf-bold',
|
|
146
|
+
fontSize: 24,
|
|
147
|
+
color: Colours.TEXT_DARKEST
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
const mapStateToProps = state => {
|
|
151
|
+
var _state$strings;
|
|
152
|
+
const {
|
|
153
|
+
user,
|
|
154
|
+
notifications
|
|
155
|
+
} = state;
|
|
156
|
+
const jobs = state[values.reducerKey];
|
|
157
|
+
return {
|
|
158
|
+
colourBrandingMain: Colours.getMainBrandingColourFromState(state),
|
|
159
|
+
jobs: _.orderBy(jobs.jobs, ['createdUnix'], ['desc']),
|
|
160
|
+
site: user.site,
|
|
161
|
+
userCategory: user.category,
|
|
162
|
+
dataUpdated: notifications.dataUpdated[values.updateKey],
|
|
163
|
+
strings: ((_state$strings = state.strings) === null || _state$strings === void 0 ? void 0 : _state$strings.config) || {}
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
export default connect(mapStateToProps, {
|
|
167
|
+
jobsLoaded
|
|
168
|
+
}, null, {
|
|
169
|
+
forwardRef: true
|
|
170
|
+
})(WidgetSmall);
|
|
171
|
+
//# sourceMappingURL=WidgetSmall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// import * as PlussCore from '../../pluss-core/src';
|
|
2
|
+
import * as PlussCore from '@plusscommunities/pluss-core-app';
|
|
3
|
+
const {
|
|
4
|
+
Apis,
|
|
5
|
+
Fonts,
|
|
6
|
+
Actions,
|
|
7
|
+
ActionTypes,
|
|
8
|
+
Config,
|
|
9
|
+
Components,
|
|
10
|
+
Styles,
|
|
11
|
+
Session,
|
|
12
|
+
Helper,
|
|
13
|
+
Constants,
|
|
14
|
+
Colours
|
|
15
|
+
} = PlussCore;
|
|
16
|
+
export { Apis, Fonts, Actions, ActionTypes, Config, Components, Styles, Session, Helper, Constants, Colours };
|
|
17
|
+
//# sourceMappingURL=core.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PlussCore","Apis","Fonts","Actions","ActionTypes","Config","Components","Styles","Session","Helper","Constants","Colours"],"sources":["core.config.js"],"sourcesContent":["// import * as PlussCore from '../../pluss-core/src';\nimport * as PlussCore from '@plusscommunities/pluss-core-app';\n\nconst { Apis, Fonts, Actions, ActionTypes, Config, Components, Styles, Session, Helper, Constants, Colours } = PlussCore;\nexport { Apis, Fonts, Actions, ActionTypes, Config, Components, Styles, Session, Helper, Constants, Colours };\n"],"mappings":"AAAA;AACA,OAAO,KAAKA,SAAS,MAAM,kCAAkC;AAE7D,MAAM;EAAEC,IAAI;EAAEC,KAAK;EAAEC,OAAO;EAAEC,WAAW;EAAEC,MAAM;EAAEC,UAAU;EAAEC,MAAM;EAAEC,OAAO;EAAEC,MAAM;EAAEC,SAAS;EAAEC;AAAQ,CAAC,GAAGX,SAAS;AACxH,SAASC,IAAI,EAAEC,KAAK,EAAEC,OAAO,EAAEC,WAAW,EAAEC,MAAM,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,EAAEC,MAAM,EAAEC,SAAS,EAAEC,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// import * as PlussCore from '../../pluss-core/src';
|
|
2
|
+
import * as PlussCore from '@plusscommunities/pluss-core-app';
|
|
3
|
+
import { values } from './values.config';
|
|
4
|
+
export const Services = {
|
|
5
|
+
navigation: null
|
|
6
|
+
};
|
|
7
|
+
export const BaseComponents = {
|
|
8
|
+
NotificationBell: null
|
|
9
|
+
};
|
|
10
|
+
const FeatureConfig = {
|
|
11
|
+
key: values.featureKey,
|
|
12
|
+
aliases: values.aliases,
|
|
13
|
+
title: values.textFeatureTitle,
|
|
14
|
+
gridMenu: {
|
|
15
|
+
icon: values.iconGridMenu,
|
|
16
|
+
viewBox: values.gridViewBox,
|
|
17
|
+
navigate: values.screenMaintenance
|
|
18
|
+
},
|
|
19
|
+
addMenu: {
|
|
20
|
+
order: values.orderAddMenu,
|
|
21
|
+
icon: values.iconAddMenu,
|
|
22
|
+
title: values.textAddMenuTitle,
|
|
23
|
+
navigate: values.screenServiceRequest,
|
|
24
|
+
visibleExps: {
|
|
25
|
+
type: 'feature',
|
|
26
|
+
value: values.featureKey
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
moreMenu: values.hasMoreOption ? {
|
|
30
|
+
order: values.orderMoreMenu,
|
|
31
|
+
title: values.textMoreMenuTitle,
|
|
32
|
+
navigate: values.screenMaintenance,
|
|
33
|
+
visibleExps: {
|
|
34
|
+
type: 'and',
|
|
35
|
+
exps: [{
|
|
36
|
+
type: 'notHidden',
|
|
37
|
+
value: 'maintenanceRequest'
|
|
38
|
+
}, {
|
|
39
|
+
type: 'notUserType',
|
|
40
|
+
value: 'KIOSK'
|
|
41
|
+
}]
|
|
42
|
+
}
|
|
43
|
+
} : undefined,
|
|
44
|
+
kioskAction: {
|
|
45
|
+
order: values.orderKioskAction,
|
|
46
|
+
icon: values.iconKioskAction,
|
|
47
|
+
title: values.textKioskActionTitle,
|
|
48
|
+
navigate: values.screenServiceRequest
|
|
49
|
+
},
|
|
50
|
+
hideTabBar: [],
|
|
51
|
+
env: {
|
|
52
|
+
baseStage: '',
|
|
53
|
+
baseAPIUrl: '',
|
|
54
|
+
hasGradientHeader: false,
|
|
55
|
+
defaultProfileImage: '',
|
|
56
|
+
tinyChatDefault: '',
|
|
57
|
+
baseUploadsUrl: '',
|
|
58
|
+
allowMediaDownload: false,
|
|
59
|
+
allowMediaSharing: false,
|
|
60
|
+
awsUploadsBucket: '',
|
|
61
|
+
awsStorageBucket: '',
|
|
62
|
+
preferredSite: '',
|
|
63
|
+
strings: {},
|
|
64
|
+
newEventDefaults: '',
|
|
65
|
+
defaultAllowComments: true
|
|
66
|
+
},
|
|
67
|
+
init: (environment, navigation, notificationBell) => {
|
|
68
|
+
FeatureConfig.env = environment;
|
|
69
|
+
Services.navigation = navigation;
|
|
70
|
+
BaseComponents.NotificationBell = notificationBell;
|
|
71
|
+
PlussCore.Config.init(environment, navigation);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
export default FeatureConfig;
|
|
75
|
+
//# sourceMappingURL=feature.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { label } from 'aws-amplify';
|
|
2
|
+
import { Colours } from './core.config';
|
|
3
|
+
const jobStatusOptions = [{
|
|
4
|
+
name: 'Unassigned',
|
|
5
|
+
label: 'Open',
|
|
6
|
+
color: Colours.LINEGREY
|
|
7
|
+
}, {
|
|
8
|
+
name: 'In Progress',
|
|
9
|
+
label: 'In Progress',
|
|
10
|
+
color: Colours.COLOUR_TEAL
|
|
11
|
+
}, {
|
|
12
|
+
name: 'Completed',
|
|
13
|
+
label: 'Completed',
|
|
14
|
+
color: Colours.COLOUR_GREEN_LIGHT
|
|
15
|
+
}];
|
|
16
|
+
const getJobStatusColour = status => {
|
|
17
|
+
const option = jobStatusOptions.find(item => item.name === status);
|
|
18
|
+
return option ? option.color : jobStatusOptions[0].color;
|
|
19
|
+
};
|
|
20
|
+
const getJobStatusLabel = status => {
|
|
21
|
+
const option = jobStatusOptions.find(item => item.name === status);
|
|
22
|
+
return option ? option.label : jobStatusOptions[0].label;
|
|
23
|
+
};
|
|
24
|
+
const getJobStatusProps = status => {
|
|
25
|
+
const statusText = getJobStatusLabel(status) || jobStatusOptions[0].label;
|
|
26
|
+
const statusColor = getJobStatusColour(statusText);
|
|
27
|
+
return {
|
|
28
|
+
statusText,
|
|
29
|
+
statusColor
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export { jobStatusOptions, getJobStatusColour, getJobStatusProps, getJobStatusLabel };
|
|
33
|
+
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["label","Colours","jobStatusOptions","name","color","LINEGREY","COLOUR_TEAL","COLOUR_GREEN_LIGHT","getJobStatusColour","status","option","find","item","getJobStatusLabel","getJobStatusProps","statusText","statusColor"],"sources":["helper.js"],"sourcesContent":["import { label } from 'aws-amplify';\nimport { Colours } from './core.config';\n\nconst jobStatusOptions = [\n {\n name: 'Unassigned',\n label: 'Open',\n color: Colours.LINEGREY,\n },\n {\n name: 'In Progress',\n label: 'In Progress',\n color: Colours.COLOUR_TEAL,\n },\n {\n name: 'Completed',\n label: 'Completed',\n color: Colours.COLOUR_GREEN_LIGHT,\n },\n];\n\nconst getJobStatusColour = status => {\n const option = jobStatusOptions.find(item => item.name === status);\n return option ? option.color : jobStatusOptions[0].color;\n};\n\nconst getJobStatusLabel = status => {\n const option = jobStatusOptions.find(item => item.name === status);\n return option ? option.label : jobStatusOptions[0].label;\n};\n\nconst getJobStatusProps = status => {\n const statusText = getJobStatusLabel(status) || jobStatusOptions[0].label;\n const statusColor = getJobStatusColour(statusText);\n\n return { statusText, statusColor };\n};\n\nexport { jobStatusOptions, getJobStatusColour, getJobStatusProps, getJobStatusLabel };\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AACnC,SAASC,OAAO,QAAQ,eAAe;AAEvC,MAAMC,gBAAgB,GAAG,CACvB;EACEC,IAAI,EAAE,YAAY;EAClBH,KAAK,EAAE,MAAM;EACbI,KAAK,EAAEH,OAAO,CAACI;AACjB,CAAC,EACD;EACEF,IAAI,EAAE,aAAa;EACnBH,KAAK,EAAE,aAAa;EACpBI,KAAK,EAAEH,OAAO,CAACK;AACjB,CAAC,EACD;EACEH,IAAI,EAAE,WAAW;EACjBH,KAAK,EAAE,WAAW;EAClBI,KAAK,EAAEH,OAAO,CAACM;AACjB,CAAC,CACF;AAED,MAAMC,kBAAkB,GAAGC,MAAM,IAAI;EACnC,MAAMC,MAAM,GAAGR,gBAAgB,CAACS,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACT,IAAI,KAAKM,MAAM,CAAC;EAClE,OAAOC,MAAM,GAAGA,MAAM,CAACN,KAAK,GAAGF,gBAAgB,CAAC,CAAC,CAAC,CAACE,KAAK;AAC1D,CAAC;AAED,MAAMS,iBAAiB,GAAGJ,MAAM,IAAI;EAClC,MAAMC,MAAM,GAAGR,gBAAgB,CAACS,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACT,IAAI,KAAKM,MAAM,CAAC;EAClE,OAAOC,MAAM,GAAGA,MAAM,CAACV,KAAK,GAAGE,gBAAgB,CAAC,CAAC,CAAC,CAACF,KAAK;AAC1D,CAAC;AAED,MAAMc,iBAAiB,GAAGL,MAAM,IAAI;EAClC,MAAMM,UAAU,GAAGF,iBAAiB,CAACJ,MAAM,CAAC,IAAIP,gBAAgB,CAAC,CAAC,CAAC,CAACF,KAAK;EACzE,MAAMgB,WAAW,GAAGR,kBAAkB,CAACO,UAAU,CAAC;EAElD,OAAO;IAAEA,UAAU;IAAEC;EAAY,CAAC;AACpC,CAAC;AAED,SAASd,gBAAgB,EAAEM,kBAAkB,EAAEM,iBAAiB,EAAED,iBAAiB","ignoreList":[]}
|
|
Binary file
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import MaintenancePage from './screens/MaintenancePage';
|
|
2
|
+
import RequestDetail from './screens/RequestDetail';
|
|
3
|
+
import ServiceRequest from './screens/ServiceRequest';
|
|
4
|
+
import JobTypePicker from './screens/JobTypePicker';
|
|
5
|
+
import RequestNotes from './screens/RequestNotes';
|
|
6
|
+
import JobsReducer from './reducers/JobsReducer';
|
|
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
|
+
})();
|
|
22
|
+
export { default as Config } from './feature.config';
|
|
23
|
+
export { default as WidgetSmall } from './components/WidgetSmall';
|
|
24
|
+
export { default as WidgetLarge } from './components/WidgetLarge';
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/* eslint-disable no-param-reassign */
|
|
2
|
+
import _ from 'lodash';
|
|
3
|
+
import { REHYDRATE } from 'redux-persist';
|
|
4
|
+
import { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from '../actions/types';
|
|
5
|
+
import { ActionTypes } from '../core.config';
|
|
6
|
+
import { values } from '../values.config';
|
|
7
|
+
const REDUCER_KEY = values.reducerKey;
|
|
8
|
+
const INITIAL_STATE = {
|
|
9
|
+
jobs: []
|
|
10
|
+
};
|
|
11
|
+
export default (state = INITIAL_STATE, action) => {
|
|
12
|
+
let updateJobs = [];
|
|
13
|
+
let index = 0;
|
|
14
|
+
switch (action.type) {
|
|
15
|
+
case ActionTypes.LOGOUT:
|
|
16
|
+
case ActionTypes.CHANGE_ROLE:
|
|
17
|
+
return INITIAL_STATE;
|
|
18
|
+
case JOBS_LOADED:
|
|
19
|
+
return {
|
|
20
|
+
...state,
|
|
21
|
+
jobs: action.payload.map(job => ({
|
|
22
|
+
title: job.title || job.description,
|
|
23
|
+
...job
|
|
24
|
+
}))
|
|
25
|
+
};
|
|
26
|
+
case JOBS_ADDED:
|
|
27
|
+
updateJobs = action.payload.map(job => ({
|
|
28
|
+
title: job.title || job.description,
|
|
29
|
+
...job
|
|
30
|
+
}));
|
|
31
|
+
updateJobs = _.unionWith(updateJobs, state.jobs, (j1, j2) => {
|
|
32
|
+
return j1.id === j2.id;
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
...state,
|
|
36
|
+
jobs: updateJobs
|
|
37
|
+
};
|
|
38
|
+
case JOB_ADDED:
|
|
39
|
+
updateJobs = [...state.jobs];
|
|
40
|
+
index = updateJobs.findIndex(item => item.id === action.payload.id);
|
|
41
|
+
if (index > -1) {
|
|
42
|
+
updateJobs[index] = action.payload;
|
|
43
|
+
} else {
|
|
44
|
+
updateJobs.push(action.payload);
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
...state,
|
|
48
|
+
jobs: updateJobs
|
|
49
|
+
};
|
|
50
|
+
case REHYDRATE:
|
|
51
|
+
if (!action.payload) return state;
|
|
52
|
+
if (action.payload[REDUCER_KEY]) {
|
|
53
|
+
if (action.payload[REDUCER_KEY].jobs == null) {
|
|
54
|
+
action.payload[REDUCER_KEY].jobs = [];
|
|
55
|
+
}
|
|
56
|
+
return action.payload[REDUCER_KEY];
|
|
57
|
+
}
|
|
58
|
+
return state;
|
|
59
|
+
default:
|
|
60
|
+
return state;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=JobsReducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
+
import React, { Component } from 'react';
|
|
5
|
+
import _ from 'lodash';
|
|
6
|
+
import { TouchableOpacity, View, ScrollView, Text } from 'react-native';
|
|
7
|
+
import { connect } from 'react-redux';
|
|
8
|
+
import { Icon } from 'react-native-elements';
|
|
9
|
+
import { Services } from '../feature.config';
|
|
10
|
+
import { Components, Colours } from '../core.config';
|
|
11
|
+
class JobTypePicker extends Component {
|
|
12
|
+
constructor(...args) {
|
|
13
|
+
super(...args);
|
|
14
|
+
_defineProperty(this, "state", {
|
|
15
|
+
currentType: null
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
UNSAFE_componentWillMount() {
|
|
19
|
+
this.setState({
|
|
20
|
+
currentType: this.props.currentType
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
onPressBack() {
|
|
24
|
+
Services.navigation.goBack();
|
|
25
|
+
}
|
|
26
|
+
onTypePress(type) {
|
|
27
|
+
this.props.onSelectType(type);
|
|
28
|
+
this.setState({
|
|
29
|
+
currentType: type
|
|
30
|
+
});
|
|
31
|
+
setTimeout(() => {
|
|
32
|
+
this.onPressBack();
|
|
33
|
+
}, 200);
|
|
34
|
+
}
|
|
35
|
+
renderMain() {
|
|
36
|
+
if (_.isEmpty(this.props.types)) {
|
|
37
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
38
|
+
style: {
|
|
39
|
+
marginTop: 16
|
|
40
|
+
}
|
|
41
|
+
}, /*#__PURE__*/React.createElement(Components.Spinner, null));
|
|
42
|
+
}
|
|
43
|
+
return /*#__PURE__*/React.createElement(Components.FormCard, {
|
|
44
|
+
style: {
|
|
45
|
+
marginTop: 16
|
|
46
|
+
}
|
|
47
|
+
}, this.renderOptions());
|
|
48
|
+
}
|
|
49
|
+
renderOptions() {
|
|
50
|
+
return this.props.types.map((rep, index) => {
|
|
51
|
+
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
52
|
+
key: index,
|
|
53
|
+
onPress: this.onTypePress.bind(this, rep.typeName)
|
|
54
|
+
}, /*#__PURE__*/React.createElement(Components.FormCardSection, {
|
|
55
|
+
label: rep.typeName,
|
|
56
|
+
labelStyle: {
|
|
57
|
+
height: 0,
|
|
58
|
+
margin: 0
|
|
59
|
+
},
|
|
60
|
+
hasUnderline: true,
|
|
61
|
+
hasContent: true
|
|
62
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
63
|
+
style: styles.labelContainer
|
|
64
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
65
|
+
style: styles.labelText
|
|
66
|
+
}, rep.typeName), /*#__PURE__*/React.createElement(Icon, {
|
|
67
|
+
name: "check-circle"
|
|
68
|
+
//style={styles.uploadButtonInner}
|
|
69
|
+
,
|
|
70
|
+
type: "font-awesome",
|
|
71
|
+
iconStyle: [{
|
|
72
|
+
color: '#d5d9e0',
|
|
73
|
+
fontSize: 20
|
|
74
|
+
}, rep.typeName === this.state.currentType && {
|
|
75
|
+
color: Colours.COLOUR_GREEN
|
|
76
|
+
}]
|
|
77
|
+
})), !_.isEmpty(rep.description) && /*#__PURE__*/React.createElement(Text, {
|
|
78
|
+
style: styles.description
|
|
79
|
+
}, rep.description)));
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
render() {
|
|
83
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
84
|
+
style: styles.container
|
|
85
|
+
}, /*#__PURE__*/React.createElement(Components.Header, {
|
|
86
|
+
leftIcon: "angle-left",
|
|
87
|
+
onPressLeft: this.onPressBack.bind(this),
|
|
88
|
+
text: "Select type"
|
|
89
|
+
}), /*#__PURE__*/React.createElement(ScrollView, {
|
|
90
|
+
style: {
|
|
91
|
+
flex: 1
|
|
92
|
+
}
|
|
93
|
+
}, this.renderMain()));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const styles = {
|
|
97
|
+
container: {
|
|
98
|
+
flex: 1,
|
|
99
|
+
position: 'relative',
|
|
100
|
+
backgroundColor: '#f0f0f5'
|
|
101
|
+
},
|
|
102
|
+
row: {
|
|
103
|
+
flexDirection: 'row',
|
|
104
|
+
alignItems: 'center',
|
|
105
|
+
minHeight: 22
|
|
106
|
+
},
|
|
107
|
+
text: {
|
|
108
|
+
flex: 1,
|
|
109
|
+
fontFamily: 'sf-regular',
|
|
110
|
+
fontSize: 14,
|
|
111
|
+
color: Colours.TEXT_DARK
|
|
112
|
+
},
|
|
113
|
+
labelContainer: {
|
|
114
|
+
flexDirection: 'row',
|
|
115
|
+
justifyContent: 'space-between'
|
|
116
|
+
},
|
|
117
|
+
labelText: {
|
|
118
|
+
fontFamily: 'sf-medium',
|
|
119
|
+
fontSize: 16,
|
|
120
|
+
color: Colours.TEXT_DARK
|
|
121
|
+
},
|
|
122
|
+
description: {
|
|
123
|
+
marginTop: 5,
|
|
124
|
+
fontSize: 14,
|
|
125
|
+
fontFamily: 'sf-regular',
|
|
126
|
+
color: Colours.TEXT_DARK
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
export default connect(null, {})(JobTypePicker);
|
|
130
|
+
//# sourceMappingURL=JobTypePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Component","_","TouchableOpacity","View","ScrollView","Text","connect","Icon","Services","Components","Colours","JobTypePicker","constructor","args","_defineProperty","currentType","UNSAFE_componentWillMount","setState","props","onPressBack","navigation","goBack","onTypePress","type","onSelectType","setTimeout","renderMain","isEmpty","types","createElement","style","marginTop","Spinner","FormCard","renderOptions","map","rep","index","key","onPress","bind","typeName","FormCardSection","label","labelStyle","height","margin","hasUnderline","hasContent","styles","labelContainer","labelText","name","iconStyle","color","fontSize","state","COLOUR_GREEN","description","render","container","Header","leftIcon","onPressLeft","text","flex","position","backgroundColor","row","flexDirection","alignItems","minHeight","fontFamily","TEXT_DARK","justifyContent"],"sources":["JobTypePicker.js"],"sourcesContent":["import React, { Component } from 'react';\nimport _ from 'lodash';\nimport { TouchableOpacity, View, ScrollView, Text } from 'react-native';\nimport { connect } from 'react-redux';\nimport { Icon } from 'react-native-elements';\nimport { Services } from '../feature.config';\nimport { Components, Colours } from '../core.config';\n\nclass JobTypePicker extends Component {\n state = {\n currentType: null,\n };\n\n UNSAFE_componentWillMount() {\n this.setState({ currentType: this.props.currentType });\n }\n\n onPressBack() {\n Services.navigation.goBack();\n }\n\n onTypePress(type) {\n this.props.onSelectType(type);\n this.setState({ currentType: type });\n setTimeout(() => {\n this.onPressBack();\n }, 200);\n }\n\n renderMain() {\n if (_.isEmpty(this.props.types)) {\n return (\n <View style={{ marginTop: 16 }}>\n <Components.Spinner />\n </View>\n );\n }\n\n return <Components.FormCard style={{ marginTop: 16 }}>{this.renderOptions()}</Components.FormCard>;\n }\n\n renderOptions() {\n return this.props.types.map((rep, index) => {\n return (\n <TouchableOpacity key={index} onPress={this.onTypePress.bind(this, rep.typeName)}>\n <Components.FormCardSection label={rep.typeName} labelStyle={{ height: 0, margin: 0 }} hasUnderline hasContent>\n <View style={styles.labelContainer}>\n <Text style={styles.labelText}>{rep.typeName}</Text>\n <Icon\n name=\"check-circle\"\n //style={styles.uploadButtonInner}\n type=\"font-awesome\"\n iconStyle={[{ color: '#d5d9e0', fontSize: 20 }, rep.typeName === this.state.currentType && { color: Colours.COLOUR_GREEN }]}\n />\n </View>\n {!_.isEmpty(rep.description) && <Text style={styles.description}>{rep.description}</Text>}\n </Components.FormCardSection>\n </TouchableOpacity>\n );\n });\n }\n\n render() {\n return (\n <View style={styles.container}>\n <Components.Header leftIcon=\"angle-left\" onPressLeft={this.onPressBack.bind(this)} text=\"Select type\" />\n <ScrollView style={{ flex: 1 }}>{this.renderMain()}</ScrollView>\n </View>\n );\n }\n}\n\nconst styles = {\n container: {\n flex: 1,\n position: 'relative',\n backgroundColor: '#f0f0f5',\n },\n row: {\n flexDirection: 'row',\n alignItems: 'center',\n minHeight: 22,\n },\n text: {\n flex: 1,\n fontFamily: 'sf-regular',\n fontSize: 14,\n color: Colours.TEXT_DARK,\n },\n labelContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n labelText: {\n fontFamily: 'sf-medium',\n fontSize: 16,\n color: Colours.TEXT_DARK,\n },\n description: {\n marginTop: 5,\n fontSize: 14,\n fontFamily: 'sf-regular',\n color: Colours.TEXT_DARK,\n },\n};\n\nexport default connect(null, {})(JobTypePicker);\n"],"mappings":"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","ignoreList":[]}
|