获取昵称修改状态、优化昵称修改逻辑
This commit is contained in:
@@ -9,16 +9,21 @@ import { convert_db_gender_to_display } from "@/utils/genderUtils";
|
||||
import { EditModal, GeneralNavbar } from "@/components";
|
||||
// import img from "@/config/images";
|
||||
import CommonDialog from "@/components/CommonDialog";
|
||||
import { useUserActions, useUserInfo } from "@/store/userStore";
|
||||
import {
|
||||
useUserActions,
|
||||
useUserInfo,
|
||||
useNicknameChangeStatus,
|
||||
} from "@/store/userStore";
|
||||
import { UserInfoType } from "@/services/userService";
|
||||
import { useCities, useProfessions } from "@/store/pickerOptionsStore";
|
||||
import { handleCustomerService } from "@/services/userService";
|
||||
import evaluateService from "@/services/evaluateService";
|
||||
|
||||
const EditProfilePage: React.FC = () => {
|
||||
const { updateUserInfo } = useUserActions();
|
||||
const { updateUserInfo, updateNickname } = useUserActions();
|
||||
// 直接从store获取用户信息,确保响应式更新
|
||||
const user_info = useUserInfo();
|
||||
const nickname_change_status = useNicknameChangeStatus();
|
||||
|
||||
// 表单状态,基于store中的用户信息初始化
|
||||
const getInitialFormData = () => {
|
||||
@@ -190,6 +195,13 @@ const EditProfilePage: React.FC = () => {
|
||||
return;
|
||||
}
|
||||
if (field === "nickname") {
|
||||
if (!nickname_change_status.can_change) {
|
||||
return Taro.showToast({
|
||||
title: `30天内仅可修改4次昵称,${nickname_change_status.next_period_start_time}后可修改`,
|
||||
icon: "none",
|
||||
duration: 2000,
|
||||
});
|
||||
}
|
||||
// 手动输入
|
||||
setEditingField(field);
|
||||
setEditModalVisible(true);
|
||||
@@ -211,8 +223,9 @@ const EditProfilePage: React.FC = () => {
|
||||
}
|
||||
// 调用更新用户信息接口,只传递修改的字段
|
||||
const update_data = { [editing_field]: value };
|
||||
await updateUserInfo(update_data);
|
||||
|
||||
editing_field === "nickname"
|
||||
? await updateNickname(value)
|
||||
: await updateUserInfo(update_data);
|
||||
// 更新表单状态(store会自动更新)
|
||||
setFormData((prev) => ({ ...prev, [editing_field]: value }));
|
||||
|
||||
@@ -811,7 +824,7 @@ const EditProfilePage: React.FC = () => {
|
||||
onCancel={handle_edit_modal_cancel}
|
||||
validationMessage={
|
||||
editing_field === "nickname"
|
||||
? "请填写 2-24 个字符,不包括 @<>/等无效字符。30 天内可修改 4 次昵称,12.5 前还可修改 4 次。"
|
||||
? `请填写 2-24 个字符,不包括 @<>/等无效字符。30 天内可修改 4 次昵称,${nickname_change_status.next_period_start_time} 前还可修改 ${nickname_change_status.remaining_count} 次。`
|
||||
: "请填写 2-100 个字符"
|
||||
}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user