import { PageHeader } from '@/components/page-header'; import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from '@/components/ui/breadcrumb'; import { useSetModalState } from '@/hooks/common-hooks'; import { useNavigatePage } from '@/hooks/logic-hooks/navigate-hooks'; import { useFetchAgentTemplates, useSetAgent } from '@/hooks/use-agent-request'; import { IFlowTemplate } from '@/interfaces/database/flow'; import { useCallback, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { CreateAgentDialog } from './create-agent-dialog'; import { TemplateCard } from './template-card'; import { SideBar } from './template-sidebar'; export default function AgentTemplates() { const { navigateToAgentList } = useNavigatePage(); const { t } = useTranslation(); const list = useFetchAgentTemplates(); const { loading, setAgent } = useSetAgent(); const [templateList, setTemplateList] = useState([]); useEffect(() => { setTemplateList(list); }, [list]); const { visible: creatingVisible, hideModal: hideCreatingModal, showModal: showCreatingModal, } = useSetModalState(); const [template, setTemplate] = useState(); const showModal = useCallback( (record: IFlowTemplate) => { setTemplate(record); showCreatingModal(); }, [showCreatingModal], ); const { navigateToAgent } = useNavigatePage(); const handleOk = useCallback( async (payload: any) => { let dsl = template?.dsl; const ret = await setAgent({ title: payload.name, dsl, avatar: template?.avatar, }); if (ret?.code === 0) { hideCreatingModal(); navigateToAgent(ret.data.id)(); } }, [ hideCreatingModal, navigateToAgent, setAgent, template?.avatar, template?.dsl, ], ); const handleSiderBarChange = (keyword: string) => { const tempList = list.filter( (item, index) => item.title.toLocaleLowerCase().includes(keyword?.toLocaleLowerCase()) || index === 0, ); setTemplateList(tempList); }; return (
Agent {t('flow.createGraph')}
{templateList?.map((x, index) => { return ( ); })}
{creatingVisible && ( )}
); }