Compare commits

..

10 Commits

Author SHA1 Message Date
aacbc21605 remove stepper init 2025-02-01 11:06:25 +07:00
83eca26b60 change privy logo, change link to button 2025-02-01 11:05:52 +07:00
625fd34b09 fix id type 2025-01-31 21:52:29 +07:00
b6cf3bae96 change db types 2025-01-31 21:48:44 +07:00
28cf5288ab fix meta desc 2025-01-25 14:14:08 +07:00
25f84f773e remove wallet to solana only 2025-01-24 07:34:46 +07:00
4724909fa6 fix typo 2025-01-23 17:42:18 +07:00
64adffaee7 add share agent button 2025-01-21 13:22:37 +07:00
37f06d683d fix explore link 2025-01-20 22:14:53 +07:00
b6ce119bb1 fix hero pill 2025-01-20 22:13:39 +07:00
9 changed files with 70 additions and 46 deletions

View File

@ -48,7 +48,7 @@ export default function ResponseAgentCard({
) )
` `
) )
.eq("id", agentResponseId) .eq("id", parseInt(agentResponseId))
.limit(1) .limit(1)
.single(); .single();

View File

@ -326,21 +326,22 @@ const CompleteComponent = ({
<Check className="h-6 w-6 text-green-800" /> <Check className="h-6 w-6 text-green-800" />
</div> </div>
<h3 className="text-lg py-4 font-bold">Agent succesfully created!</h3> <h3 className="text-lg py-4 font-bold">Agent succesfully created!</h3>
<p className="text-muted-foreground"> <p className="text-muted-foreground mb-3">
You can try to have a conversation with your agent. You can try to have a conversation with your agent.
</p> </p>
<Link <Link
href={`/agents/${agentId}`} href={`/agents/${agentId}`}
target="blank" target="blank"
className="text-blue-500 hover:underline" className={buttonVariants({ variant: "outline" })}
> >
<MessageCircle className="h-4 w-4 mr-2"/>
Chat with {agentName} Chat with {agentName}
</Link> </Link>
</div> </div>
{/* form footer */} {/* form footer */}
<div> <div>
<div className="flex justify-end gap-4"> <div className="flex justify-end gap-4">
<Link href="/" className={buttonVariants({ variant: "outline" })}> <Link href="/" className={buttonVariants({ variant: "default" })}>
Back to home Back to home
</Link> </Link>
</div> </div>

View File

@ -5,14 +5,15 @@ import Image from "next/image";
import { motion } from "framer-motion"; import { motion } from "framer-motion";
import { Play } from "lucide-react"; import { Play, Share, Share2 } from "lucide-react";
import { formatDate } from "@/lib/utils"; import { formatDate } from "@/lib/utils";
import { Tables } from "@/utils/supabase/database.types"; import { Tables } from "@/utils/supabase/database.types";
import { Badge } from "@/components/ui/badge"; import { Badge } from "@/components/ui/badge";
import { buttonVariants } from "@/components/ui/button"; import { Button, buttonVariants } from "@/components/ui/button";
import { toast } from "sonner";
const ease = [0.16, 1, 0.3, 1]; const ease = [0.16, 1, 0.3, 1];
@ -65,11 +66,22 @@ export default function AgentCard(props: AgentCardProps) {
</div> </div>
<h3 className="text-xl font-semibold mb-2 truncate">{name}</h3> <h3 className="text-xl font-semibold mb-2 truncate">{name}</h3>
<p className="text-sm text-foreground line-clamp-3 mb-4">{description}</p> <p className="text-sm text-foreground line-clamp-3 mb-4">{description}</p>
<div className="mt-auto grid"> <div className="mt-auto grid sm:grid-cols-2 gap-2">
<Button
variant={"outline"}
onClick={() => {
navigator.clipboard.writeText(`https://beactio.ai/agents/${id}`);
// navigator.clipboard.writeText(`http://localhost:3000/agents/${id}`);
toast.info("Copied to clipboard!");
}}
>
<Share2 className="h-4 w-4 mr-2" />
<span>Share</span>
</Button>
<Link <Link
href={`/agents/${id}`} href={`/agents/${id}`}
target="blank" target="blank"
className={buttonVariants({ variant: "outline" })} className={buttonVariants({ variant: "default" })}
> >
<Play className="h-4 w-4 mr-2" /> <Play className="h-4 w-4 mr-2" />
<span>Try it</span> <span>Try it</span>

View File

@ -18,7 +18,7 @@ export default function CtaSection() {
<Section <Section
id="cta" id="cta"
title="Ready to experience the future of autonomous AI?" title="Ready to experience the future of autonomous AI?"
subtitle="Join us and try our agentic AI into your operations." subtitle="Join us and try our Agentic AI in your operations."
className="bg-primary/10 dark:bg-primary/70 rounded-xl py-16" className="bg-primary/10 dark:bg-primary/70 rounded-xl py-16"
> >
<motion.div <motion.div

View File

@ -56,19 +56,8 @@ export default function Footer() {
/> />
<span className="font-bold text-xl">{siteConfig.name}</span> <span className="font-bold text-xl">{siteConfig.name}</span>
</Link> </Link>
<p className="mb-5">Build advanced custom ai agents with no code</p> <p className="mb-5">Build advanced Custom AI Agents with No Code</p>
<ul className="flex gap-3"> <ul className="flex gap-3">
<li>
<Link
href="/"
className={buttonVariants({
variant: "outline",
size: "icon",
})}
>
<FaBook className="text-primary" />
</Link>
</li>
<li> <li>
<Link <Link
href="https://x.com/beactio_ai" href="https://x.com/beactio_ai"

View File

@ -36,25 +36,29 @@ function HeroPill() {
animate={{ opacity: 1, y: 0 }} animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, ease }} transition={{ duration: 0.8, ease }}
> >
<Button <Link
variant={"outline"} href={"/explore"}
className="flex w-auto items-center space-x-2 rounded-full bg-primary/20 px-2 py-1 ring-1 ring-accent whitespace-pre" className="flex w-auto items-center space-x-2 rounded-full bg-primary/20 px-2 py-1 ring-1 ring-accent whitespace-pre"
onClick={() => { // variant={"outline"}
if (data && data.address) { // onClick={() => {
navigator.clipboard.writeText(data.address); // if (data && data.address) {
toast.info("Copied to clipboard!"); // navigator.clipboard.writeText(data.address);
} // toast.info("Copied to clipboard!");
}} // }
// }}
> >
<div className="w-fit rounded-full bg-accent px-2 py-0.5 text-center text-xs font-medium text-primary sm:text-sm"> <div className="w-fit rounded-full bg-accent px-2 py-0.5 text-center text-xs font-medium text-primary sm:text-sm">
📣 Content Address : 📣 Announcement
</div> </div>
{isLoading && ( <p className="text-xs font-medium text-primary sm:text-sm pr-2">
Introducing beactio.ai
</p>
{/* {isLoading && (
<div className="px-6 flex items-center"> <div className="px-6 flex items-center">
<Spinner /> <Spinner />
</div> </div>
)} )} */}
{isError && ( {/* {isError && (
<p className="text-xs font-medium text-primary sm:text-sm"> <p className="text-xs font-medium text-primary sm:text-sm">
There is something wrong. There is something wrong.
</p> </p>
@ -63,8 +67,8 @@ function HeroPill() {
<p className="text-xs font-medium text-primary sm:text-sm pr-1"> <p className="text-xs font-medium text-primary sm:text-sm pr-1">
{data?.address} {data?.address}
</p> </p>
)} )} */}
</Button> </Link>
</motion.div> </motion.div>
); );
} }

View File

@ -7,7 +7,7 @@ export const BLUR_FADE_DELAY = 0.15;
export const siteConfig = { export const siteConfig = {
name: "beactio.ai", name: "beactio.ai",
description: "Automate your workflow with AI", description: "Build advanced Custom AI Agents with No Code",
url: process.env.NEXT_PUBLIC_APP_URL || "http://localhost:3000", url: process.env.NEXT_PUBLIC_APP_URL || "http://localhost:3000",
keywords: ["SaaS", "Template", "Next.js", "React", "Tailwind CSS"], keywords: ["SaaS", "Template", "Next.js", "React", "Tailwind CSS"],
links: { links: {

View File

@ -4,7 +4,10 @@ import { PrivyProvider } from "@privy-io/react-auth";
import { toSolanaWalletConnectors } from "@privy-io/react-auth/solana"; import { toSolanaWalletConnectors } from "@privy-io/react-auth/solana";
const solanaConnectors = toSolanaWalletConnectors(); const solanaConnectors = toSolanaWalletConnectors({
// By default, shouldAutoConnect is enabled
shouldAutoConnect: false,
});
export default function MyPrivyProvider({ export default function MyPrivyProvider({
children, children,
@ -20,11 +23,11 @@ export default function MyPrivyProvider({
accentColor: "#812f20", accentColor: "#812f20",
theme: "light", theme: "light",
showWalletLoginFirst: false, showWalletLoginFirst: false,
walletChainType: "ethereum-and-solana", walletChainType: "solana-only",
walletList: ["detected_wallets", "phantom"], // walletList: ["phantom"],
logo: "https://supabasekong-mco40gw4sc0gs4ks40w4c4g4.dev3vds1.link/storage/v1/object/public/agent-thumbnails/Beactio%20Banner.png", logo: "https://supabasekong-swwwcowsg8kso0cg4swosw48.dev3vds1.link/storage/v1/object/public/logo/banner.png",
}, },
loginMethods: ["email", "wallet", "discord"], loginMethods: ["email", "wallet"],
fundingMethodConfig: { fundingMethodConfig: {
moonpay: { moonpay: {
useSandbox: true, useSandbox: true,

View File

@ -63,21 +63,21 @@ export type Database = {
Row: { Row: {
agent_id: number; agent_id: number;
created_at: string; created_at: string;
id: string; id: number;
question: string; question: string;
response: string; response: string;
}; };
Insert: { Insert: {
agent_id: number; agent_id: number;
created_at?: string; created_at?: string;
id?: string; id?: number;
question: string; question: string;
response: string; response: string;
}; };
Update: { Update: {
agent_id?: number; agent_id?: number;
created_at?: string; created_at?: string;
id?: string; id?: number;
question?: string; question?: string;
response?: string; response?: string;
}; };
@ -103,11 +103,11 @@ export type Database = {
user_id: string | null; user_id: string | null;
}; };
Insert: { Insert: {
conversation?: number; conversation: number;
created_at?: string; created_at?: string;
description: string; description: string;
id?: number; id?: number;
image_url?: string; image_url: string;
last_conv?: string | null; last_conv?: string | null;
model_type: Database["public"]["Enums"]["modelType"]; model_type: Database["public"]["Enums"]["modelType"];
name: string; name: string;
@ -547,3 +547,18 @@ export type Enums<
: PublicEnumNameOrOptions extends keyof PublicSchema["Enums"] : PublicEnumNameOrOptions extends keyof PublicSchema["Enums"]
? PublicSchema["Enums"][PublicEnumNameOrOptions] ? PublicSchema["Enums"][PublicEnumNameOrOptions]
: never; : never;
export type CompositeTypes<
PublicCompositeTypeNameOrOptions extends
| keyof PublicSchema["CompositeTypes"]
| { schema: keyof Database },
CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
schema: keyof Database;
}
? keyof Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
: never = never
> = PublicCompositeTypeNameOrOptions extends { schema: keyof Database }
? Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
: PublicCompositeTypeNameOrOptions extends keyof PublicSchema["CompositeTypes"]
? PublicSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
: never;