mirror of
https://github.com/aljazceru/AgentGPT.git
synced 2025-12-17 05:54:20 +01:00
🤖 Add help modal
This commit is contained in:
90
src/components/Dialog.tsx
Normal file
90
src/components/Dialog.tsx
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
import React from "react";
|
||||||
|
import Button from "./Button";
|
||||||
|
import { FaGithub, FaTwitter } from "react-icons/fa";
|
||||||
|
|
||||||
|
export default function Dialog({
|
||||||
|
showModal,
|
||||||
|
setShowModal,
|
||||||
|
}: {
|
||||||
|
showModal: boolean;
|
||||||
|
setShowModal: (showModal: boolean) => void;
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{showModal ? (
|
||||||
|
<>
|
||||||
|
<div
|
||||||
|
className="fixed inset-0 z-50 flex items-center justify-center overflow-y-auto overflow-x-hidden bg-black/70 p-3 font-mono text-white outline-none transition-all transition-all focus:outline-none"
|
||||||
|
onClick={() => setShowModal(false)}
|
||||||
|
>
|
||||||
|
<div className="relative mx-auto my-6 w-auto max-w-3xl rounded-lg border-2 border-zinc-600">
|
||||||
|
{/*content*/}
|
||||||
|
<div className="relative flex w-full flex-col rounded-lg border-0 bg-[#3a3a3a] shadow-lg outline-none focus:outline-none">
|
||||||
|
{/*header*/}
|
||||||
|
<div className="flex items-start justify-between rounded-t border-b-2 border-solid border-white/20 p-5">
|
||||||
|
<h3 className="font-mono text-3xl font-semibold">
|
||||||
|
Welcome to AgentGPT 🤖
|
||||||
|
</h3>
|
||||||
|
<button
|
||||||
|
className="float-right ml-auto border-0 bg-transparent p-1 text-3xl font-semibold leading-none opacity-5 outline-none focus:outline-none"
|
||||||
|
onClick={() => setShowModal(false)}
|
||||||
|
>
|
||||||
|
<span className="block h-6 w-6 bg-transparent text-2xl opacity-5 outline-none focus:outline-none">
|
||||||
|
×
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
{/*body*/}
|
||||||
|
<div className="text-md relative my-3 flex-auto p-3 leading-relaxed">
|
||||||
|
<p>
|
||||||
|
<strong>AgentGPT</strong> allows you to configure and deploy
|
||||||
|
Autonomous AI agents. Name your own custom AI and have it
|
||||||
|
embark on any goal imaginable. It will attempt to reach the
|
||||||
|
goal by thinking of tasks to do, executing them, and
|
||||||
|
learning from the results 🚀.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<br />
|
||||||
|
This platform is currently in beta, we are currently working
|
||||||
|
on:
|
||||||
|
<ul className="ml-5 list-inside list-disc">
|
||||||
|
<li>Long term memory 🧠</li>
|
||||||
|
<li>Web browsing 🌐</li>
|
||||||
|
<li>Interaction with websites and people 👨👩👦</li>
|
||||||
|
</ul>
|
||||||
|
<p className="mt-2">Follow the journey below:</p>
|
||||||
|
</p>
|
||||||
|
<div className="mt-4 flex w-full items-center justify-center gap-5">
|
||||||
|
<div
|
||||||
|
className="cursor-pointer rounded-full bg-black/30 p-3 hover:bg-black/70"
|
||||||
|
onClick={() =>
|
||||||
|
window.open("https://twitter.com/", "_blank")
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<FaTwitter size={30} />
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="cursor-pointer rounded-full bg-black/30 p-3 hover:bg-black/70"
|
||||||
|
onClick={() =>
|
||||||
|
window.open(
|
||||||
|
"https://github.com/reworkd/AgentGPT",
|
||||||
|
"_blank"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<FaGithub size={30} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/*footer*/}
|
||||||
|
<div className="flex items-center justify-end rounded-b border-t-2 border-solid border-white/20 p-2">
|
||||||
|
<Button onClick={() => setShowModal(false)}>Close</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
) : null}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -4,13 +4,13 @@ import { BiPlus } from "react-icons/bi";
|
|||||||
import FadeOut from "./motions/FadeOut";
|
import FadeOut from "./motions/FadeOut";
|
||||||
import { AnimatePresence } from "framer-motion";
|
import { AnimatePresence } from "framer-motion";
|
||||||
|
|
||||||
const Drawer = () => {
|
const Drawer = ({ handleHelp }: { handleHelp: () => void }) => {
|
||||||
const [agents, setAgents] = React.useState<string[]>([]);
|
const [agents, setAgents] = React.useState<string[]>([]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
id="drawer"
|
id="drawer"
|
||||||
className="z-50 m-0 hidden h-screen w-72 flex-col justify-between bg-zinc-900 p-3 font-mono text-white shadow-3xl md:flex"
|
className="z-30 m-0 hidden h-screen w-72 flex-col justify-between bg-zinc-900 p-3 font-mono text-white shadow-3xl md:flex"
|
||||||
>
|
>
|
||||||
<div className="flex flex-col gap-1 overflow-hidden">
|
<div className="flex flex-col gap-1 overflow-hidden">
|
||||||
<DrawerItem
|
<DrawerItem
|
||||||
@@ -47,7 +47,7 @@ const Drawer = () => {
|
|||||||
<DrawerItem
|
<DrawerItem
|
||||||
icon={<FaQuestionCircle />}
|
icon={<FaQuestionCircle />}
|
||||||
text="Help"
|
text="Help"
|
||||||
onClick={() => alert("No u.")}
|
onClick={handleHelp}
|
||||||
/>
|
/>
|
||||||
<DrawerItem
|
<DrawerItem
|
||||||
icon={<FaTwitter />}
|
icon={<FaTwitter />}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { type NextPage } from "next";
|
import { type NextPage } from "next";
|
||||||
import Badge from "../components/Badge";
|
import Badge from "../components/Badge";
|
||||||
import DefaultLayout from "../layout/default";
|
import DefaultLayout from "../layout/default";
|
||||||
import React from "react";
|
import React, { useEffect } from "react";
|
||||||
import type { Message } from "../components/ChatWindow";
|
import type { Message } from "../components/ChatWindow";
|
||||||
import ChatWindow from "../components/ChatWindow";
|
import ChatWindow from "../components/ChatWindow";
|
||||||
import Drawer from "../components/Drawer";
|
import Drawer from "../components/Drawer";
|
||||||
@@ -12,6 +12,7 @@ import PopIn from "../components/motions/popin";
|
|||||||
import { VscLoading } from "react-icons/vsc";
|
import { VscLoading } from "react-icons/vsc";
|
||||||
import AutonomousAgent from "../components/AutonomousAgent";
|
import AutonomousAgent from "../components/AutonomousAgent";
|
||||||
import Expand from "../components/motions/expand";
|
import Expand from "../components/motions/expand";
|
||||||
|
import Dialog from "../components/Dialog";
|
||||||
|
|
||||||
const Home: NextPage = () => {
|
const Home: NextPage = () => {
|
||||||
const [name, setName] = React.useState<string>("");
|
const [name, setName] = React.useState<string>("");
|
||||||
@@ -20,6 +21,13 @@ const Home: NextPage = () => {
|
|||||||
|
|
||||||
const [messages, setMessages] = React.useState<Message[]>([]);
|
const [messages, setMessages] = React.useState<Message[]>([]);
|
||||||
|
|
||||||
|
const [showModal, setShowModal] = React.useState(false);
|
||||||
|
useEffect(() => {
|
||||||
|
setTimeout(() => {
|
||||||
|
setShowModal(true);
|
||||||
|
}, 1700);
|
||||||
|
}, []);
|
||||||
|
|
||||||
const handleNewGoal = () => {
|
const handleNewGoal = () => {
|
||||||
const addMessage = (message: Message) =>
|
const addMessage = (message: Message) =>
|
||||||
setMessages((prev) => [...prev, message]);
|
setMessages((prev) => [...prev, message]);
|
||||||
@@ -32,8 +40,9 @@ const Home: NextPage = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<DefaultLayout>
|
<DefaultLayout>
|
||||||
|
<Dialog showModal={showModal} setShowModal={setShowModal} />
|
||||||
<main className="flex h-screen w-screen flex-row">
|
<main className="flex h-screen w-screen flex-row">
|
||||||
<Drawer />
|
<Drawer handleHelp={() => setShowModal(true)} />
|
||||||
<div
|
<div
|
||||||
id="content"
|
id="content"
|
||||||
className="z-10 flex h-screen w-full items-center justify-center p-2 px-4"
|
className="z-10 flex h-screen w-full items-center justify-center p-2 px-4"
|
||||||
|
|||||||
Reference in New Issue
Block a user