Sosthene 66f4c65158
All checks were successful
Test - Build & Deploy to Scaleway / build-and-push-image-lecoffre (push) Successful in 1m17s
Test - Build & Deploy to Scaleway / deploy-to-scaleway-lecoffre (push) Successful in 3s
Make authentication more reliable
2025-08-03 18:05:23 +02:00

46 lines
1.0 KiB
TypeScript

import Users from "@Front/Api/LeCoffreApi/Notary/Users/Users";
import JwtService from "@Front/Services/JwtService/JwtService";
import UserStore from "@Front/Stores/UserStore";
import User from "le-coffre-resources/dist/Notary";
import { useEffect, useState } from "react";
export default function useUser() {
const [user, setUser] = useState<User | null>();
useEffect(() => {
// Don't run on server-side
if (typeof window === 'undefined') {
return;
}
// Check if user is connected before making API calls
if (!UserStore.instance.isConnected()) {
console.warn("User not connected, skipping API call");
return;
}
const decodedJwt = JwtService.getInstance().decodeJwt();
if (!decodedJwt) {
console.warn("No valid JWT found, skipping API call");
return;
}
Users.getInstance()
.getByUid(decodedJwt.userId, {
q: {
contact: true,
},
})
.then((user) => {
setUser(user);
})
.catch((error) => {
console.error("Failed to fetch user:", error);
});
}, []);
return {
user,
};
}