'use client'; import { useTranslation } from 'react-i18next'; import ReactMarkdown from 'react-markdown'; import remarkGfm from 'remark-gfm'; import rehypeRaw from 'rehype-raw'; import rehypeSanitize from 'rehype-sanitize'; import rehypeHighlight from 'rehype-highlight'; import i18n from 'i18next'; import { ExternalLink } from 'lucide-react'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import '@/styles/github-markdown.css'; import { GitHubRelease } from '@/app/infra/http/CloudServiceClient'; interface NewVersionDialogProps { open: boolean; onOpenChange: (open: boolean) => void; release: GitHubRelease | null; } export default function NewVersionDialog({ open, onOpenChange, release, }: NewVersionDialogProps) { const { t } = useTranslation(); const getUpdateDocsUrl = () => { const language = i18n.language; if (language === 'zh-Hans' || language === 'zh-Hant') { return 'https://docs.langbot.app/zh/deploy/update'; } else if (language === 'ja-JP') { return 'https://docs.langbot.app/ja/deploy/update'; } else { return 'https://docs.langbot.app/en/deploy/update'; } }; const handleViewUpdateGuide = () => { window.open(getUpdateDocsUrl(), '_blank'); }; if (!release) return null; return ( {t('version.newVersionAvailable')} {release.tag_name}
    {children}
, ol: ({ children }) => (
    {children}
), li: ({ children }) =>
  • {children}
  • , a: ({ href, children }) => ( {children} ), }} > {release.body || t('version.noReleaseNotes')}
    ); }