'use client' import * as React from 'react' import { cn } from '@/lib/utils' import { buttonVariants } from '@/components/ui/button' import { IconGitHub, IconExternalLink, IconNotice } from '@/components/ui/icons' import dynamic from 'next/dynamic' import Link from 'next/link' import { useHealth } from '@/lib/hooks/use-health' import { useLatestRelease } from '@/lib/hooks/use-latest-release' import { compare } from 'compare-versions' const ThemeToggle = dynamic( () => import('@/components/theme-toggle').then(x => x.ThemeToggle), { ssr: false } ) export function Header() { const { data } = useHealth(); const isChatEnabled = !!data?.chat_model; const version = data?.version?.git_describe; const { data: latestRelease } = useLatestRelease(); const newVersionAvailable = version && latestRelease && compare(latestRelease.name, version, '>'); return (
Home {isChatEnabled && Playground }
{newVersionAvailable && New version ({latestRelease.name}) available } GitHub OpenAPI
) }