postiz/apps/frontend/src/components/preview/preview.wrapper.tsx

31 lines
833 B
TypeScript

'use client';
import useSWR from 'swr';
import { ContextWrapper } from '@gitroom/frontend/components/layout/user.context';
import { ReactNode, useCallback } from 'react';
import { useFetch } from '@gitroom/helpers/utils/custom.fetch';
import { Toaster } from '@gitroom/react/toaster/toaster';
export const PreviewWrapper = ({ children }: { children: ReactNode }) => {
const fetch = useFetch();
const load = useCallback(async (path: string) => {
return await (await fetch(path)).json();
}, []);
const { data: user } = useSWR('/user/self', load, {
revalidateOnFocus: false,
revalidateOnReconnect: false,
revalidateIfStale: false,
refreshWhenOffline: false,
refreshWhenHidden: false,
});
return (
<ContextWrapper user={user}>
<Toaster />
{children}
</ContextWrapper>
);
};