umami/src/app/(main)/settings/users/[userId]/UserProvider.tsx
2025-02-13 22:53:25 -08:00

22 lines
674 B
TypeScript

import { createContext, ReactNode, useEffect } from 'react';
import { useModified, useUser } from '@/components/hooks';
import { Loading } from 'react-basics';
export const UserContext = createContext(null);
export function UserProvider({ userId, children }: { userId: string; children: ReactNode }) {
const { modified } = useModified(`user:${userId}`);
const { data: user, isFetching, isLoading, refetch } = useUser(userId);
useEffect(() => {
if (modified) {
refetch();
}
}, [modified]);
if (isFetching && isLoading) {
return <Loading position="page" />;
}
return <UserContext.Provider value={user}>{children}</UserContext.Provider>;
}