import { useMemo, useEffect } from 'react'; import { Outlet, useParams, useNavigate } from 'react-router-dom'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; import FilterPrompts from '~/components/Prompts/Groups/FilterPrompts'; import DashBreadcrumb from '~/routes/Layouts/DashBreadcrumb'; import { usePromptGroupsNav, useHasAccess } from '~/hooks'; import GroupSidePanel from './Groups/GroupSidePanel'; import { cn } from '~/utils'; export default function PromptsView() { const params = useParams(); const navigate = useNavigate(); const groupsNav = usePromptGroupsNav(); const isDetailView = useMemo(() => !!(params.promptId || params['*'] === 'new'), [params]); const hasAccess = useHasAccess({ permissionType: PermissionTypes.PROMPTS, permission: Permissions.USE, }); useEffect(() => { let timeoutId: ReturnType; if (!hasAccess) { timeoutId = setTimeout(() => { navigate('/c/new'); }, 1000); } return () => { clearTimeout(timeoutId); }; }, [hasAccess, navigate]); if (!hasAccess) { return null; } return (
); }