chat / client /src /routes /Layouts /Dashboard.tsx
helloya20's picture
Upload 2345 files
f0743f4 verified
import { useEffect, useState } from 'react';
import { Outlet } from 'react-router-dom';
import { QueryKeys } from 'librechat-data-provider';
import { useQueryClient } from '@tanstack/react-query';
import { useAuthContext, usePreviousLocation } from '~/hooks';
import { DashboardContext } from '~/Providers';
import store from '~/store';
export default function DashboardRoute() {
const queryClient = useQueryClient();
const { isAuthenticated } = useAuthContext();
const prevLocationRef = usePreviousLocation();
const clearConvoState = store.useClearConvoState();
const [prevLocationPath, setPrevLocationPath] = useState('');
useEffect(() => {
setPrevLocationPath(prevLocationRef.current?.pathname || '');
}, [prevLocationRef]);
useEffect(() => {
queryClient.removeQueries([QueryKeys.messages, 'new']);
clearConvoState();
}, [queryClient, clearConvoState]);
if (!isAuthenticated) {
return null;
}
return (
<DashboardContext.Provider value={{ prevLocationPath }}>
<div className="h-screen w-full">
<Outlet />
</div>
</DashboardContext.Provider>
);
}