import type { SupportFormUrlKeys } from 'components/interfaces/Support/SupportForm.utils' import { SupportLink } from 'components/interfaces/Support/SupportLink' import { DOCS_URL } from 'lib/constants' import { Activity, BookOpen, Mail, Wrench } from 'lucide-react' import { useRouter } from 'next/router' import SVG from 'react-inlinesvg' import { AiIconAnimation, ButtonGroup, ButtonGroupItem } from 'ui' import type { HelpOptionId } from './HelpPanel.constants' import { HELP_OPTION_IDS } from './HelpPanel.constants' const DISCORD_URL = 'https://discord.supabase.com' const STATUS_URL = 'https://status.supabase.com' type HelpOptionsListProps = { excludeIds?: HelpOptionId[] isPlatform: boolean projectRef: string | undefined supportLinkQueryParams: Partial | undefined onAssistantClick?: () => void onSupportClick?: () => void size?: 'tiny' | 'small' } export const HelpOptionsList = ({ excludeIds = [], isPlatform, projectRef, supportLinkQueryParams, onAssistantClick, onSupportClick, size = 'tiny', }: HelpOptionsListProps) => { const router = useRouter() const basePath = router.basePath ?? '' const ids = HELP_OPTION_IDS.filter((id) => !excludeIds.includes(id)) const include = (id: HelpOptionId): boolean => { if (id === 'assistant') return !!projectRef if (id === 'status' || id === 'support') return isPlatform return true } const filteredIds = ids.filter(include) return ( {filteredIds.map((id) => { switch (id) { case 'assistant': return ( } onClick={onAssistantClick} > Supabase Assistant ) case 'docs': return ( } asChild > Docs ) case 'troubleshooting': return ( } asChild > Troubleshooting ) case 'discord': return ( } asChild > Ask on Discord ) case 'status': return ( } asChild > Supabase status ) case 'support': return ( } asChild > Contact support ) default: { const _exhaustive: never = id return null } } })} ) }