|
@@ -1,4 +1,4 @@
|
|
|
-import React from 'react';
|
|
|
+import React, { useEffect, useState } from 'react';
|
|
|
import { View, Text, Image, TouchableOpacity } from 'react-native';
|
|
|
|
|
|
import { qualityOptions } from '../../utils/constants';
|
|
@@ -19,7 +19,8 @@ const RegionItem = ({
|
|
|
onQualityChange,
|
|
|
onHiddenChange,
|
|
|
startDate,
|
|
|
- endDate
|
|
|
+ endDate,
|
|
|
+ isEditing
|
|
|
}: {
|
|
|
region: RegionAddData;
|
|
|
onDelete: () => void;
|
|
@@ -28,12 +29,25 @@ const RegionItem = ({
|
|
|
onHiddenChange: () => void;
|
|
|
startDate: string | null;
|
|
|
endDate: string | null;
|
|
|
+ isEditing: boolean;
|
|
|
}) => {
|
|
|
const name = region.region_name.split(/ – | - /);
|
|
|
const qualityName = region.quality
|
|
|
? qualityOptions.find((q) => q.id === region.quality)?.name
|
|
|
: 'Good Visit';
|
|
|
const disabled = !startDate || startDate > new Date().toISOString().split('T')[0];
|
|
|
+ const completed = endDate && endDate <= new Date().toISOString().split('T')[0];
|
|
|
+ const [isCompleted, setIsCompleted] = useState(false);
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ if (isEditing) return;
|
|
|
+ setIsCompleted(completed as boolean);
|
|
|
+ if (completed && region.status === 0) {
|
|
|
+ region.status = 1;
|
|
|
+ } else {
|
|
|
+ region.status = 0;
|
|
|
+ }
|
|
|
+ }, [completed, endDate]);
|
|
|
|
|
|
return (
|
|
|
<View key={region.id} style={styles.regionItem}>
|
|
@@ -76,14 +90,17 @@ const RegionItem = ({
|
|
|
borderColor: Colors.LIGHT_GRAY
|
|
|
}
|
|
|
]}
|
|
|
- onPress={onToggleStatus}
|
|
|
+ onPress={() => {
|
|
|
+ onToggleStatus();
|
|
|
+ setIsCompleted(false);
|
|
|
+ }}
|
|
|
disabled={disabled}
|
|
|
>
|
|
|
<View style={styles.completedContainer}>
|
|
|
<View style={{ position: 'relative' }}>
|
|
|
<SquareSvg />
|
|
|
</View>
|
|
|
- {(region.status === 1 && !disabled) && (
|
|
|
+ {(isCompleted || (region.status === 1 && !disabled)) && (
|
|
|
<View style={{ position: 'absolute', left: 2, top: 1 }}>
|
|
|
<CheckSvg width={14} height={14} />
|
|
|
</View>
|