优化不能修改昵称弹窗

This commit is contained in:
2025-12-03 16:26:03 +08:00
parent b77b4b0536
commit 828a090daa
4 changed files with 21 additions and 5 deletions

View File

@@ -188,7 +188,7 @@ const UserInfoCardComponent: React.FC<UserInfoCardProps> = ({
if (!is_current_user) return; if (!is_current_user) return;
if (!nickname_change_status.can_change) { if (!nickname_change_status.can_change) {
return Taro.showToast({ return Taro.showToast({
title: `30天内仅可修改4次昵称${nickname_change_status.next_period_start_time}后可修改`, title: `30天内仅可修改4次昵称${nickname_change_status.next_period_start_date}后可修改`,
icon: "none", icon: "none",
duration: 2000, duration: 2000,
}); });
@@ -619,7 +619,7 @@ const UserInfoCardComponent: React.FC<UserInfoCardProps> = ({
onCancel={handle_edit_modal_cancel} onCancel={handle_edit_modal_cancel}
validationMessage={ validationMessage={
editing_field === "nickname" editing_field === "nickname"
? `请填写 2-24 个字符,不包括 @<>/等无效字符。30 天内可修改 4 次昵称,${nickname_change_status.next_period_start_time} 前还可修改 ${nickname_change_status.remaining_count} 次。` ? `请填写 2-24 个字符,不包括 @<>/等无效字符。30 天内可修改 4 次昵称,${nickname_change_status.next_period_start_date} 前还可修改 ${nickname_change_status.remaining_count} 次。`
: "请填写 2-100 个字符" : "请填写 2-100 个字符"
} }
/> />

View File

@@ -96,6 +96,7 @@ export interface NicknameChangeStatus {
period_start_time: string; period_start_time: string;
next_period_start_time: string; next_period_start_time: string;
days_until_next_period: number; days_until_next_period: number;
next_period_start_date?: string;
} }
// 后端球局数据接口 // 后端球局数据接口

View File

@@ -45,6 +45,15 @@ const fetchUserInfoWithLock = async (set) => {
return fetchUserInfoPromise; return fetchUserInfoPromise;
}; };
const getTimeNextDate = (time: string) => {
const date = new Date(time);
date.setDate(date.getDate() + 1);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, "0");
const day = String(date.getDate()).padStart(2, "0");
return `${year}-${month}-${day}`;
};
export const useUser = create<UserState>()((set) => ({ export const useUser = create<UserState>()((set) => ({
user: {}, user: {},
fetchUserInfo: () => fetchUserInfoWithLock(set), fetchUserInfo: () => fetchUserInfoWithLock(set),
@@ -68,7 +77,13 @@ export const useUser = create<UserState>()((set) => ({
checkNicknameChangeStatus: async () => { checkNicknameChangeStatus: async () => {
try { try {
const res = await checkNicknameChangeStatusApi(); const res = await checkNicknameChangeStatusApi();
set({ nicknameChangeStatus: res.data }); const { next_period_start_time } = res.data;
set({
nicknameChangeStatus: {
...res.data,
next_period_start_date: getTimeNextDate(next_period_start_time),
},
});
} catch (error) { } catch (error) {
console.error("检查昵称变更状态失败:", error); console.error("检查昵称变更状态失败:", error);
} }

View File

@@ -197,7 +197,7 @@ const EditProfilePage: React.FC = () => {
if (field === "nickname") { if (field === "nickname") {
if (!nickname_change_status.can_change) { if (!nickname_change_status.can_change) {
return Taro.showToast({ return Taro.showToast({
title: `30天内仅可修改4次昵称${nickname_change_status.next_period_start_time}后可修改`, title: `30天内仅可修改4次昵称${nickname_change_status.next_period_start_date}后可修改`,
icon: "none", icon: "none",
duration: 2000, duration: 2000,
}); });
@@ -828,7 +828,7 @@ const EditProfilePage: React.FC = () => {
onCancel={handle_edit_modal_cancel} onCancel={handle_edit_modal_cancel}
validationMessage={ validationMessage={
editing_field === "nickname" editing_field === "nickname"
? `请填写 2-24 个字符,不包括 @<>/等无效字符。30 天内可修改 4 次昵称,${nickname_change_status.next_period_start_time} 前还可修改 ${nickname_change_status.remaining_count} 次。` ? `请填写 2-24 个字符,不包括 @<>/等无效字符。30 天内可修改 4 次昵称,${nickname_change_status.next_period_start_date} 前还可修改 ${nickname_change_status.remaining_count} 次。`
: "请填写 2-100 个字符" : "请填写 2-100 个字符"
} }
/> />