| import { Spinner } from '@librechat/client'; | |
| import type { VersionContext } from './types'; | |
| import VersionItem from './VersionItem'; | |
| import { useLocalize } from '~/hooks'; | |
| type VersionContentProps = { | |
| selectedAgentId: string; | |
| isLoading: boolean; | |
| error: unknown; | |
| versionContext: VersionContext; | |
| onRestore: (index: number) => void; | |
| }; | |
| export default function VersionContent({ | |
| selectedAgentId, | |
| isLoading, | |
| error, | |
| versionContext, | |
| onRestore, | |
| }: VersionContentProps) { | |
| const { versions, versionIds } = versionContext; | |
| const localize = useLocalize(); | |
| if (!selectedAgentId) { | |
| return ( | |
| <div className="py-8 text-center text-text-secondary"> | |
| {localize('com_ui_agent_version_no_agent')} | |
| </div> | |
| ); | |
| } | |
| if (isLoading) { | |
| return ( | |
| <div className="flex items-center justify-center py-8"> | |
| <Spinner className="h-6 w-6" /> | |
| </div> | |
| ); | |
| } | |
| if (error) { | |
| return ( | |
| <div className="py-8 text-center text-red-500">{localize('com_ui_agent_version_error')}</div> | |
| ); | |
| } | |
| if (versionIds.length > 0) { | |
| return ( | |
| <div className="flex flex-col gap-2"> | |
| {versionIds.map(({ id, version, isActive }) => ( | |
| <VersionItem | |
| key={id} | |
| version={version} | |
| index={id} | |
| isActive={isActive} | |
| versionsLength={versions.length} | |
| onRestore={onRestore} | |
| /> | |
| ))} | |
| </div> | |
| ); | |
| } | |
| return ( | |
| <div className="py-8 text-center text-text-secondary"> | |
| {localize('com_ui_agent_version_empty')} | |
| </div> | |
| ); | |
| } | |