feat: 新增步数详情页面,支持日期选择和步数统计展示
feat: 更新StepsCard组件,支持点击事件回调 feat: 在WaterIntakeCard中添加震动反馈功能 fix: 在用户重建时保存authToken
This commit is contained in:
@@ -133,9 +133,10 @@ export const login = createAsyncThunk(
|
||||
);
|
||||
|
||||
export const rehydrateUser = createAsyncThunk('user/rehydrate', async () => {
|
||||
const [profileStr, privacyAgreedStr] = await Promise.all([
|
||||
const [profileStr, privacyAgreedStr, token] = await Promise.all([
|
||||
AsyncStorage.getItem(STORAGE_KEYS.userProfile),
|
||||
AsyncStorage.getItem(STORAGE_KEYS.privacyAgreed),
|
||||
AsyncStorage.getItem(STORAGE_KEYS.authToken),
|
||||
]);
|
||||
|
||||
let profile: UserProfile = {};
|
||||
@@ -143,7 +144,13 @@ export const rehydrateUser = createAsyncThunk('user/rehydrate', async () => {
|
||||
try { profile = JSON.parse(profileStr) as UserProfile; } catch { profile = {}; }
|
||||
}
|
||||
const privacyAgreed = privacyAgreedStr === 'true';
|
||||
return { profile, privacyAgreed } as { profile: UserProfile; privacyAgreed: boolean };
|
||||
|
||||
// 如果有 token,需要设置到 API 客户端
|
||||
if (token) {
|
||||
await setAuthToken(token);
|
||||
}
|
||||
|
||||
return { profile, privacyAgreed, token } as { profile: UserProfile; privacyAgreed: boolean; token: string | null };
|
||||
});
|
||||
|
||||
export const setPrivacyAgreed = createAsyncThunk('user/setPrivacyAgreed', async () => {
|
||||
@@ -272,6 +279,7 @@ const userSlice = createSlice({
|
||||
.addCase(rehydrateUser.fulfilled, (state, action) => {
|
||||
state.profile = action.payload.profile;
|
||||
state.privacyAgreed = action.payload.privacyAgreed;
|
||||
state.token = action.payload.token;
|
||||
if (!state.profile?.name || !state.profile.name.trim()) {
|
||||
state.profile.name = DEFAULT_MEMBER_NAME;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user