// @ts-nocheck import { AnimatePresence, motion } from 'framer-motion' import { MessageSquare } from 'lucide-react' import Link from 'next/link' import { useCallback, useEffect, useState } from 'react' import { AiIconAnimation, Button } from 'ui' import { NO_ORG_MARKER, NO_PROJECT_MARKER } from './SupportForm.utils' import { useSendEventMutation } from '@/data/telemetry/send-event-mutation' interface AIAssistantOptionProps { projectRef?: string | null organizationSlug?: string | null onClick?: () => void } export const AIAssistantOption = ({ projectRef, organizationSlug, onClick, }: AIAssistantOptionProps) => { const { mutate: sendEvent } = useSendEventMutation() const [isVisible, setIsVisible] = useState(false) useEffect(() => { const timer = setTimeout(() => setIsVisible(true), 800) return () => clearTimeout(timer) }, []) const onAiAssistantClicked = useCallback(() => { sendEvent({ action: 'ai_assistant_in_support_form_clicked', groups: { project: projectRef === null || projectRef === NO_PROJECT_MARKER ? undefined : projectRef, organization: organizationSlug === null || organizationSlug === NO_ORG_MARKER ? undefined : organizationSlug, }, }) onClick?.() }, [onClick, projectRef, organizationSlug, sendEvent]) // If no specific project selected, use the wildcard route const aiLink = `/project/${projectRef !== NO_PROJECT_MARKER ? projectRef : '_'}?sidebar=ai-assistant&slug=${organizationSlug}` if (!organizationSlug || organizationSlug === NO_ORG_MARKER) return null return ( {isVisible && (
Try Briven Assistant

Ask our AI assistant to help you with your support issue.

{onClick ? ( ) : ( )}
{/* Decorative background */}

Hi! I'm your AI assistant. How can I help you today?

I can help you with database queries, API endpoints, or any other technical questions you might have.

)} ) }