@plusscommunities/pluss-maintenance-app 6.0.12-beta.1 → 6.0.13-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.
@@ -335,7 +335,7 @@ const mapStateToProps = state => {
335
335
  colourBrandingMain: Colours.getMainBrandingColourFromState(state),
336
336
  dataUpdated: notifications.dataUpdated[values.updateKey],
337
337
  statusTypes: state[values.reducerKey].jobstatuses,
338
- jobfilters: state[values.reducerKey].jobfilters
338
+ jobfilters: state[values.reducerKey].jobfilters || {}
339
339
  };
340
340
  };
341
341
  export default connect(mapStateToProps, {
@@ -1 +1 @@
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":[]}
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, {\n forwardRef: true,\n})(MaintenanceList);\n"],"mappings":"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","ignoreList":[]}
@@ -74,7 +74,7 @@ export default (state = INITIAL_STATE, action) => {
74
74
  case JOB_FILTER_LOADED:
75
75
  return {
76
76
  ...state,
77
- jobfilters: action.payload
77
+ jobfilters: action.payload || INITIAL_STATE.jobfilters
78
78
  };
79
79
  case REHYDRATE:
80
80
  if (!action.payload) return state;
@@ -1 +1 @@
1
- {"version":3,"names":["_","REHYDRATE","JOBS_LOADED","JOB_ADDED","JOBS_ADDED","JOBS_STATUSES_LOADED","JOBS_HIDE_SEEN","JOB_FILTER_LOADED","ActionTypes","values","REDUCER_KEY","reducerKey","INITIAL_STATE","jobs","jobstatuses","hideSeen","jobfilters","status","statusText","priority","type","assignee","assigneeName","state","action","updateJobs","index","LOGOUT","CHANGE_ROLE","payload","map","job","title","description","unionWith","j1","j2","id","findIndex","item","push","orderBy","v1","v2","text"],"sources":["JobsReducer.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport _ from 'lodash';\nimport { REHYDRATE } from 'redux-persist';\nimport { JOBS_LOADED, JOB_ADDED, JOBS_ADDED, JOBS_STATUSES_LOADED, JOBS_HIDE_SEEN, JOB_FILTER_LOADED } 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 jobstatuses: [],\n hideSeen: false,\n jobfilters: {\n status: '',\n statusText: '',\n priority: '',\n type: '',\n assignee: '',\n assigneeName: '',\n },\n};\n\nexport default (state = INITIAL_STATE, action) => {\n let updateJobs = [];\n let index = 0;\n let jobstatuses = [];\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 JOBS_STATUSES_LOADED:\n jobstatuses = _.orderBy(\n _.unionWith(action.payload, state.jobstatuses, (v1, v2) => {\n return v1 != null && v2 != null && v1.text === v2.text;\n }),\n 'order',\n 'asc',\n );\n return { ...state, jobstatuses };\n case JOBS_HIDE_SEEN:\n return { ...state, hideSeen: action.payload };\n case JOB_FILTER_LOADED:\n return { ...state, jobfilters: action.payload };\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":"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","ignoreList":[]}
1
+ {"version":3,"names":["_","REHYDRATE","JOBS_LOADED","JOB_ADDED","JOBS_ADDED","JOBS_STATUSES_LOADED","JOBS_HIDE_SEEN","JOB_FILTER_LOADED","ActionTypes","values","REDUCER_KEY","reducerKey","INITIAL_STATE","jobs","jobstatuses","hideSeen","jobfilters","status","statusText","priority","type","assignee","assigneeName","state","action","updateJobs","index","LOGOUT","CHANGE_ROLE","payload","map","job","title","description","unionWith","j1","j2","id","findIndex","item","push","orderBy","v1","v2","text"],"sources":["JobsReducer.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport _ from 'lodash';\nimport { REHYDRATE } from 'redux-persist';\nimport { JOBS_LOADED, JOB_ADDED, JOBS_ADDED, JOBS_STATUSES_LOADED, JOBS_HIDE_SEEN, JOB_FILTER_LOADED } 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 jobstatuses: [],\n hideSeen: false,\n jobfilters: {\n status: '',\n statusText: '',\n priority: '',\n type: '',\n assignee: '',\n assigneeName: '',\n },\n};\n\nexport default (state = INITIAL_STATE, action) => {\n let updateJobs = [];\n let index = 0;\n let jobstatuses = [];\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 JOBS_STATUSES_LOADED:\n jobstatuses = _.orderBy(\n _.unionWith(action.payload, state.jobstatuses, (v1, v2) => {\n return v1 != null && v2 != null && v1.text === v2.text;\n }),\n 'order',\n 'asc',\n );\n return { ...state, jobstatuses };\n case JOBS_HIDE_SEEN:\n return { ...state, hideSeen: action.payload };\n case JOB_FILTER_LOADED:\n return { ...state, jobfilters: action.payload || INITIAL_STATE.jobfilters };\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":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-maintenance-app",
3
- "version": "6.0.12-beta.1",
3
+ "version": "6.0.13-beta.0",
4
4
  "description": "Extension package to enable maintenance on Pluss Communities Platform",
5
5
  "main": "dist/module/index.js",
6
6
  "module": "dist/module/index.js",
@@ -50,4 +50,4 @@
50
50
  "module"
51
51
  ]
52
52
  }
53
- }
53
+ }
@@ -317,10 +317,10 @@ const mapStateToProps = state => {
317
317
  colourBrandingMain: Colours.getMainBrandingColourFromState(state),
318
318
  dataUpdated: notifications.dataUpdated[values.updateKey],
319
319
  statusTypes: state[values.reducerKey].jobstatuses,
320
- jobfilters: state[values.reducerKey].jobfilters,
320
+ jobfilters: state[values.reducerKey].jobfilters || {},
321
321
  };
322
322
  };
323
323
 
324
- export default connect(mapStateToProps, { jobsLoaded, jobAdded, jobsAdded, jobStatusesUpdate, jobHideSeenUpdate, jobsFilterLoaded }, null, { forwardRef: true })(
325
- MaintenanceList,
326
- );
324
+ export default connect(mapStateToProps, { jobsLoaded, jobAdded, jobsAdded, jobStatusesUpdate, jobHideSeenUpdate, jobsFilterLoaded }, null, {
325
+ forwardRef: true,
326
+ })(MaintenanceList);
@@ -59,7 +59,7 @@ export default (state = INITIAL_STATE, action) => {
59
59
  case JOBS_HIDE_SEEN:
60
60
  return { ...state, hideSeen: action.payload };
61
61
  case JOB_FILTER_LOADED:
62
- return { ...state, jobfilters: action.payload };
62
+ return { ...state, jobfilters: action.payload || INITIAL_STATE.jobfilters };
63
63
  case REHYDRATE:
64
64
  if (!action.payload) return state;
65
65
  if (action.payload[REDUCER_KEY]) {