diff --git a/src/interface/web/app/agents/layout.tsx b/src/interface/web/app/agents/layout.tsx index a0ae26d6..728ad4bb 100644 --- a/src/interface/web/app/agents/layout.tsx +++ b/src/interface/web/app/agents/layout.tsx @@ -8,18 +8,19 @@ export const metadata: Metadata = { title: "Khoj AI - Agents", description: "Find a specialized agent that can help you address more specific needs.", icons: { - icon: '/static/favicon.ico', + icon: "/static/favicon.ico", }, }; export default function RootLayout({ - children, + children, }: Readonly<{ - children: React.ReactNode; + children: React.ReactNode; }>) { return ( - -
- {children} - + object-src 'none';" + > + {children} ); } diff --git a/src/interface/web/app/agents/page.tsx b/src/interface/web/app/agents/page.tsx index f9c3a36b..c9e8a1bd 100644 --- a/src/interface/web/app/agents/page.tsx +++ b/src/interface/web/app/agents/page.tsx @@ -1,37 +1,50 @@ -'use client' +"use client"; -import styles from './agents.module.css'; +import styles from "./agents.module.css"; -import Image from 'next/image'; -import useSWR from 'swr'; +import Image from "next/image"; +import useSWR from "swr"; -import { useEffect, useState } from 'react'; +import { useEffect, useState } from "react"; -import { useAuthenticatedData, UserProfile } from '../common/auth'; -import { Button } from '@/components/ui/button'; -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/ui/tooltip" +import { useAuthenticatedData, UserProfile } from "../common/auth"; +import { Button } from "@/components/ui/button"; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"; + +import { PaperPlaneTilt, Lightning, Plus } from "@phosphor-icons/react"; import { - PaperPlaneTilt, - Lightning, - Plus, -} from "@phosphor-icons/react"; - -import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card'; -import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTrigger } from '@/components/ui/dialog'; -import { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger } from '@/components/ui/drawer'; -import LoginPrompt from '../components/loginPrompt/loginPrompt'; -import { InlineLoading } from '../components/loading/loading'; -import SidePanel from '../components/sidePanel/chatHistorySidePanel'; -import NavMenu from '../components/navMenu/navMenu'; -import { getIconFromIconName } from '../common/iconUtils'; -import { convertColorToTextClass } from '../common/colorUtils'; -import { Alert, AlertDescription } from '@/components/ui/alert'; + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@/components/ui/card"; +import { + Dialog, + DialogContent, + DialogFooter, + DialogHeader, + DialogTrigger, +} from "@/components/ui/dialog"; +import { + Drawer, + DrawerClose, + DrawerContent, + DrawerDescription, + DrawerFooter, + DrawerHeader, + DrawerTitle, + DrawerTrigger, +} from "@/components/ui/drawer"; +import LoginPrompt from "../components/loginPrompt/loginPrompt"; +import { InlineLoading } from "../components/loading/loading"; +import SidePanel from "../components/sidePanel/chatHistorySidePanel"; +import NavMenu from "../components/navMenu/navMenu"; +import { getIconFromIconName } from "../common/iconUtils"; +import { convertColorToTextClass } from "../common/colorUtils"; +import { Alert, AlertDescription } from "@/components/ui/alert"; export interface AgentData { slug: string; @@ -43,7 +56,6 @@ export interface AgentData { } async function openChat(slug: string, userData: UserProfile | null) { - const unauthenticatedRedirectUrl = `/login?next=/agents?agent=${slug}`; if (!userData) { window.location.href = unauthenticatedRedirectUrl; @@ -61,7 +73,11 @@ async function openChat(slug: string, userData: UserProfile | null) { } } -const agentsFetcher = () => window.fetch('/api/agents').then(res => res.json()).catch(err => console.log(err)); +const agentsFetcher = () => + window + .fetch("/api/agents") + .then((res) => res.json()) + .catch((err) => console.log(err)); interface AgentCardProps { data: AgentData; @@ -69,171 +85,195 @@ interface AgentCardProps { isMobileWidth: boolean; } - function AgentCard(props: AgentCardProps) { const searchParams = new URLSearchParams(window.location.search); - const agentSlug = searchParams.get('agent'); + const agentSlug = searchParams.get("agent"); const [showModal, setShowModal] = useState(agentSlug === props.data.slug); const [showLoginPrompt, setShowLoginPrompt] = useState(false); const userData = props.userProfile; if (showModal) { - window.history.pushState({}, `Khoj AI - Agent ${props.data.slug}`, `/agents?agent=${props.data.slug}`); + window.history.pushState( + {}, + `Khoj AI - Agent ${props.data.slug}`, + `/agents?agent=${props.data.slug}`, + ); } const stylingString = convertColorToTextClass(props.data.color); return ( -