'use client';
import {useState} from 'react';
import {useQuery} from '@tanstack/react-query';
import {usePathname} from 'next/navigation';
import {VersionUpgradeDialog} from '@/app/(main)/components/version-upgrade-dialog';
import {Badge} from '@/components/ui/badge';
import {Button} from '@/components/ui/button';
import {useUser} from '@/contexts/user-context';
import {
openflareLatestReleaseQueryKey,
openflarePublicStatusQueryKey,
} from '@/lib/hooks/use-openflare-server-upgrade';
import {isOpenFlareConsoleRoute} from '@/lib/navigation/openflare-nav';
import {StatusService, UpdateService} from '@/lib/services/openflare';
export function OpenFlareVersionEntry() {
const pathname = usePathname();
const {user} = useUser();
const [dialogOpen, setDialogOpen] = useState(false);
const isOpenFlareRoute = isOpenFlareConsoleRoute(pathname);
const canUpgrade = Boolean(user?.is_admin);
const statusQuery = useQuery({
queryKey: openflarePublicStatusQueryKey,
queryFn: () => StatusService.getPublicStatus(),
enabled: isOpenFlareRoute,
staleTime: 60_000,
});
const releaseQuery = useQuery({
queryKey: openflareLatestReleaseQueryKey('stable'),
queryFn: () => UpdateService.getLatestRelease('stable'),
enabled: isOpenFlareRoute && canUpgrade,
staleTime: 60 * 60 * 1000,
});
if (!isOpenFlareRoute) {
return null;
}
const version = statusQuery.data?.version || releaseQuery.data?.current_version || 'unknown';
const hasUpdate = Boolean(canUpgrade && releaseQuery.data?.has_update);
const versionLabel = hasUpdate ? `OpenFlare ${version} · 可升级` : `OpenFlare ${version}`;
return (
<>
>
);
}