@plusscommunities/pluss-maintenance-app 7.0.0-beta.0 → 7.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/module/actions/JobActions.js +44 -1
  2. package/dist/module/actions/JobActions.js.map +1 -1
  3. package/dist/module/actions/types.js +3 -0
  4. package/dist/module/actions/types.js.map +1 -1
  5. package/dist/module/apis/index.js +2 -0
  6. package/dist/module/apis/index.js.map +1 -1
  7. package/dist/module/apis/maintenanceActions.js +21 -6
  8. package/dist/module/apis/maintenanceActions.js.map +1 -1
  9. package/dist/module/components/FilterPopupMenu.js +34 -18
  10. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  11. package/dist/module/components/MaintenanceList.js +47 -56
  12. package/dist/module/components/MaintenanceList.js.map +1 -1
  13. package/dist/module/components/MaintenanceListItem.js +39 -26
  14. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  15. package/dist/module/components/MaintenanceWidgetItem.js +12 -12
  16. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  17. package/dist/module/components/PrioritySelectorPopup.js +82 -0
  18. package/dist/module/components/PrioritySelectorPopup.js.map +1 -0
  19. package/dist/module/components/StatusSelectorPopup.js +9 -14
  20. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  21. package/dist/module/components/WidgetSmall.js +7 -3
  22. package/dist/module/components/WidgetSmall.js.map +1 -1
  23. package/dist/module/helper.js +39 -25
  24. package/dist/module/helper.js.map +1 -1
  25. package/dist/module/reducers/JobsReducer.js +31 -2
  26. package/dist/module/reducers/JobsReducer.js.map +1 -1
  27. package/dist/module/screens/RequestDetail.js +90 -18
  28. package/dist/module/screens/RequestDetail.js.map +1 -1
  29. package/dist/module/screens/RequestNotes.js +430 -21
  30. package/dist/module/screens/RequestNotes.js.map +1 -1
  31. package/dist/module/values.config.a.js +6 -1
  32. package/dist/module/values.config.a.js.map +1 -1
  33. package/dist/module/values.config.default.js +6 -1
  34. package/dist/module/values.config.default.js.map +1 -1
  35. package/dist/module/values.config.forms.js +6 -1
  36. package/dist/module/values.config.forms.js.map +1 -1
  37. package/dist/module/values.config.js +34 -29
  38. package/dist/module/values.config.js.map +1 -1
  39. package/package.json +2 -2
  40. package/src/actions/JobActions.js +53 -1
  41. package/src/actions/types.js +4 -0
  42. package/src/apis/index.js +4 -0
  43. package/src/apis/maintenanceActions.js +18 -6
  44. package/src/components/FilterPopupMenu.js +40 -21
  45. package/src/components/MaintenanceList.js +38 -47
  46. package/src/components/MaintenanceListItem.js +35 -21
  47. package/src/components/MaintenanceWidgetItem.js +16 -12
  48. package/src/components/PrioritySelectorPopup.js +79 -0
  49. package/src/components/StatusSelectorPopup.js +8 -14
  50. package/src/components/WidgetSmall.js +5 -3
  51. package/src/helper.js +50 -21
  52. package/src/reducers/JobsReducer.js +25 -1
  53. package/src/screens/RequestDetail.js +87 -24
  54. package/src/screens/RequestNotes.js +429 -30
  55. package/src/values.config.a.js +5 -0
  56. package/src/values.config.default.js +5 -0
  57. package/src/values.config.forms.js +5 -0
  58. package/src/values.config.js +34 -29
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","View","StyleSheet","FlatList","TouchableOpacity","Text","_","connect","maintenanceActions","jobsLoaded","jobAdded","jobsAdded","MaintenanceListItem","FilterPopupMenu","Components","Colours","Config","Helper","values","MaintenanceList","constructor","props","_defineProperty","onLoadingChanged","selectedStatus","selectedType","state","res","getJobsRecursive","site","initialStatus","isEmpty","error","console","log","data","getJobTypes","getSite","types","map","t","label","typeName","value","splice","setState","jobId","loading","job","getJobByJobId","source","searchText","selectedAssignee","jobs","filteredList","jobIdMatch","find","j","filter","room","toLowerCase","indexOf","fetchJob","includes","status","type","AssigneeId","jobIndex","unshift","refresh","callback","resetDataSource","showFilterPopup","selected","selectedStatusText","statusText","assignee","selectedAssigneeName","assigneeName","onToggleFilter","filterTexts","push","join","hasPermission","initialStatusText","componentDidMount","refreshTypes","componentDidUpdate","prevProps","dataUpdated","isEqual","getEmptyStateText","options","EmptyText","userCategory","emptyRequestsStaff","emptyRequestsUser","renderEmptyList","createElement","EmptyStateMain","title","style","marginHorizontal","renderFilterButton","onPress","styles","filterButton","filterButtonText","color","colourBrandingMain","getFilterButtonText","renderSearch","searchContainer","GenericInput","placeholder","textEntityName","onChangeText","onSearchText","onSubmitEditing","onSearchSubmit","squaredCorners","hasClear","returnKeyType","renderListHeader","ListHeaderComponent","height","renderList","keyboardShouldPersistTaps","flex","contentContainerStyle","paddingBottom","keyExtractor","item","id","renderItem","itemStyle","ListEmptyComponent","renderFilterPopup","onClose","onSelectFilter","render","container","create","backgroundColor","filterContainerOuter","flexDirection","justifyContent","alignItems","paddingHorizontal","paddingVertical","filterTitle","fontFamily","fontSize","letterSpacing","filterContainer","filterText","marginRight","filterIcon","mapStateToProps","user","notifications","reducerKey","jobsOrdered","orderBy","permissions","category","getMainBrandingColourFromState","updateKey","forwardRef"],"sources":["MaintenanceList.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, StyleSheet, FlatList, TouchableOpacity, Text } from 'react-native';\nimport _ from 'lodash';\nimport { connect } from 'react-redux';\nimport { maintenanceActions } from '../apis';\nimport { jobsLoaded, jobAdded, jobsAdded } from '../actions';\nimport MaintenanceListItem from '../components/MaintenanceListItem';\nimport FilterPopupMenu from './FilterPopupMenu';\nimport { Components, Colours, Config, Helper } from '../core.config';\nimport { values } from '../values.config';\n\nclass MaintenanceList extends Component {\n constructor(props) {\n super(props);\n\n this.initialStatus = props.hasPermission ? 'Unassigned|In Progress' : '';\n this.initialStatusText = props.hasPermission ? 'Incomplete' : '';\n\n this.state = {\n types: [],\n filteredList: props.jobs,\n loading: false,\n searchText: '',\n showFilterPopup: false,\n selectedStatus: this.initialStatus,\n selectedStatusText: this.initialStatusText,\n selectedType: '',\n selectedAssignee: '',\n selectedAssigneeName: '',\n };\n }\n\n componentDidMount() {\n this.refresh();\n this.refreshTypes();\n\n this.resetDataSource();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();\n if (!_.isEqual(prevProps.jobs, this.props.jobs)) this.resetDataSource();\n }\n\n refresh = () => {\n this.onLoadingChanged(true, async () => {\n try {\n const { selectedStatus, selectedType } = this.state;\n // console.log('filters', { selectedStatus, selectedType });\n const res = await maintenanceActions.getJobsRecursive(this.props.site, selectedStatus, selectedType);\n // console.log('refresh', res?.data);\n if (selectedStatus !== this.initialStatus || !_.isEmpty(selectedType)) {\n this.props.jobsAdded(res);\n } else {\n this.props.jobsLoaded(res);\n }\n } catch (error) {\n console.log('refresh error', error);\n } finally {\n this.onLoadingChanged(false);\n }\n });\n };\n\n refreshTypes = async () => {\n const { data } = await maintenanceActions.getJobTypes(Helper.getSite(this.props.site));\n const types = data.map(t => {\n return { label: t.typeName, value: t.typeName };\n });\n types.splice(0, 0, { label: 'All', value: '' });\n // console.log('refreshTypes', types);\n this.setState({ types });\n };\n\n fetchJob = jobId => {\n if (this.state.loading) return;\n\n this.onLoadingChanged(true, async () => {\n try {\n const job = await maintenanceActions.getJobByJobId(this.props.site, jobId);\n // console.log('fetchJob', job?.data);\n this.props.jobAdded(job.data);\n } catch (error) {\n console.log('fetchJob error', error);\n } finally {\n this.onLoadingChanged(false);\n }\n });\n };\n\n getEmptyStateText() {\n if (this.props.options && !_.isEmpty(this.props.options.EmptyText)) {\n return this.props.options.EmptyText;\n }\n return this.props.userCategory === 'staff' ? values.emptyRequestsStaff : values.emptyRequestsUser;\n }\n\n resetDataSource = (source = '') => {\n const { searchText, selectedStatus, selectedType, selectedAssignee } = this.state;\n const { jobs } = this.props;\n\n let filteredList = jobs;\n let jobIdMatch = null;\n if (searchText) {\n jobIdMatch = _.find(jobs, j => j.jobId === searchText);\n filteredList = jobs.filter(j => {\n if (j.room && j.room.toLowerCase().indexOf(searchText.toLowerCase()) > -1) {\n return true;\n }\n return false;\n });\n if (!jobIdMatch) this.fetchJob(searchText);\n }\n if (selectedStatus) filteredList = filteredList.filter(j => selectedStatus.includes(j.status));\n if (selectedType) filteredList = filteredList.filter(j => selectedType.includes(j.type));\n if (selectedAssignee) filteredList = filteredList.filter(j => selectedAssignee.includes(j.AssigneeId));\n if (jobIdMatch) {\n const jobIndex = filteredList.indexOf(jobIdMatch);\n if (jobIndex > -1) {\n filteredList.splice(jobIndex, 1);\n }\n filteredList.unshift(jobIdMatch);\n }\n if (source !== 'search') this.refresh();\n\n this.setState({ filteredList });\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 onSearchText = value => {\n this.setState({ searchText: value }, () => {\n if (_.isEmpty(this.state.searchText)) this.resetDataSource('search');\n });\n };\n\n onSearchSubmit = () => {\n this.resetDataSource('search');\n };\n\n onToggleFilter = () => {\n this.setState({ showFilterPopup: !this.state.showFilterPopup });\n };\n\n onSelectFilter = selected => {\n this.setState(\n {\n selectedStatus: selected.status,\n selectedStatusText: selected.statusText,\n selectedType: selected.type,\n selectedAssignee: selected.assignee,\n selectedAssigneeName: selected.assigneeName,\n },\n () => {\n this.resetDataSource();\n this.onToggleFilter();\n },\n );\n };\n\n getFilterButtonText = () => {\n const { selectedStatus, selectedStatusText, selectedType, selectedAssignee, selectedAssigneeName } = this.state;\n const filterTexts = [];\n if (!_.isEmpty(selectedStatus)) {\n filterTexts.push(selectedStatusText);\n }\n\n if (!_.isEmpty(selectedType)) {\n filterTexts.push(selectedType);\n }\n if (!_.isEmpty(selectedAssignee)) {\n filterTexts.push(selectedAssigneeName);\n }\n if (_.isEmpty(filterTexts)) {\n return 'Filter';\n }\n return `Filtering by ${filterTexts.join(', ')}`;\n };\n\n renderEmptyList() {\n return this.state.loading ? null : <Components.EmptyStateMain title={this.getEmptyStateText()} style={{ marginHorizontal: 16 }} />;\n }\n\n renderFilterButton() {\n return (\n <TouchableOpacity onPress={this.onToggleFilter}>\n <View style={styles.filterButton}>\n <Text style={[styles.filterButtonText, { color: this.props.colourBrandingMain }]}>{this.getFilterButtonText()}</Text>\n </View>\n </TouchableOpacity>\n );\n }\n\n renderSearch() {\n if (!this.props.hasPermission) return null;\n\n return (\n <View style={styles.searchContainer}>\n <Components.GenericInput\n placeholder={`Search by ${values.textEntityName} ID or Address`}\n value={this.state.searchText}\n onChangeText={this.onSearchText}\n onSubmitEditing={this.onSearchSubmit}\n squaredCorners\n hasClear\n // keyboardType={'numeric'}\n returnKeyType={'done'}\n />\n </View>\n );\n }\n\n renderListHeader() {\n const { ListHeaderComponent } = this.props;\n return (\n <View>\n {ListHeaderComponent ? ListHeaderComponent : <View style={{ height: 8 }} />}\n {this.renderFilterButton()}\n {this.renderSearch()}\n </View>\n );\n }\n\n renderList() {\n const { filteredList } = this.state;\n\n return (\n <FlatList\n keyboardShouldPersistTaps=\"always\"\n style={{ flex: 1 }}\n contentContainerStyle={{ paddingBottom: 16 }}\n data={filteredList}\n keyExtractor={item => item.id}\n renderItem={({ item }) => <MaintenanceListItem style={this.props.itemStyle} job={item} />}\n ListEmptyComponent={this.renderEmptyList()}\n ListHeaderComponent={this.renderListHeader()}\n />\n );\n }\n\n renderFilterPopup() {\n const { showFilterPopup, types, selectedStatus, selectedType, selectedAssignee } = this.state;\n if (!showFilterPopup) return null;\n\n return (\n <FilterPopupMenu\n site={this.props.site}\n types={types}\n status={selectedStatus}\n assignee={selectedAssignee}\n type={selectedType}\n onClose={this.onSelectFilter}\n />\n );\n }\n\n render() {\n return (\n <View style={[styles.container, this.props.style]}>\n {this.renderList()}\n {this.renderFilterPopup()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#fff',\n },\n filterContainerOuter: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingHorizontal: 16,\n paddingVertical: 16,\n },\n filterTitle: {\n fontFamily: 'sf-bold',\n fontSize: 11,\n letterSpacing: 0.8,\n color: '#4d4d4d',\n },\n filterContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n filterText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n marginRight: 6,\n },\n filterIcon: {\n fontSize: 20,\n },\n searchContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingBottom: 8,\n paddingHorizontal: 16,\n },\n filterButton: {\n paddingBottom: 8,\n paddingHorizontal: 16,\n flexDirection: 'row-reverse',\n },\n filterButtonText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n },\n});\n\nconst mapStateToProps = state => {\n const { user, notifications } = state;\n const jobs = state[values.reducerKey];\n const jobsOrdered = _.orderBy(jobs.jobs, ['createdUnix'], ['desc']);\n const hasPermission = _.includes(user.permissions, 'maintenanceTracking');\n\n return {\n hasPermission,\n jobs: jobsOrdered,\n site: user.site,\n userCategory: user.category,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n dataUpdated: notifications.dataUpdated[values.updateKey],\n };\n};\n\nexport default connect(mapStateToProps, { jobsLoaded, jobAdded, jobsAdded }, null, { forwardRef: true })(MaintenanceList);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","View","StyleSheet","FlatList","TouchableOpacity","Text","_","connect","maintenanceActions","jobsLoaded","jobAdded","jobsAdded","jobStatusesUpdate","jobHideSeenUpdate","jobsFilterLoaded","MaintenanceListItem","FilterPopupMenu","Components","Colours","Helper","values","MaintenanceList","constructor","props","_defineProperty","onLoadingChanged","jobfilters","res","getJobsRecursive","site","status","priority","type","isEmpty","error","console","log","data","getJobTypes","getSite","types","map","t","label","typeName","value","splice","setState","jobId","state","loading","job","getJobByJobId","source","searchText","jobs","filteredList","jobIdMatch","find","j","filter","room","toLowerCase","indexOf","fetchJob","includes","assignee","AssigneeId","jobIndex","unshift","refresh","callback","resetDataSource","showFilterPopup","selected","onToggleFilter","filterTexts","push","statusText","assigneeName","join","componentDidMount","refreshTypes","componentDidUpdate","prevProps","dataUpdated","isEqual","getEmptyStateText","options","EmptyText","userCategory","emptyRequestsStaff","emptyRequestsUser","renderEmptyList","createElement","EmptyStateMain","title","style","marginHorizontal","renderFilterButton","onPress","styles","filterButton","filterButtonText","color","colourBrandingMain","getFilterButtonText","renderSearch","hasPermission","searchContainer","GenericInput","placeholder","textEntityName","onChangeText","onSearchText","onSubmitEditing","onSearchSubmit","squaredCorners","hasClear","returnKeyType","renderListHeader","ListHeaderComponent","height","renderList","keyboardShouldPersistTaps","flex","contentContainerStyle","paddingBottom","keyExtractor","item","id","renderItem","itemStyle","ListEmptyComponent","renderFilterPopup","onClose","onSelectFilter","render","container","create","backgroundColor","filterContainerOuter","flexDirection","justifyContent","alignItems","paddingHorizontal","paddingVertical","filterTitle","fontFamily","fontSize","letterSpacing","filterContainer","filterText","marginRight","filterIcon","mapStateToProps","user","notifications","reducerKey","jobsOrdered","orderBy","permissions","category","getMainBrandingColourFromState","updateKey","statusTypes","jobstatuses","forwardRef"],"sources":["MaintenanceList.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, StyleSheet, FlatList, TouchableOpacity, Text } from 'react-native';\nimport _ from 'lodash';\nimport { connect } from 'react-redux';\nimport { maintenanceActions } from '../apis';\nimport { jobsLoaded, jobAdded, jobsAdded, jobStatusesUpdate, jobHideSeenUpdate, jobsFilterLoaded } from '../actions';\nimport MaintenanceListItem from '../components/MaintenanceListItem';\nimport FilterPopupMenu from './FilterPopupMenu';\nimport { Components, Colours, Helper } from '../core.config';\nimport { values } from '../values.config';\n\nclass MaintenanceList extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n types: [],\n filteredList: props.jobs,\n loading: false,\n searchText: '',\n showFilterPopup: false,\n };\n }\n\n componentDidMount() {\n this.props.jobStatusesUpdate(this.props.site);\n this.props.jobHideSeenUpdate(this.props.site);\n this.refresh();\n this.refreshTypes();\n this.resetDataSource();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();\n if (!_.isEqual(prevProps.jobs, this.props.jobs) || !_.isEqual(prevProps.jobfilters, this.props.jobfilters)) this.resetDataSource();\n }\n\n refresh = () => {\n this.onLoadingChanged(true, async () => {\n try {\n const { jobfilters } = this.props;\n const res = await maintenanceActions.getJobsRecursive(this.props.site, jobfilters.status, jobfilters.priority, jobfilters.type);\n // console.log('refresh', res ? JSON.stringify(res[0], null, 2) : null);\n if (!_.isEmpty(jobfilters.status) || !_.isEmpty(jobfilters.priority) || !_.isEmpty(jobfilters.type)) {\n this.props.jobsAdded(res);\n } else {\n this.props.jobsLoaded(res);\n }\n } catch (error) {\n console.log('refresh error', error);\n } finally {\n this.onLoadingChanged(false);\n }\n });\n };\n\n refreshTypes = async () => {\n const { data } = await maintenanceActions.getJobTypes(Helper.getSite(this.props.site));\n const types = data.map(t => {\n return { label: t.typeName, value: t.typeName };\n });\n types.splice(0, 0, { label: 'All', value: '' });\n // console.log('refreshTypes', types);\n this.setState({ types });\n };\n\n fetchJob = jobId => {\n if (this.state.loading) return;\n\n this.onLoadingChanged(true, async () => {\n try {\n const job = await maintenanceActions.getJobByJobId(this.props.site, jobId);\n // console.log('fetchJob', job?.data);\n this.props.jobAdded(job.data);\n } catch (error) {\n console.log('fetchJob error', error);\n } finally {\n this.onLoadingChanged(false);\n }\n });\n };\n\n getEmptyStateText() {\n if (this.props.options && !_.isEmpty(this.props.options.EmptyText)) {\n return this.props.options.EmptyText;\n }\n return this.props.userCategory === 'staff' ? values.emptyRequestsStaff : values.emptyRequestsUser;\n }\n\n resetDataSource = (source = '') => {\n const { jobfilters } = this.props;\n const { searchText } = this.state;\n const { jobs } = this.props;\n\n let filteredList = jobs;\n let jobIdMatch = null;\n if (searchText) {\n jobIdMatch = _.find(jobs, j => j.jobId === searchText);\n filteredList = jobs.filter(j => {\n if (j.room && j.room.toLowerCase().indexOf(searchText.toLowerCase()) > -1) {\n return true;\n }\n return false;\n });\n if (!jobIdMatch) this.fetchJob(searchText);\n }\n if (jobfilters.status) filteredList = filteredList.filter(j => jobfilters.status.includes(j.status));\n if (jobfilters.priority) filteredList = filteredList.filter(j => jobfilters.priority.includes(j.priority));\n if (jobfilters.type) filteredList = filteredList.filter(j => jobfilters.type.includes(j.type));\n if (jobfilters.assignee) filteredList = filteredList.filter(j => jobfilters.assignee.includes(j.AssigneeId));\n if (jobIdMatch) {\n const jobIndex = filteredList.indexOf(jobIdMatch);\n if (jobIndex > -1) {\n filteredList.splice(jobIndex, 1);\n }\n filteredList.unshift(jobIdMatch);\n }\n if (source !== 'search') this.refresh();\n\n this.setState({ filteredList });\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 onSearchText = value => {\n this.setState({ searchText: value }, () => {\n if (_.isEmpty(this.state.searchText)) this.resetDataSource('search');\n });\n };\n\n onSearchSubmit = () => {\n this.resetDataSource('search');\n };\n\n onToggleFilter = () => {\n this.setState({ showFilterPopup: !this.state.showFilterPopup });\n };\n\n onSelectFilter = selected => {\n this.props.jobsFilterLoaded(selected);\n this.onToggleFilter();\n };\n\n getFilterButtonText = () => {\n const { jobfilters } = this.props;\n const filterTexts = [];\n if (!_.isEmpty(jobfilters.status)) {\n filterTexts.push(jobfilters.statusText);\n }\n if (!_.isEmpty(jobfilters.priority)) {\n filterTexts.push(jobfilters.priority);\n }\n if (!_.isEmpty(jobfilters.type)) {\n filterTexts.push(jobfilters.type);\n }\n if (!_.isEmpty(jobfilters.assignee)) {\n filterTexts.push(jobfilters.assigneeName);\n }\n if (_.isEmpty(filterTexts)) {\n return 'Filter';\n }\n return `Filtering by ${filterTexts.join(', ')}`;\n };\n\n renderEmptyList() {\n return this.state.loading ? null : <Components.EmptyStateMain title={this.getEmptyStateText()} style={{ marginHorizontal: 16 }} />;\n }\n\n renderFilterButton() {\n return (\n <TouchableOpacity onPress={this.onToggleFilter}>\n <View style={styles.filterButton}>\n <Text style={[styles.filterButtonText, { color: this.props.colourBrandingMain }]}>{this.getFilterButtonText()}</Text>\n </View>\n </TouchableOpacity>\n );\n }\n\n renderSearch() {\n if (!this.props.hasPermission) return null;\n\n return (\n <View style={styles.searchContainer}>\n <Components.GenericInput\n placeholder={`Search by ${values.textEntityName} ID or Address`}\n value={this.state.searchText}\n onChangeText={this.onSearchText}\n onSubmitEditing={this.onSearchSubmit}\n squaredCorners\n hasClear\n // keyboardType={'numeric'}\n returnKeyType={'done'}\n />\n </View>\n );\n }\n\n renderListHeader() {\n const { ListHeaderComponent } = this.props;\n return (\n <View>\n {ListHeaderComponent ? ListHeaderComponent : <View style={{ height: 8 }} />}\n {this.renderFilterButton()}\n {this.renderSearch()}\n </View>\n );\n }\n\n renderList() {\n const { filteredList } = this.state;\n\n return (\n <FlatList\n keyboardShouldPersistTaps=\"always\"\n style={{ flex: 1 }}\n contentContainerStyle={{ paddingBottom: 16 }}\n data={filteredList}\n keyExtractor={item => item.id}\n renderItem={({ item }) => <MaintenanceListItem style={this.props.itemStyle} job={item} />}\n ListEmptyComponent={this.renderEmptyList()}\n ListHeaderComponent={this.renderListHeader()}\n />\n );\n }\n\n renderFilterPopup() {\n const { jobfilters } = this.props;\n const { showFilterPopup, types } = this.state;\n if (!showFilterPopup) return null;\n\n return (\n <FilterPopupMenu\n site={this.props.site}\n types={types}\n status={jobfilters.status}\n priority={jobfilters.priority}\n assignee={jobfilters.assignee}\n type={jobfilters.type}\n onClose={this.onSelectFilter}\n />\n );\n }\n\n render() {\n return (\n <View style={[styles.container, this.props.style]}>\n {this.renderList()}\n {this.renderFilterPopup()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#fff',\n },\n filterContainerOuter: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingHorizontal: 16,\n paddingVertical: 16,\n },\n filterTitle: {\n fontFamily: 'sf-bold',\n fontSize: 11,\n letterSpacing: 0.8,\n color: '#4d4d4d',\n },\n filterContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n filterText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n marginRight: 6,\n },\n filterIcon: {\n fontSize: 20,\n },\n searchContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingBottom: 8,\n paddingHorizontal: 16,\n },\n filterButton: {\n paddingBottom: 8,\n paddingHorizontal: 16,\n flexDirection: 'row-reverse',\n },\n filterButtonText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n },\n});\n\nconst mapStateToProps = state => {\n const { user, notifications } = state;\n const jobs = state[values.reducerKey];\n const jobsOrdered = _.orderBy(jobs.jobs, ['createdUnix'], ['desc']);\n const hasPermission = _.includes(user.permissions, 'maintenanceTracking');\n\n return {\n hasPermission,\n jobs: jobsOrdered,\n site: user.site,\n userCategory: user.category,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n dataUpdated: notifications.dataUpdated[values.updateKey],\n statusTypes: state[values.reducerKey].jobstatuses,\n jobfilters: state[values.reducerKey].jobfilters,\n };\n};\n\nexport default connect(mapStateToProps, { jobsLoaded, jobAdded, jobsAdded, jobStatusesUpdate, jobHideSeenUpdate, jobsFilterLoaded }, null, { forwardRef: true })(\n MaintenanceList,\n);\n"],"mappings":"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","ignoreList":[]}
@@ -7,19 +7,7 @@ import _ from 'lodash';
7
7
  import { Icon } from '@rneui/themed';
8
8
  import { connect } from 'react-redux';
9
9
  import moment from 'moment';
10
- // import {
11
- // getShadowStyle,
12
- // LINEGREY,
13
- // TEXT_DARK,
14
- // TEXT_LIGHT,
15
- // COLOUR_GREEN,
16
- // getMainBrandingColourFromState,
17
- // hexToRGBAstring,
18
- // getJobStatusProps,
19
- // jobStatusOptions,
20
- // } from '../../js';
21
- // import NavigationService from '../../js/NavigationService';
22
- import { getJobStatusProps, jobStatusOptions } from '../helper';
10
+ import { getJobStatus, getJobPriority } from '../helper';
23
11
  import { Services } from '../feature.config';
24
12
  import { Helper, Colours } from '../core.config';
25
13
  import { values } from '../values.config';
@@ -58,10 +46,11 @@ class MaintenanceListItem extends Component {
58
46
  }
59
47
  renderSeen() {
60
48
  const {
61
- job
49
+ job,
50
+ hideSeen
62
51
  } = this.props;
63
- const showSeen = !job.status || job.status === jobStatusOptions[0].name;
64
- if (!showSeen || !job.seen) {
52
+ const showSeen = !job.status || job.status === getJobStatus(null, this.props).text;
53
+ if (hideSeen || !showSeen || !job.seen) {
65
54
  return null;
66
55
  }
67
56
  return /*#__PURE__*/React.createElement(View, {
@@ -85,10 +74,9 @@ class MaintenanceListItem extends Component {
85
74
  const createdTime = moment(job.createdUnix);
86
75
  const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;
87
76
  const assigneeText = job.Assignee ? `Assigned to\n${job.Assignee.displayName}` : '';
88
- const {
89
- statusText,
90
- statusColor
91
- } = getJobStatusProps(job.status);
77
+ const status = getJobStatus(job.status, this.props);
78
+ const priority = getJobPriority(job.priority);
79
+ const isStaff = this.props.user.category === 'staff';
92
80
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
93
81
  onPress: this.onPressJob
94
82
  }, /*#__PURE__*/React.createElement(View, {
@@ -131,23 +119,29 @@ class MaintenanceListItem extends Component {
131
119
  style: styles.jobActivityContainer
132
120
  }, /*#__PURE__*/React.createElement(View, {
133
121
  style: [styles.jobStatusContainer, {
134
- backgroundColor: statusColor
122
+ backgroundColor: status === null || status === void 0 ? void 0 : status.color
135
123
  }]
136
124
  }, /*#__PURE__*/React.createElement(Text, {
137
125
  style: styles.jobStatusText
138
- }, statusText)), /*#__PURE__*/React.createElement(View, {
126
+ }, status === null || status === void 0 ? void 0 : status.text)), /*#__PURE__*/React.createElement(View, {
139
127
  style: [styles.jobStatusLine, {
140
- borderColor: statusColor
128
+ borderColor: status === null || status === void 0 ? void 0 : status.color
141
129
  }]
142
130
  }, /*#__PURE__*/React.createElement(View, {
143
131
  style: styles.jobStatusLineMask
144
132
  })), /*#__PURE__*/React.createElement(View, {
145
133
  style: [styles.jobStatusCircle, {
146
- backgroundColor: statusColor
134
+ backgroundColor: status === null || status === void 0 ? void 0 : status.color
147
135
  }]
148
136
  }), /*#__PURE__*/React.createElement(Text, {
149
137
  style: styles.jobStatusDateText
150
- }, assigneeText))))));
138
+ }, assigneeText)), isStaff && /*#__PURE__*/React.createElement(View, {
139
+ style: [styles.jobPriorityContainer, {
140
+ backgroundColor: priority.color
141
+ }]
142
+ }, /*#__PURE__*/React.createElement(Text, {
143
+ style: styles.jobPriorityText
144
+ }, priority.label))))));
151
145
  }
152
146
  }
153
147
  const styles = StyleSheet.create({
@@ -311,11 +305,30 @@ const styles = StyleSheet.create({
311
305
  fontFamily: 'sf-medium',
312
306
  fontSize: 14,
313
307
  color: Colours.TEXT_DARK
308
+ },
309
+ jobPriorityContainer: {
310
+ flexDirection: 'row',
311
+ alignItems: 'center',
312
+ justifyContent: 'center',
313
+ width: 105,
314
+ height: 24,
315
+ paddingHorizontal: 8,
316
+ borderRadius: 4,
317
+ marginTop: 8
318
+ },
319
+ jobPriorityText: {
320
+ color: '#fff',
321
+ textAlign: 'center',
322
+ fontFamily: 'sf-semibold',
323
+ fontSize: 13
314
324
  }
315
325
  });
316
326
  const mapStateToProps = state => {
317
327
  return {
318
- colourBrandingMain: Colours.getMainBrandingColourFromState(state)
328
+ user: state.user,
329
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state),
330
+ statusTypes: state[values.reducerKey].jobstatuses,
331
+ hideSeen: state[values.reducerKey].hideSeen
319
332
  };
320
333
  };
321
334
  export default connect(mapStateToProps, {})(MaintenanceListItem);
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Image","Text","TouchableOpacity","View","StyleSheet","_","Icon","connect","moment","getJobStatusProps","jobStatusOptions","Services","Helper","Colours","values","MaintenanceListItem","constructor","args","_defineProperty","navigation","navigate","screenRequestDetail","job","props","renderCommentCount","commentCount","createElement","style","styles","commentCountContainer","commentCountText","renderDescription","isEmpty","description","jobDescriptionText","renderSeen","showSeen","status","name","seen","jobSeenContainer","type","iconStyle","jobSeenIcon","color","colourBrandingMain","jobSeenText","render","createdTime","createdUnix","createdTimeText","format","assigneeText","Assignee","displayName","statusText","statusColor","onPress","onPressJob","jobContainer","jobInnerContainer","jobTopSection","jobTopLeft","jobId","jobIdText","textEntityName","jobTitleText","title","room","jobLocationText","jobTypeSeenContainer","jobTypeContainer","backgroundColor","hexToRGBAstring","jobTypeText","numberOfLines","jobTopRight","jobCommentImage","source","require","jobBottomSection","jobCreatedText","jobActivityContainer","jobStatusContainer","jobStatusText","jobStatusLine","borderColor","jobStatusLineMask","jobStatusCircle","jobStatusDateText","create","marginVertical","paddingHorizontal","getShadowStyle","flexDirection","alignItems","paddingVertical","borderBottomWidth","borderBottomColor","LINEGREY","flex","fontFamily","fontSize","marginBottom","TEXT_DARK","TEXT_LIGHT","marginTop","padding","minWidth","maxWidth","borderRadius","justifyContent","textAlign","marginLeft","paddingTop","width","height","resizeMode","position","top","right","borderWidth","COLOUR_GREEN","jobStatusIcon","borderStyle","left","zIndex","mapStateToProps","state","getMainBrandingColourFromState"],"sources":["MaintenanceListItem.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Image, Text, TouchableOpacity, View, StyleSheet } from 'react-native';\nimport _ from 'lodash';\nimport { Icon } from '@rneui/themed';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\n// import {\n// getShadowStyle,\n// LINEGREY,\n// TEXT_DARK,\n// TEXT_LIGHT,\n// COLOUR_GREEN,\n// getMainBrandingColourFromState,\n// hexToRGBAstring,\n// getJobStatusProps,\n// jobStatusOptions,\n// } from '../../js';\n// import NavigationService from '../../js/NavigationService';\nimport { getJobStatusProps, jobStatusOptions } from '../helper';\nimport { Services } from '../feature.config';\nimport { Helper, Colours } from '../core.config';\nimport { values } from '../values.config';\n\nclass MaintenanceListItem extends Component {\n onPressJob = () => {\n Services.navigation.navigate(values.screenRequestDetail, { job: this.props.job });\n };\n\n renderCommentCount() {\n const { job } = this.props;\n if (!job.commentCount) {\n return null;\n }\n return (\n <View style={styles.commentCountContainer}>\n <Text style={styles.commentCountText}>{job.commentCount > 99 ? '99' : job.commentCount}</Text>\n </View>\n );\n }\n\n renderDescription() {\n const { job } = this.props;\n if (_.isEmpty(job.description)) {\n return null;\n }\n return <Text style={styles.jobDescriptionText}>{job.description}</Text>;\n }\n\n renderSeen() {\n const { job } = this.props;\n const showSeen = !job.status || job.status === jobStatusOptions[0].name;\n if (!showSeen || !job.seen) {\n return null;\n }\n return (\n <View style={styles.jobSeenContainer}>\n <Icon name=\"check\" type=\"font-awesome\" iconStyle={[styles.jobSeenIcon, { color: this.props.colourBrandingMain }]} />\n <Text style={[styles.jobSeenText, { color: this.props.colourBrandingMain }]}>Seen</Text>\n </View>\n );\n }\n\n render() {\n const { job } = this.props;\n const createdTime = moment(job.createdUnix);\n const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;\n const assigneeText = job.Assignee ? `Assigned to\\n${job.Assignee.displayName}` : '';\n const { statusText, statusColor } = getJobStatusProps(job.status);\n\n return (\n <TouchableOpacity onPress={this.onPressJob}>\n <View style={[styles.jobContainer, this.props.style]}>\n <View style={styles.jobInnerContainer}>\n <View style={styles.jobTopSection}>\n <View style={styles.jobTopLeft}>\n {job.jobId ? (\n <Text\n style={[styles.jobIdText, { color: this.props.colourBrandingMain }]}\n >{`${values.textEntityName} #${job.jobId}`}</Text>\n ) : null}\n <Text style={styles.jobTitleText}>{job.title}</Text>\n {job.room ? <Text style={styles.jobLocationText}>{job.room}</Text> : null}\n <View style={styles.jobTypeSeenContainer}>\n <View style={[styles.jobTypeContainer, { backgroundColor: Colours.hexToRGBAstring(this.props.colourBrandingMain, 0.2) }]}>\n <Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]} numberOfLines={2}>\n {job.type}\n </Text>\n </View>\n {this.renderSeen()}\n </View>\n </View>\n <View style={styles.jobTopRight}>\n <Image style={styles.jobCommentImage} source={require('../images/speechbubble.png')} />\n {this.renderCommentCount()}\n </View>\n </View>\n <View style={styles.jobBottomSection}>\n {/* {this.renderDescription()} */}\n <Text style={styles.jobCreatedText}>{createdTimeText}</Text>\n <View style={styles.jobActivityContainer}>\n <View style={[styles.jobStatusContainer, { backgroundColor: statusColor }]}>\n {/* <Icon name=\"wrench\" type=\"font-awesome\" iconStyle={styles.jobStatusIcon} /> */}\n <Text style={styles.jobStatusText}>{statusText}</Text>\n </View>\n <View style={[styles.jobStatusLine, { borderColor: statusColor }]}>\n <View style={styles.jobStatusLineMask} />\n </View>\n <View style={[styles.jobStatusCircle, { backgroundColor: statusColor }]} />\n <Text style={styles.jobStatusDateText}>{assigneeText}</Text>\n </View>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n jobContainer: {\n marginVertical: 8,\n paddingHorizontal: 16,\n },\n jobInnerContainer: {\n ...Helper.getShadowStyle(),\n },\n jobTopSection: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n paddingHorizontal: 10,\n paddingVertical: 10,\n borderBottomWidth: 1,\n borderBottomColor: Colours.LINEGREY,\n },\n jobTopLeft: {\n flex: 1,\n },\n jobIdText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n marginBottom: 4,\n },\n jobTitleText: {\n fontFamily: 'sf-semibold',\n fontSize: 18,\n color: Colours.TEXT_DARK,\n marginBottom: 4,\n },\n jobLocationText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n color: Colours.TEXT_LIGHT,\n marginBottom: 4,\n },\n jobTypeSeenContainer: {\n marginTop: 4,\n flexDirection: 'row',\n alignItems: 'center',\n },\n jobTypeContainer: {\n padding: 4,\n minWidth: 80,\n maxWidth: 140,\n borderRadius: 4,\n justifyContent: 'center',\n },\n jobTypeText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n textAlign: 'center',\n maxWidth: '100%',\n },\n jobSeenContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n marginLeft: 10,\n },\n jobSeenIcon: {\n fontSize: 12,\n },\n jobSeenText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n marginLeft: 4,\n },\n jobTopRight: {\n alignItems: 'center',\n justifyContent: 'center',\n paddingHorizontal: 10,\n paddingTop: 10,\n },\n jobCommentImage: {\n width: 34,\n height: 34,\n resizeMode: 'contain',\n },\n commentCountContainer: {\n position: 'absolute',\n top: 0,\n right: 0,\n borderRadius: 10,\n borderWidth: 2,\n borderColor: '#fff',\n width: 20,\n height: 20,\n backgroundColor: Colours.COLOUR_GREEN,\n justifyContent: 'center',\n alignItems: 'center',\n },\n commentCountText: {\n textAlign: 'center',\n fontFamily: 'sf-bold',\n fontSize: 10,\n color: '#fff',\n },\n jobBottomSection: {\n paddingHorizontal: 10,\n paddingVertical: 16,\n },\n jobDescriptionText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: Colours.TEXT_DARK,\n marginBottom: 8,\n },\n jobCreatedText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n color: Colours.TEXT_LIGHT,\n marginBottom: 10,\n },\n jobActivityContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n jobStatusContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n width: 105,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n jobStatusIcon: {\n color: '#fff',\n fontSize: 14,\n },\n jobStatusText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n jobStatusLine: {\n borderWidth: 1,\n borderStyle: 'dashed',\n width: 30,\n },\n jobStatusLineMask: {\n position: 'absolute',\n left: -1,\n top: -1,\n width: '100%',\n height: 1,\n backgroundColor: '#fff',\n zIndex: 1,\n },\n jobStatusCircle: {\n width: 18,\n height: 18,\n borderRadius: 9,\n },\n jobStatusDateText: {\n flex: 1,\n textAlign: 'right',\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: Colours.TEXT_DARK,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(MaintenanceListItem);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","Image","Text","TouchableOpacity","View","StyleSheet","_","Icon","connect","moment","getJobStatus","getJobPriority","Services","Helper","Colours","values","MaintenanceListItem","constructor","args","_defineProperty","navigation","navigate","screenRequestDetail","job","props","renderCommentCount","commentCount","createElement","style","styles","commentCountContainer","commentCountText","renderDescription","isEmpty","description","jobDescriptionText","renderSeen","hideSeen","showSeen","status","text","seen","jobSeenContainer","name","type","iconStyle","jobSeenIcon","color","colourBrandingMain","jobSeenText","render","createdTime","createdUnix","createdTimeText","format","assigneeText","Assignee","displayName","priority","isStaff","user","category","onPress","onPressJob","jobContainer","jobInnerContainer","jobTopSection","jobTopLeft","jobId","jobIdText","textEntityName","jobTitleText","title","room","jobLocationText","jobTypeSeenContainer","jobTypeContainer","backgroundColor","hexToRGBAstring","jobTypeText","numberOfLines","jobTopRight","jobCommentImage","source","require","jobBottomSection","jobCreatedText","jobActivityContainer","jobStatusContainer","jobStatusText","jobStatusLine","borderColor","jobStatusLineMask","jobStatusCircle","jobStatusDateText","jobPriorityContainer","jobPriorityText","label","create","marginVertical","paddingHorizontal","getShadowStyle","flexDirection","alignItems","paddingVertical","borderBottomWidth","borderBottomColor","LINEGREY","flex","fontFamily","fontSize","marginBottom","TEXT_DARK","TEXT_LIGHT","marginTop","padding","minWidth","maxWidth","borderRadius","justifyContent","textAlign","marginLeft","paddingTop","width","height","resizeMode","position","top","right","borderWidth","COLOUR_GREEN","jobStatusIcon","borderStyle","left","zIndex","mapStateToProps","state","getMainBrandingColourFromState","statusTypes","reducerKey","jobstatuses"],"sources":["MaintenanceListItem.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Image, Text, TouchableOpacity, View, StyleSheet } from 'react-native';\nimport _ from 'lodash';\nimport { Icon } from '@rneui/themed';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport { getJobStatus, getJobPriority } from '../helper';\nimport { Services } from '../feature.config';\nimport { Helper, Colours } from '../core.config';\nimport { values } from '../values.config';\n\nclass MaintenanceListItem extends Component {\n onPressJob = () => {\n Services.navigation.navigate(values.screenRequestDetail, { job: this.props.job });\n };\n\n renderCommentCount() {\n const { job } = this.props;\n if (!job.commentCount) {\n return null;\n }\n return (\n <View style={styles.commentCountContainer}>\n <Text style={styles.commentCountText}>{job.commentCount > 99 ? '99' : job.commentCount}</Text>\n </View>\n );\n }\n\n renderDescription() {\n const { job } = this.props;\n if (_.isEmpty(job.description)) {\n return null;\n }\n return <Text style={styles.jobDescriptionText}>{job.description}</Text>;\n }\n\n renderSeen() {\n const { job, hideSeen } = this.props;\n const showSeen = !job.status || job.status === getJobStatus(null, this.props).text;\n if (hideSeen || !showSeen || !job.seen) {\n return null;\n }\n return (\n <View style={styles.jobSeenContainer}>\n <Icon name=\"check\" type=\"font-awesome\" iconStyle={[styles.jobSeenIcon, { color: this.props.colourBrandingMain }]} />\n <Text style={[styles.jobSeenText, { color: this.props.colourBrandingMain }]}>Seen</Text>\n </View>\n );\n }\n\n render() {\n const { job } = this.props;\n const createdTime = moment(job.createdUnix);\n const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;\n const assigneeText = job.Assignee ? `Assigned to\\n${job.Assignee.displayName}` : '';\n const status = getJobStatus(job.status, this.props);\n const priority = getJobPriority(job.priority);\n const isStaff = this.props.user.category === 'staff'\n\n return (\n <TouchableOpacity onPress={this.onPressJob}>\n <View style={[styles.jobContainer, this.props.style]}>\n <View style={styles.jobInnerContainer}>\n <View style={styles.jobTopSection}>\n <View style={styles.jobTopLeft}>\n {job.jobId ? (\n <Text\n style={[styles.jobIdText, { color: this.props.colourBrandingMain }]}\n >{`${values.textEntityName} #${job.jobId}`}</Text>\n ) : null}\n <Text style={styles.jobTitleText}>{job.title}</Text>\n {job.room ? <Text style={styles.jobLocationText}>{job.room}</Text> : null}\n <View style={styles.jobTypeSeenContainer}>\n <View style={[styles.jobTypeContainer, { backgroundColor: Colours.hexToRGBAstring(this.props.colourBrandingMain, 0.2) }]}>\n <Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]} numberOfLines={2}>\n {job.type}\n </Text>\n </View>\n {this.renderSeen()}\n </View>\n </View>\n <View style={styles.jobTopRight}>\n <Image style={styles.jobCommentImage} source={require('../images/speechbubble.png')} />\n {this.renderCommentCount()}\n </View>\n </View>\n <View style={styles.jobBottomSection}>\n {/* {this.renderDescription()} */}\n <Text style={styles.jobCreatedText}>{createdTimeText}</Text>\n <View style={styles.jobActivityContainer}>\n <View style={[styles.jobStatusContainer, { backgroundColor: status?.color }]}>\n {/* <Icon name=\"wrench\" type=\"font-awesome\" iconStyle={styles.jobStatusIcon} /> */}\n <Text style={styles.jobStatusText}>{status?.text}</Text>\n </View>\n <View style={[styles.jobStatusLine, { borderColor: status?.color }]}>\n <View style={styles.jobStatusLineMask} />\n </View>\n <View style={[styles.jobStatusCircle, { backgroundColor: status?.color }]} />\n <Text style={styles.jobStatusDateText}>{assigneeText}</Text>\n </View>\n {isStaff && (\n <View style={[styles.jobPriorityContainer, { backgroundColor: priority.color }]}>\n <Text style={styles.jobPriorityText}>{priority.label}</Text>\n </View>\n )}\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n jobContainer: {\n marginVertical: 8,\n paddingHorizontal: 16,\n },\n jobInnerContainer: {\n ...Helper.getShadowStyle(),\n },\n jobTopSection: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n paddingHorizontal: 10,\n paddingVertical: 10,\n borderBottomWidth: 1,\n borderBottomColor: Colours.LINEGREY,\n },\n jobTopLeft: {\n flex: 1,\n },\n jobIdText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n marginBottom: 4,\n },\n jobTitleText: {\n fontFamily: 'sf-semibold',\n fontSize: 18,\n color: Colours.TEXT_DARK,\n marginBottom: 4,\n },\n jobLocationText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n color: Colours.TEXT_LIGHT,\n marginBottom: 4,\n },\n jobTypeSeenContainer: {\n marginTop: 4,\n flexDirection: 'row',\n alignItems: 'center',\n },\n jobTypeContainer: {\n padding: 4,\n minWidth: 80,\n maxWidth: 140,\n borderRadius: 4,\n justifyContent: 'center',\n },\n jobTypeText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n textAlign: 'center',\n maxWidth: '100%',\n },\n jobSeenContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n marginLeft: 10,\n },\n jobSeenIcon: {\n fontSize: 12,\n },\n jobSeenText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n marginLeft: 4,\n },\n jobTopRight: {\n alignItems: 'center',\n justifyContent: 'center',\n paddingHorizontal: 10,\n paddingTop: 10,\n },\n jobCommentImage: {\n width: 34,\n height: 34,\n resizeMode: 'contain',\n },\n commentCountContainer: {\n position: 'absolute',\n top: 0,\n right: 0,\n borderRadius: 10,\n borderWidth: 2,\n borderColor: '#fff',\n width: 20,\n height: 20,\n backgroundColor: Colours.COLOUR_GREEN,\n justifyContent: 'center',\n alignItems: 'center',\n },\n commentCountText: {\n textAlign: 'center',\n fontFamily: 'sf-bold',\n fontSize: 10,\n color: '#fff',\n },\n jobBottomSection: {\n paddingHorizontal: 10,\n paddingVertical: 16,\n },\n jobDescriptionText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: Colours.TEXT_DARK,\n marginBottom: 8,\n },\n jobCreatedText: {\n fontFamily: 'sf-medium',\n fontSize: 12,\n color: Colours.TEXT_LIGHT,\n marginBottom: 10,\n },\n jobActivityContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n jobStatusContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n width: 105,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n jobStatusIcon: {\n color: '#fff',\n fontSize: 14,\n },\n jobStatusText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n jobStatusLine: {\n borderWidth: 1,\n borderStyle: 'dashed',\n width: 30,\n },\n jobStatusLineMask: {\n position: 'absolute',\n left: -1,\n top: -1,\n width: '100%',\n height: 1,\n backgroundColor: '#fff',\n zIndex: 1,\n },\n jobStatusCircle: {\n width: 18,\n height: 18,\n borderRadius: 9,\n },\n jobStatusDateText: {\n flex: 1,\n textAlign: 'right',\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: Colours.TEXT_DARK,\n },\n jobPriorityContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n width: 105,\n height: 24,\n paddingHorizontal: 8,\n borderRadius: 4,\n marginTop: 8,\n },\n jobPriorityText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n user: state.user,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n statusTypes: state[values.reducerKey].jobstatuses,\n hideSeen: state[values.reducerKey].hideSeen,\n };\n};\n\nexport default connect(mapStateToProps, {})(MaintenanceListItem);\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ import { connect } from 'react-redux';
7
7
  import { Icon } from '@rneui/themed';
8
8
  import moment from 'moment';
9
9
  import _ from 'lodash';
10
- import { getJobStatusProps, jobStatusOptions } from '../helper';
10
+ import { getJobStatus } from '../helper';
11
11
  import { Services } from '../feature.config';
12
12
  import { Colours, Helper } from '../core.config';
13
13
  import { values } from '../values.config';
@@ -22,16 +22,14 @@ class MaintenanceWidgetItem extends Component {
22
22
  }
23
23
  render() {
24
24
  const {
25
- job
25
+ job,
26
+ hideSeen
26
27
  } = this.props;
27
28
  const createdTime = moment(job.createdUnix);
28
29
  const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;
29
- const {
30
- statusText,
31
- statusColor
32
- } = getJobStatusProps(job.status);
30
+ const status = getJobStatus(job.status, this.props);
33
31
  const seenText = (() => {
34
- if (!job.status || job.status === jobStatusOptions[0].name) {
32
+ if (!job.status || job.status === getJobStatus(null, this.props).text) {
35
33
  return job.seen ? 'Seen' : 'Unseen';
36
34
  }
37
35
  return '';
@@ -50,7 +48,7 @@ class MaintenanceWidgetItem extends Component {
50
48
  style: styles.jobTitleText
51
49
  }, job.title), /*#__PURE__*/React.createElement(Text, {
52
50
  style: styles.jobCreatedTimeText
53
- }, createdTimeText), /*#__PURE__*/React.createElement(View, {
51
+ }, createdTimeText), !hideSeen ? /*#__PURE__*/React.createElement(View, {
54
52
  style: styles.jobSeenContainer
55
53
  }, job.seen && !_.isEmpty(seenText) && /*#__PURE__*/React.createElement(Icon, {
56
54
  name: "check",
@@ -62,15 +60,15 @@ class MaintenanceWidgetItem extends Component {
62
60
  style: [styles.jobSeenText, job.seen && {
63
61
  color: this.props.colourBrandingMain
64
62
  }]
65
- }, seenText))), /*#__PURE__*/React.createElement(View, {
63
+ }, seenText)) : null), /*#__PURE__*/React.createElement(View, {
66
64
  style: styles.jobBottomSection
67
65
  }, /*#__PURE__*/React.createElement(View, {
68
66
  style: [styles.jobStatusContainer, {
69
- backgroundColor: statusColor
67
+ backgroundColor: status === null || status === void 0 ? void 0 : status.color
70
68
  }]
71
69
  }, /*#__PURE__*/React.createElement(Text, {
72
70
  style: styles.jobStatusText
73
- }, statusText))))));
71
+ }, status === null || status === void 0 ? void 0 : status.text))))));
74
72
  }
75
73
  }
76
74
  const styles = StyleSheet.create({
@@ -142,7 +140,9 @@ const styles = StyleSheet.create({
142
140
  });
143
141
  const mapStateToProps = state => {
144
142
  return {
145
- colourBrandingMain: Colours.getMainBrandingColourFromState(state)
143
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state),
144
+ statusTypes: state[values.reducerKey].jobstatuses,
145
+ hideSeen: state[values.reducerKey].hideSeen
146
146
  };
147
147
  };
148
148
  export default connect(mapStateToProps, {})(MaintenanceWidgetItem);
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Text","View","StyleSheet","TouchableOpacity","connect","Icon","moment","_","getJobStatusProps","jobStatusOptions","Services","Colours","Helper","values","MaintenanceWidgetItem","constructor","args","_defineProperty","navigation","navigate","screenRequestDetail","job","props","render","createdTime","createdUnix","createdTimeText","format","statusText","statusColor","status","seenText","name","seen","createElement","key","id","onPress","onPressJob","style","styles","jobContainer","jobInnerContainer","jobTopSection","numberOfLines","jobTitleText","title","jobCreatedTimeText","jobSeenContainer","isEmpty","type","iconStyle","jobSeenIcon","color","colourBrandingMain","jobSeenText","jobBottomSection","jobStatusContainer","backgroundColor","jobStatusText","create","padding","width","height","getShadowStyle","flex","paddingTop","fontFamily","fontSize","TEXT_DARK","TEXT_LIGHT","flexDirection","alignItems","marginRight","TEXT_SUPER_LIGHT","justifyContent","paddingVertical","borderTopWidth","borderTopColor","LINEGREY","paddingHorizontal","borderRadius","jobStatusIcon","textAlign","mapStateToProps","state","getMainBrandingColourFromState"],"sources":["MaintenanceWidgetItem.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Text, View, StyleSheet, TouchableOpacity } from 'react-native';\nimport { connect } from 'react-redux';\nimport { Icon } from '@rneui/themed';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport { getJobStatusProps, jobStatusOptions } from '../helper';\nimport { Services } from '../feature.config';\nimport { Colours, Helper } from '../core.config';\nimport { values } from '../values.config';\n\nclass MaintenanceWidgetItem extends Component {\n onPressJob = () => {\n Services.navigation.navigate(values.screenRequestDetail, { job: this.props.job });\n };\n\n render() {\n const { job } = this.props;\n const createdTime = moment(job.createdUnix);\n const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;\n const { statusText, statusColor } = getJobStatusProps(job.status);\n const seenText = (() => {\n if (!job.status || job.status === jobStatusOptions[0].name) {\n return job.seen ? 'Seen' : 'Unseen';\n }\n return '';\n })();\n\n return (\n <TouchableOpacity key={job.id} onPress={this.onPressJob}>\n <View style={styles.jobContainer}>\n <View style={styles.jobInnerContainer}>\n <View style={styles.jobTopSection}>\n <Text numberOfLines={2} style={styles.jobTitleText}>\n {job.title}\n </Text>\n <Text style={styles.jobCreatedTimeText}>{createdTimeText}</Text>\n <View style={styles.jobSeenContainer}>\n {job.seen && !_.isEmpty(seenText) && (\n <Icon name=\"check\" type=\"font-awesome\" iconStyle={[styles.jobSeenIcon, { color: this.props.colourBrandingMain }]} />\n )}\n <Text style={[styles.jobSeenText, job.seen && { color: this.props.colourBrandingMain }]}>{seenText}</Text>\n </View>\n </View>\n <View style={styles.jobBottomSection}>\n <View style={[styles.jobStatusContainer, { backgroundColor: statusColor }]}>\n {/* <Icon name=\"wrench\" type=\"font-awesome\" iconStyle={styles.jobStatusIcon} /> */}\n <Text style={styles.jobStatusText}>{statusText}</Text>\n </View>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n jobContainer: {\n padding: 10,\n },\n jobInnerContainer: {\n width: 140,\n height: 160,\n ...Helper.getShadowStyle(),\n },\n jobTopSection: {\n flex: 1,\n padding: 10,\n paddingTop: 20,\n },\n jobTitleText: {\n flex: 1,\n fontFamily: 'sf-semibold',\n fontSize: 16,\n color: Colours.TEXT_DARK,\n },\n jobCreatedTimeText: {\n fontFamily: 'sf-medium',\n fontSize: 11,\n color: Colours.TEXT_LIGHT,\n paddingTop: 3,\n },\n jobSeenContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingTop: 5,\n },\n jobSeenIcon: {\n fontSize: 12,\n marginRight: 4,\n },\n jobSeenText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n color: Colours.TEXT_SUPER_LIGHT,\n },\n jobBottomSection: {\n alignItems: 'center',\n justifyContent: 'center',\n paddingVertical: 10,\n borderTopWidth: 1,\n borderTopColor: Colours.LINEGREY,\n },\n jobStatusContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 105,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n jobStatusIcon: {\n color: '#fff',\n fontSize: 14,\n },\n jobStatusText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(MaintenanceWidgetItem);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","Text","View","StyleSheet","TouchableOpacity","connect","Icon","moment","_","getJobStatus","Services","Colours","Helper","values","MaintenanceWidgetItem","constructor","args","_defineProperty","navigation","navigate","screenRequestDetail","job","props","render","hideSeen","createdTime","createdUnix","createdTimeText","format","status","seenText","text","seen","createElement","key","id","onPress","onPressJob","style","styles","jobContainer","jobInnerContainer","jobTopSection","numberOfLines","jobTitleText","title","jobCreatedTimeText","jobSeenContainer","isEmpty","name","type","iconStyle","jobSeenIcon","color","colourBrandingMain","jobSeenText","jobBottomSection","jobStatusContainer","backgroundColor","jobStatusText","create","padding","width","height","getShadowStyle","flex","paddingTop","fontFamily","fontSize","TEXT_DARK","TEXT_LIGHT","flexDirection","alignItems","marginRight","TEXT_SUPER_LIGHT","justifyContent","paddingVertical","borderTopWidth","borderTopColor","LINEGREY","paddingHorizontal","borderRadius","jobStatusIcon","textAlign","mapStateToProps","state","getMainBrandingColourFromState","statusTypes","reducerKey","jobstatuses"],"sources":["MaintenanceWidgetItem.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Text, View, StyleSheet, TouchableOpacity } from 'react-native';\nimport { connect } from 'react-redux';\nimport { Icon } from '@rneui/themed';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport { getJobStatus } from '../helper';\nimport { Services } from '../feature.config';\nimport { Colours, Helper } from '../core.config';\nimport { values } from '../values.config';\n\nclass MaintenanceWidgetItem extends Component {\n onPressJob = () => {\n Services.navigation.navigate(values.screenRequestDetail, { job: this.props.job });\n };\n\n render() {\n const { job, hideSeen } = this.props;\n const createdTime = moment(job.createdUnix);\n const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;\n const status = getJobStatus(job.status, this.props);\n const seenText = (() => {\n if (!job.status || job.status === getJobStatus(null, this.props).text) {\n return job.seen ? 'Seen' : 'Unseen';\n }\n return '';\n })();\n\n return (\n <TouchableOpacity key={job.id} onPress={this.onPressJob}>\n <View style={styles.jobContainer}>\n <View style={styles.jobInnerContainer}>\n <View style={styles.jobTopSection}>\n <Text numberOfLines={2} style={styles.jobTitleText}>\n {job.title}\n </Text>\n <Text style={styles.jobCreatedTimeText}>{createdTimeText}</Text>\n {!hideSeen ? (\n <View style={styles.jobSeenContainer}>\n {job.seen && !_.isEmpty(seenText) && (\n <Icon name=\"check\" type=\"font-awesome\" iconStyle={[styles.jobSeenIcon, { color: this.props.colourBrandingMain }]} />\n )}\n <Text style={[styles.jobSeenText, job.seen && { color: this.props.colourBrandingMain }]}>{seenText}</Text>\n </View>\n ) : null}\n </View>\n <View style={styles.jobBottomSection}>\n <View style={[styles.jobStatusContainer, { backgroundColor: status?.color }]}>\n {/* <Icon name=\"wrench\" type=\"font-awesome\" iconStyle={styles.jobStatusIcon} /> */}\n <Text style={styles.jobStatusText}>{status?.text}</Text>\n </View>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n jobContainer: {\n padding: 10,\n },\n jobInnerContainer: {\n width: 140,\n height: 160,\n ...Helper.getShadowStyle(),\n },\n jobTopSection: {\n flex: 1,\n padding: 10,\n paddingTop: 20,\n },\n jobTitleText: {\n flex: 1,\n fontFamily: 'sf-semibold',\n fontSize: 16,\n color: Colours.TEXT_DARK,\n },\n jobCreatedTimeText: {\n fontFamily: 'sf-medium',\n fontSize: 11,\n color: Colours.TEXT_LIGHT,\n paddingTop: 3,\n },\n jobSeenContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingTop: 5,\n },\n jobSeenIcon: {\n fontSize: 12,\n marginRight: 4,\n },\n jobSeenText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n color: Colours.TEXT_SUPER_LIGHT,\n },\n jobBottomSection: {\n alignItems: 'center',\n justifyContent: 'center',\n paddingVertical: 10,\n borderTopWidth: 1,\n borderTopColor: Colours.LINEGREY,\n },\n jobStatusContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 105,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n jobStatusIcon: {\n color: '#fff',\n fontSize: 14,\n },\n jobStatusText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n statusTypes: state[values.reducerKey].jobstatuses,\n hideSeen: state[values.reducerKey].hideSeen,\n };\n};\n\nexport default connect(mapStateToProps, {})(MaintenanceWidgetItem);\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,82 @@
1
+ import React, { PureComponent } from 'react';
2
+ import { View, StyleSheet, TouchableOpacity, Text } from 'react-native';
3
+ import { connect } from 'react-redux';
4
+ import { jobPriorityOptions } from '../helper';
5
+ import { Components, Colours } from '../core.config';
6
+ class PrioritySelectorPopup extends PureComponent {
7
+ render() {
8
+ const {
9
+ title,
10
+ includeAll,
11
+ allText,
12
+ onClose,
13
+ onSelect
14
+ } = this.props;
15
+ let priorities = jobPriorityOptions;
16
+ if (includeAll) priorities = [{
17
+ label: allText || 'Show All',
18
+ color: this.props.colourBrandingMain
19
+ }, ...priorities];
20
+ return /*#__PURE__*/React.createElement(Components.MiddlePopup, {
21
+ style: [styles.statusPopup, {
22
+ height: priorities.length * 50 + 40
23
+ }],
24
+ onClose: onClose
25
+ }, /*#__PURE__*/React.createElement(Text, {
26
+ style: styles.statusPopupTitle
27
+ }, title || 'Select Priority'), /*#__PURE__*/React.createElement(View, {
28
+ style: styles.statusPopupOptionsContainer
29
+ }, priorities.map(priority => {
30
+ return /*#__PURE__*/React.createElement(TouchableOpacity, {
31
+ key: priority.label,
32
+ onPress: () => onSelect(priority.label)
33
+ }, /*#__PURE__*/React.createElement(View, {
34
+ style: [styles.jobStatusContainer, {
35
+ backgroundColor: priority.color
36
+ }]
37
+ }, /*#__PURE__*/React.createElement(Text, {
38
+ style: styles.jobStatusText
39
+ }, priority.label)));
40
+ })));
41
+ }
42
+ }
43
+ const styles = StyleSheet.create({
44
+ statusPopup: {
45
+ width: 160,
46
+ padding: 16,
47
+ borderRadius: 12
48
+ },
49
+ statusPopupTitle: {
50
+ fontFamily: 'sf-bold',
51
+ color: Colours.TEXT_DARK,
52
+ fontSize: 18,
53
+ marginBottom: 16
54
+ },
55
+ statusPopupOptionsContainer: {
56
+ flex: 1,
57
+ justifyContent: 'space-between'
58
+ },
59
+ jobStatusContainer: {
60
+ flexDirection: 'row',
61
+ alignItems: 'center',
62
+ justifyContent: 'space-between',
63
+ width: 105,
64
+ height: 30,
65
+ paddingHorizontal: 8,
66
+ borderRadius: 4
67
+ },
68
+ jobStatusText: {
69
+ color: '#fff',
70
+ textAlign: 'center',
71
+ fontFamily: 'sf-semibold',
72
+ fontSize: 13,
73
+ flex: 1
74
+ }
75
+ });
76
+ const mapStateToProps = state => {
77
+ return {
78
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state)
79
+ };
80
+ };
81
+ export default connect(mapStateToProps, {})(PrioritySelectorPopup);
82
+ //# sourceMappingURL=PrioritySelectorPopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","PureComponent","View","StyleSheet","TouchableOpacity","Text","connect","jobPriorityOptions","Components","Colours","PrioritySelectorPopup","render","title","includeAll","allText","onClose","onSelect","props","priorities","label","color","colourBrandingMain","createElement","MiddlePopup","style","styles","statusPopup","height","length","statusPopupTitle","statusPopupOptionsContainer","map","priority","key","onPress","jobStatusContainer","backgroundColor","jobStatusText","create","width","padding","borderRadius","fontFamily","TEXT_DARK","fontSize","marginBottom","flex","justifyContent","flexDirection","alignItems","paddingHorizontal","textAlign","mapStateToProps","state","getMainBrandingColourFromState"],"sources":["PrioritySelectorPopup.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { View, StyleSheet, TouchableOpacity, Text } from 'react-native';\nimport { connect } from 'react-redux';\nimport { jobPriorityOptions } from '../helper';\nimport { Components, Colours } from '../core.config';\n\nclass PrioritySelectorPopup extends PureComponent {\n render() {\n const { title, includeAll, allText, onClose, onSelect } = this.props;\n let priorities = jobPriorityOptions;\n if (includeAll)\n priorities = [\n {\n label: allText || 'Show All',\n color: this.props.colourBrandingMain,\n },\n ...priorities,\n ];\n\n return (\n <Components.MiddlePopup style={[styles.statusPopup, { height: priorities.length * 50 + 40 }]} onClose={onClose}>\n <Text style={styles.statusPopupTitle}>{title || 'Select Priority'}</Text>\n <View style={styles.statusPopupOptionsContainer}>\n {priorities.map(priority => {\n return (\n <TouchableOpacity key={priority.label} onPress={() => onSelect(priority.label)}>\n <View style={[styles.jobStatusContainer, { backgroundColor: priority.color }]}>\n <Text style={styles.jobStatusText}>{priority.label}</Text>\n </View>\n </TouchableOpacity>\n );\n })}\n </View>\n </Components.MiddlePopup>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n statusPopup: {\n width: 160,\n padding: 16,\n borderRadius: 12,\n },\n statusPopupTitle: {\n fontFamily: 'sf-bold',\n color: Colours.TEXT_DARK,\n fontSize: 18,\n marginBottom: 16,\n },\n statusPopupOptionsContainer: {\n flex: 1,\n justifyContent: 'space-between',\n },\n jobStatusContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 105,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n },\n jobStatusText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n flex: 1,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(PrioritySelectorPopup);\n"],"mappings":"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","ignoreList":[]}
@@ -1,27 +1,21 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import { View, StyleSheet, TouchableOpacity, Text } from 'react-native';
3
3
  import { connect } from 'react-redux';
4
- import { jobStatusOptions, getJobStatusColour } from '../helper';
4
+ import { getJobStatusOptions } from '../helper';
5
5
  import { Components, Colours } from '../core.config';
6
+ import { values } from '../values.config';
6
7
  class StatusSelectorPopup extends PureComponent {
7
8
  render() {
8
9
  const {
9
10
  title,
10
- filter,
11
11
  includeAll,
12
12
  allText,
13
13
  onClose,
14
14
  onSelect
15
15
  } = this.props;
16
- let statuses = filter ? filter.map(status => {
17
- return {
18
- name: status,
19
- label: getJobStatusLabel(status),
20
- color: getJobStatusColour(status)
21
- };
22
- }) : jobStatusOptions;
16
+ let statuses = getJobStatusOptions(this.props);
23
17
  if (includeAll) statuses = [{
24
- name: allText || 'Show All',
18
+ text: allText || 'Show All',
25
19
  color: this.props.colourBrandingMain
26
20
  }, ...statuses];
27
21
  return /*#__PURE__*/React.createElement(Components.MiddlePopup, {
@@ -35,15 +29,15 @@ class StatusSelectorPopup extends PureComponent {
35
29
  style: styles.statusPopupOptionsContainer
36
30
  }, statuses.map(status => {
37
31
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
38
- key: status.name,
39
- onPress: () => onSelect(status.name)
32
+ key: status.text,
33
+ onPress: () => onSelect(status.text)
40
34
  }, /*#__PURE__*/React.createElement(View, {
41
35
  style: [styles.jobStatusContainer, {
42
36
  backgroundColor: status.color
43
37
  }]
44
38
  }, /*#__PURE__*/React.createElement(Text, {
45
39
  style: styles.jobStatusText
46
- }, status.label)));
40
+ }, status.text)));
47
41
  })));
48
42
  }
49
43
  }
@@ -82,7 +76,8 @@ const styles = StyleSheet.create({
82
76
  });
83
77
  const mapStateToProps = state => {
84
78
  return {
85
- colourBrandingMain: Colours.getMainBrandingColourFromState(state)
79
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state),
80
+ statusTypes: state[values.reducerKey].jobstatuses
86
81
  };
87
82
  };
88
83
  export default connect(mapStateToProps, {})(StatusSelectorPopup);