Fixes || Aman C (#28)

* fixes

* fixes
This commit is contained in:
Aman Chaturvedi
2023-01-05 16:56:32 +05:30
committed by GitHub Enterprise
parent 20ca900fa9
commit 52adbf7f1d
5 changed files with 75 additions and 66 deletions

View File

@@ -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',

View File

@@ -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} =

View File

@@ -154,8 +154,6 @@ const AllCases = () => {
) : null}
<VirtualizedList
data={compiledList}
contentContainerStyle={GenericStyles.fill}
stickyHeaderIndices={[0]}
initialNumToRender={4}
renderItem={row => (
<CaseItem

View File

@@ -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 />

View File

@@ -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;