2025-12-15 12:07:47 +00:00
|
|
|
import { atomWithQuery } from "jotai-tanstack-query";
|
|
|
|
|
import { userApiService } from "@/lib/apis/user-api.service";
|
2026-02-06 14:49:40 +02:00
|
|
|
import { getBearerToken, isPublicRoute } from "@/lib/auth-utils";
|
2026-03-17 22:56:59 -07:00
|
|
|
|
|
|
|
|
export const USER_QUERY_KEY = ["user", "me"] as const;
|
|
|
|
|
const userQueryFn = () => userApiService.getMe();
|
2025-12-15 12:07:47 +00:00
|
|
|
|
|
|
|
|
export const currentUserAtom = atomWithQuery(() => {
|
2026-02-06 14:49:40 +02:00
|
|
|
const pathname = typeof window !== "undefined" ? window.location.pathname : null;
|
2025-12-15 12:07:47 +00:00
|
|
|
return {
|
2026-03-17 22:56:59 -07:00
|
|
|
queryKey: USER_QUERY_KEY,
|
|
|
|
|
staleTime: 5 * 60 * 1000,
|
2026-02-06 14:49:40 +02:00
|
|
|
enabled: !!getBearerToken() && pathname !== null && !isPublicRoute(pathname),
|
2026-03-17 22:56:59 -07:00
|
|
|
queryFn: userQueryFn,
|
2025-12-15 12:07:47 +00:00
|
|
|
};
|
|
|
|
|
});
|