import { Plus } from 'lucide-react'; import { useNavigate } from 'react-router-dom'; import { Button, Skeleton } from '@librechat/client'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; import type { TPromptGroup, TStartupConfig } from 'librechat-data-provider'; import DashGroupItem from '~/components/Prompts/Groups/DashGroupItem'; import ChatGroupItem from '~/components/Prompts/Groups/ChatGroupItem'; import { useGetStartupConfig } from '~/data-provider'; import { useLocalize, useHasAccess } from '~/hooks'; export default function List({ groups = [], isChatRoute, isLoading, }: { groups?: TPromptGroup[]; isChatRoute: boolean; isLoading: boolean; }) { const navigate = useNavigate(); const localize = useLocalize(); const { data: startupConfig = {} as Partial } = useGetStartupConfig(); const { instanceProjectId } = startupConfig; const hasCreateAccess = useHasAccess({ permissionType: PermissionTypes.PROMPTS, permission: Permissions.CREATE, }); return (
{hasCreateAccess && (
)}
{isLoading && isChatRoute && ( )} {isLoading && !isChatRoute && Array.from({ length: 10 }).map((_, index: number) => ( ))} {!isLoading && groups.length === 0 && isChatRoute && (
{localize('com_ui_nothing_found')}
)} {!isLoading && groups.length === 0 && !isChatRoute && (
{localize('com_ui_nothing_found')}
)} {groups.map((group) => { if (isChatRoute) { return ( ); } return ( ); })}
); }