committed by
GitHub Enterprise
parent
20ca900fa9
commit
52adbf7f1d
@@ -8,6 +8,11 @@ import {CaseDetail} from '../screens/caseDetails/interface';
|
||||
import {FirestoreUpdateTypes} from '../common/Constants';
|
||||
import {toast} from '../../RN-UI-LIB/src/components/toast';
|
||||
|
||||
export interface CaseUpdates {
|
||||
updateType: string;
|
||||
updatedCaseDetail: CaseDetail;
|
||||
}
|
||||
|
||||
const useFirestoreUpdates = () => {
|
||||
const reduxStoreData = useAppSelector((state: RootState) => state);
|
||||
const {
|
||||
@@ -20,6 +25,7 @@ const useFirestoreUpdates = () => {
|
||||
querySnapshot: FirebaseFirestoreTypes.QuerySnapshot,
|
||||
) => {
|
||||
let newlyAddedCases = 0;
|
||||
const caseUpdates: CaseUpdates[] = [];
|
||||
querySnapshot
|
||||
.docChanges()
|
||||
.forEach(
|
||||
@@ -35,14 +41,10 @@ const useFirestoreUpdates = () => {
|
||||
if (updateType === FirestoreUpdateTypes.ADDED) {
|
||||
newlyAddedCases++;
|
||||
}
|
||||
// dispatch(
|
||||
// updateCaseDetailsFirestore({
|
||||
// updatedCaseDetail,
|
||||
// updateType,
|
||||
// }),
|
||||
// );
|
||||
caseUpdates.push({updateType, updatedCaseDetail});
|
||||
},
|
||||
);
|
||||
// dispatch(updateCaseDetailsFirestore({}));
|
||||
if (newlyAddedCases > 0) {
|
||||
toast({
|
||||
type: 'success',
|
||||
|
||||
@@ -10,6 +10,7 @@ import {
|
||||
} from '../common/Constants';
|
||||
import {CaseDetail} from '../screens/caseDetails/interface';
|
||||
import {toast} from '../../RN-UI-LIB/src/components/toast';
|
||||
import {CaseUpdates} from '../hooks/useFirestoreUpdates';
|
||||
|
||||
export type ICasesMap = {[key: string]: ICaseItem};
|
||||
|
||||
@@ -197,70 +198,67 @@ const allCasesSlice = createSlice({
|
||||
}
|
||||
},
|
||||
updateCaseDetailsFirestore: (state, action) => {
|
||||
const {updatedCaseDetail, updateType} = action.payload as {
|
||||
updatedCaseDetail: CaseDetail;
|
||||
updateType: string;
|
||||
const {caseUpdates} = action.payload as {
|
||||
caseUpdates: CaseUpdates[];
|
||||
};
|
||||
console.log(
|
||||
'updatedCaseDETAILS.....',
|
||||
updateType,
|
||||
updatedCaseDetail,
|
||||
);
|
||||
const {
|
||||
updatedAt,
|
||||
allocatedAt,
|
||||
id,
|
||||
caseStatus,
|
||||
customerInfo,
|
||||
currentTask,
|
||||
} = updatedCaseDetail;
|
||||
switch (updateType) {
|
||||
case FirestoreUpdateTypes.MODIFIED: {
|
||||
const index = state.casesList.findIndex(
|
||||
caseItem => caseItem.caseReferenceId === id,
|
||||
);
|
||||
if (index !== -1) {
|
||||
state.casesList[index] = {
|
||||
...state.casesList[index],
|
||||
console.table('firestore case updates', caseUpdates);
|
||||
caseUpdates.forEach(({updateType, updatedCaseDetail}) => {
|
||||
const {
|
||||
updatedAt,
|
||||
allocatedAt,
|
||||
id,
|
||||
caseStatus,
|
||||
customerInfo,
|
||||
currentTask,
|
||||
} = updatedCaseDetail;
|
||||
switch (updateType) {
|
||||
case FirestoreUpdateTypes.MODIFIED: {
|
||||
const index = state.casesList.findIndex(
|
||||
caseItem => caseItem.caseReferenceId === id,
|
||||
);
|
||||
if (index !== -1) {
|
||||
state.casesList[index] = {
|
||||
...state.casesList[index],
|
||||
updatedAt,
|
||||
allocatedAt,
|
||||
caseStatus,
|
||||
currentTask,
|
||||
customerInfo,
|
||||
caseReferenceId: id,
|
||||
};
|
||||
}
|
||||
state.caseDetails[id] = updatedCaseDetail;
|
||||
break;
|
||||
}
|
||||
case FirestoreUpdateTypes.ADDED: {
|
||||
const caseListItem: ICaseItem = {
|
||||
caseReferenceId: id,
|
||||
updatedAt,
|
||||
allocatedAt,
|
||||
caseStatus,
|
||||
currentTask,
|
||||
customerInfo,
|
||||
caseReferenceId: id,
|
||||
pinRank: null,
|
||||
};
|
||||
state.casesList.push(caseListItem);
|
||||
state.caseDetails[id] = updatedCaseDetail;
|
||||
toast({type: 'success', text1: ''});
|
||||
break;
|
||||
}
|
||||
state.caseDetails[id] = updatedCaseDetail;
|
||||
break;
|
||||
}
|
||||
case FirestoreUpdateTypes.ADDED: {
|
||||
const caseListItem: ICaseItem = {
|
||||
caseReferenceId: id,
|
||||
updatedAt,
|
||||
allocatedAt,
|
||||
caseStatus,
|
||||
currentTask,
|
||||
customerInfo,
|
||||
pinRank: null,
|
||||
};
|
||||
state.casesList.push(caseListItem);
|
||||
state.caseDetails[id] = updatedCaseDetail;
|
||||
toast({type: 'success', text1: ''});
|
||||
break;
|
||||
}
|
||||
case FirestoreUpdateTypes.REMOVED: {
|
||||
const index = state.casesList.findIndex(
|
||||
caseItem => caseItem.caseReferenceId === id,
|
||||
);
|
||||
if (index !== -1) {
|
||||
state.casesList.splice(index, 1);
|
||||
case FirestoreUpdateTypes.REMOVED: {
|
||||
const index = state.casesList.findIndex(
|
||||
caseItem => caseItem.caseReferenceId === id,
|
||||
);
|
||||
if (index !== -1) {
|
||||
state.casesList.splice(index, 1);
|
||||
}
|
||||
delete state.caseDetails[id];
|
||||
break;
|
||||
}
|
||||
delete state.caseDetails[id];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
},
|
||||
updateCaseDetail: (state, action) => {
|
||||
const {caseId, journeyId, answer, caseData, nextActions} =
|
||||
|
||||
@@ -154,8 +154,6 @@ const AllCases = () => {
|
||||
) : null}
|
||||
<VirtualizedList
|
||||
data={compiledList}
|
||||
contentContainerStyle={GenericStyles.fill}
|
||||
stickyHeaderIndices={[0]}
|
||||
initialNumToRender={4}
|
||||
renderItem={row => (
|
||||
<CaseItem
|
||||
|
||||
@@ -24,7 +24,6 @@ const ComplatedCase = () => {
|
||||
<View style={[GenericStyles.fill, GenericStyles.whiteBackground]}>
|
||||
<VirtualizedList
|
||||
data={completed}
|
||||
contentContainerStyle={GenericStyles.fill}
|
||||
initialNumToRender={4}
|
||||
renderItem={row => (
|
||||
<ListItem caseData={row.item} compleatedList />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {View} from 'react-native';
|
||||
import {StyleSheet, View} from 'react-native';
|
||||
import React from 'react';
|
||||
import EmptyPageWarnIcon from '../../assets/icons/EmptyPageWarnIcon';
|
||||
import {GenericStyles} from '../../../RN-UI-LIB/src/styles';
|
||||
@@ -12,8 +12,8 @@ interface IEmptyList {
|
||||
|
||||
const EmptyList: React.FC<IEmptyList> = ({showWarnSign, message}) => {
|
||||
return (
|
||||
<View style={[GenericStyles.fill, GenericStyles.centerAlignedRow]}>
|
||||
<View>
|
||||
<View style={styles.centerAbsolute}>
|
||||
<View style={styles.centerAbsolute}>
|
||||
{showWarnSign ? <EmptyPageWarnIcon /> : <EmptyPageCheckIcon />}
|
||||
<Heading dark bold type="h3" style={GenericStyles.mt16}>
|
||||
{message}
|
||||
@@ -23,4 +23,16 @@ const EmptyList: React.FC<IEmptyList> = ({showWarnSign, message}) => {
|
||||
);
|
||||
};
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
centerAbsolute: {
|
||||
position: 'absolute',
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
},
|
||||
});
|
||||
|
||||
export default EmptyList;
|
||||
|
||||
Reference in New Issue
Block a user