'use client'; import { useState } from 'react'; import useSWR from 'swr'; import { type ApkEnvironment } from '@/lib/apk-parser'; import ApkTable from './ApkTable'; const fetcher = (url: string) => fetch(url).then((res) => res.json()); interface Apk { name: string; environment: ApkEnvironment; commit: string | null; size: number; modifiedAt: string; downloadUrl: string; } interface ApkListProps { project: string; version: string; commitId: string; } const TABS: ApkEnvironment[] = ['dev', 'product', 'sandbox', 'other']; export default function ApkList({ project, version, commitId }: ApkListProps) { const [activeTab, setActiveTab] = useState('product'); const { data: apks, isLoading, error } = useSWR( `/api/apks?project=${project}&version=${version}&commit=${commitId}`, fetcher ); if (isLoading) { return (
加载中...
); } if (error) { return (
加载失败,请重试
); } if (!apks || apks.length === 0) { return (

未找到匹配的 APK 文件

); } // Group APKs by environment const groupedApks = apks.reduce((acc, apk) => { acc[apk.environment] = [...(acc[apk.environment] || []), apk]; return acc; }, {} as Record); return (
{/* Tab Navigation */}
{/* Tab Content */}
); }