File size: 1,377 Bytes
ec4551b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | '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';
import { MantineWrapper } from '@gitroom/react/helpers/mantine.wrapper';
import { useVariables } from '@gitroom/react/helpers/variable.context';
import { CopilotKit } from '@copilotkit/react-core';
import { ToolTip } from '@gitroom/frontend/components/layout/top.tip';
export const PreviewWrapper = ({ children }: { children: ReactNode }) => {
const fetch = useFetch();
const { backendUrl } = useVariables();
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}>
<CopilotKit
credentials="include"
runtimeUrl={backendUrl + '/copilot/chat'}
showDevConsole={false}
>
<MantineWrapper>
<Toaster />
<ToolTip />
{children}
</MantineWrapper>
</CopilotKit>
</ContextWrapper>
);
};
|