Files
TERES_web_frontend/src/hooks/setting-hooks.ts

42 lines
1.1 KiB
TypeScript

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,
};
}