feat(settings): add user profile and password management

This commit is contained in:
2025-10-21 11:40:47 +08:00
parent 73510a3b74
commit 6ca5e235b4
13 changed files with 1330 additions and 20 deletions

View File

@@ -0,0 +1,42 @@
import { useUserData } from "./useUserData";
import { useEffect } from "react";
import logger from "@/utils/logger";
import type { IUserInfo } from "@/interfaces/database/user-setting";
import userService from "@/services/user_service";
import { rsaPsw } from "../utils/encryption";
export function useProfileSetting() {
const {fetchUserInfo, userInfo} = useUserData();
useEffect(() => {
fetchUserInfo();
}, [fetchUserInfo]);
const updateUserInfo = async (newUserInfo: Partial<IUserInfo>) => {
try {
await userService.updateSetting(newUserInfo);
} catch (error) {
logger.error('更新用户信息失败:', error);
throw error;
}
};
const changeUserPassword = async (data: { password: string; new_password: string }) => {
try {
const newPassword = rsaPsw(data.new_password);
const oldPassword = rsaPsw(data.password);
const res = await userService.updatePassword({
password: oldPassword,
new_password: newPassword,
});
} catch (error) {
throw error;
}
};
return {
userInfo,
updateUserInfo,
changeUserPassword,
};
}