mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-14 21:10:34 +01:00
31 lines
754 B
TypeScript
31 lines
754 B
TypeScript
import { createContext, ReactNode, useEffect } from 'react';
|
|
import { useModified, useWebsite } from 'components/hooks';
|
|
import { Loading } from 'react-basics';
|
|
|
|
export const WebsiteContext = createContext(null);
|
|
|
|
export function WebsiteProvider({
|
|
websiteId,
|
|
children,
|
|
}: {
|
|
websiteId: string;
|
|
children: ReactNode;
|
|
}) {
|
|
const { modified } = useModified(`website:${websiteId}`);
|
|
const { data: website, isFetching, isLoading, refetch } = useWebsite(websiteId);
|
|
|
|
useEffect(() => {
|
|
if (modified) {
|
|
refetch();
|
|
}
|
|
}, [modified]);
|
|
|
|
if (isFetching && isLoading) {
|
|
return <Loading position="page" />;
|
|
}
|
|
|
|
return <WebsiteContext.Provider value={website}>{children}</WebsiteContext.Provider>;
|
|
}
|
|
|
|
export default WebsiteProvider;
|