|
|
@@ -202,9 +202,22 @@ export default function IntegralScreen() {
|
|
|
if (res?.code === 0) {
|
|
|
Alert.alert('提示', '签到成功');
|
|
|
setIstodaySignIn(true);
|
|
|
- const dateInfo = setDate();
|
|
|
- getInfo();
|
|
|
- getData(dateInfo);
|
|
|
+
|
|
|
+ // Optimistic update for UI
|
|
|
+ const optimisticDateInfo = dataInfo.map(item => {
|
|
|
+ if (item.istoday) {
|
|
|
+ return { ...item, isSignIn: true };
|
|
|
+ }
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+ setDataInfo(optimisticDateInfo);
|
|
|
+
|
|
|
+ // Delay fetch to ensure backend data consistency
|
|
|
+ setTimeout(() => {
|
|
|
+ const dateInfo = setDate();
|
|
|
+ getInfo();
|
|
|
+ getData(dateInfo);
|
|
|
+ }, 500);
|
|
|
} else {
|
|
|
Alert.alert('提示', res?.msg || '签到失败');
|
|
|
}
|