diff --git a/package-lock.json b/package-lock.json index 0110f59..bd9b5b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,8 @@ "node-calls-python": "^1.8.2", "react": "^18", "react-dom": "^18", + "sweetalert2": "^11.10.5", + "sweetalert2-react-content": "^5.0.7", "tw-elements": "^1.1.0", "tw-elements-react": "^1.0.0-alpha2" }, @@ -6657,6 +6659,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sweetalert2": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.10.5.tgz", + "integrity": "sha512-q9eE3EKhMcpIDU/Xcz7z5lk8axCGkgxwK47gXGrrfncnBJWxHPPHnBVAjfsVXcTt8Yi8U6HNEcBRSu+qGeyFdA==", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/limonte" + } + }, + "node_modules/sweetalert2-react-content": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/sweetalert2-react-content/-/sweetalert2-react-content-5.0.7.tgz", + "integrity": "sha512-8Fk82Mpk45lFXpJWKIFF/lq8k/dJKDDQGFcuqVosaL/qRdViyAs5+u37LoTGfnOIvf+rfQB3PAXcp1XLLn+0ew==", + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0", + "sweetalert2": "^11.0.0" + } + }, "node_modules/symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", diff --git a/package.json b/package.json index 119387d..da74cdd 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,8 @@ "node-calls-python": "^1.8.2", "react": "^18", "react-dom": "^18", + "sweetalert2": "^11.10.5", + "sweetalert2-react-content": "^5.0.7", "tw-elements": "^1.1.0", "tw-elements-react": "^1.0.0-alpha2" }, diff --git a/src/app/agents/page.tsx b/src/app/agents/page.tsx index 08bfa84..6af781e 100644 --- a/src/app/agents/page.tsx +++ b/src/app/agents/page.tsx @@ -15,7 +15,7 @@ const AgentsPage = () => { const [selectedAgent, setSelectedAgent] = useState(null); - const { loading, error, data } = useQuery(GET_AGENTS); + const { loading, error, data, refetch } = useQuery(GET_AGENTS); if (loading) { return ( @@ -46,6 +46,9 @@ const AgentsPage = () => { { + refetch(); + }} />
diff --git a/src/components/modals/new_agent_modal.tsx b/src/components/modals/new_agent_modal.tsx index d1a7a13..94d9c3c 100644 --- a/src/components/modals/new_agent_modal.tsx +++ b/src/components/modals/new_agent_modal.tsx @@ -16,12 +16,28 @@ import { TETextarea, } from "tw-elements-react"; import TWFileInput from "../inputs/file"; -import { Switch } from "@material-tailwind/react"; +import { Button, Switch } from "@material-tailwind/react"; +import { useMutation } from "@apollo/client"; +import { CREATE_AGENT } from "@/utils/graphql_queries"; +import withReactContent from "sweetalert2-react-content"; +import Swal from "sweetalert2"; +import { Gothic_A1 } from "next/font/google"; -function NewAgentModal(props: { showModal: boolean; setShowModal: Function }) { - const { showModal, setShowModal } = props; +function NewAgentModal(props: { + showModal: boolean; + setShowModal: Function; + onAddNewAdent: Function; +}) { + const { showModal, setShowModal, onAddNewAdent = () => {} } = props; - const [tempAgent, setTempAgent] = useState(); + const [tempAgent, setTempAgent] = useState({ + role: "", + goal: "", + backstory: "", + tools: [], + allowDelegation: false, + verbose: false, + }); const [selectedImage, setSelectedImage] = useState< string | ArrayBuffer | null @@ -40,6 +56,22 @@ function NewAgentModal(props: { showModal: boolean; setShowModal: Function }) { } }; + const [createAgent] = useMutation(CREATE_AGENT); + const [createAgentLoading, setCreateAgentLoading] = useState(false); + + const handleCreateAgent = (agentData: Agent) => { + setCreateAgentLoading(true); + return createAgent({ + variables: { + ...agentData, + }, + }).finally(() => { + setCreateAgentLoading(false); + }); + }; + + const ReactSwal = withReactContent(Swal); + return (
@@ -166,21 +198,45 @@ function NewAgentModal(props: { showModal: boolean; setShowModal: Function }) { - + - +