import { memo } from 'react'; import { useParams } from 'react-router-dom'; import { useGetSharedMessages } from 'librechat-data-provider/react-query'; import { useLocalize, useDocumentTitle } from '~/hooks'; import { useGetStartupConfig } from '~/data-provider'; import { ShareContext } from '~/Providers'; import { Spinner } from '~/components/svg'; import MessagesView from './MessagesView'; import { buildTree } from '~/utils'; import Footer from '../Chat/Footer'; function SharedView() { const localize = useLocalize(); const { data: config } = useGetStartupConfig(); const { shareId } = useParams(); const { data, isLoading } = useGetSharedMessages(shareId ?? ''); const dataTree = data && buildTree({ messages: data.messages }); const messagesTree = dataTree?.length === 0 ? null : dataTree ?? null; // configure document title let docTitle = ''; if (config?.appTitle != null && data?.title != null) { docTitle = `${data.title} | ${config.appTitle}`; } else { docTitle = data?.title ?? config?.appTitle ?? document.title; } useDocumentTitle(docTitle); let content: JSX.Element; if (isLoading) { content = (
); } else if (data && messagesTree && messagesTree.length !== 0) { content = ( <>

{data.title}

{new Date(data.createdAt).toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric', })}
); } else { content = (
{localize('com_ui_shared_link_not_found')}
); } return (
{content}
); } export default memo(SharedView);