Files
workavia-drive/tdrive/frontend/src/app/features/users/hooks/use-current-user.ts
T
Eric Doughty-Papassideris 26ca1be629 🚨⚰️ front: Remove unused references
2024-11-13 11:27:31 +01:00

47 lines
1.6 KiB
TypeScript

/* eslint-disable @typescript-eslint/no-explicit-any */
import { useEffect } from "react";
import LoginService from '@features/auth/login-service';
import { useRecoilState } from 'recoil';
import { CurrentUserState } from '../state/atoms/current-user';
import Languages from '@features/global/services/languages-service';
import { useSetUserList } from './use-user-list';
import { getPublicLinkToken } from 'app/features/drive/api-client/api-client';
import Logger from '../../../features/global/framework/logger-service';
export const useCurrentUser = () => {
const [user, setUser] = useRecoilState(CurrentUserState);
const { set: setUserList } = useSetUserList('useCurrentUser');
const logger = Logger.getLogger('useCurrentUser');
//Depreciated way to get use update from LoginService
LoginService.recoilUpdateUser = setUser;
useEffect(() => {
if (!user && !getPublicLinkToken()) {
logger.debug("Init LoggerService ...");
LoginService.init(true)
.then(() => logger.debug("Init LoggerService completed"))
.then(() => LoginService.login({}))
.then(() => logger.debug("Login process completed"))
.then(() => {if (user) setUserList([user])})
.catch(err => logger.error("Error during auth: ", err))
} else {
if (user) setUserList([user]);
}
}, [user]);
//Update app language
useEffect(() => {
if (user?.preferences?.locale) Languages.setLanguage(user?.preferences?.locale);
}, [user?.preferences?.locale]);
const refresh = async () => {
if (!getPublicLinkToken()) {
await LoginService.updateUser();
}
};
return { user, refresh };
};