diff --git a/app/api/storage/admin/r2/files/configs/route.ts b/app/api/storage/admin/r2/files/configs/route.ts index 4372248..b33b924 100644 --- a/app/api/storage/admin/r2/files/configs/route.ts +++ b/app/api/storage/admin/r2/files/configs/route.ts @@ -29,9 +29,7 @@ export async function GET(req: NextRequest) { channel: configs.s3_config_01.channel, }); } catch (error) { - return NextResponse.json( - { error: "Error listing buckets" }, - { status: 500 }, - ); + console.error("[Error]", error); + return NextResponse.json("Error listing buckets", { status: 500 }); } } diff --git a/components/file/index.tsx b/components/file/index.tsx index da157ec..d553463 100644 --- a/components/file/index.tsx +++ b/components/file/index.tsx @@ -75,7 +75,7 @@ export default function UserFileManager({ user, action }: FileListProps) { const [pageSize, setPageSize] = useState(20); const [displayType, setDisplayType] = useState("List"); const [showMutiCheckBox, setShowMutiCheckBox] = useState(false); - const [bucketInfo, setBucketInfo] = useState({ + const [currentBucketInfo, setCurrentBucketInfo] = useState({ bucket: "", custom_domain: "", prefix: "", @@ -106,9 +106,13 @@ export default function UserFileManager({ user, action }: FileListProps) { { revalidateOnFocus: false }, ); - const { data: files, isLoading: isLoadingFiles } = useSWR( - bucketInfo.bucket - ? `${action}/r2/files?bucket=${bucketInfo.bucket}&page=${currentPage}&pageSize=${pageSize}&name=${searchParams.name}&fileSize=${searchParams.fileSize}&mimeType=${searchParams.mimeType}&status=${searchParams.status}` + const { + data: files, + isLoading: isLoadingFiles, + error, + } = useSWR( + currentBucketInfo.bucket + ? `${action}/r2/files?bucket=${currentBucketInfo.bucket}&page=${currentPage}&pageSize=${pageSize}&name=${searchParams.name}&fileSize=${searchParams.fileSize}&mimeType=${searchParams.mimeType}&status=${searchParams.status}` : null, fetcher, { @@ -123,8 +127,13 @@ export default function UserFileManager({ user, action }: FileListProps) { ); useEffect(() => { - if (r2Configs && r2Configs.buckets && r2Configs.buckets.length > 0) { - setBucketInfo({ + if ( + r2Configs && + r2Configs.buckets && + r2Configs.buckets.length > 0 && + r2Configs.buckets[0].bucket + ) { + setCurrentBucketInfo({ ...r2Configs.buckets[0], platform: r2Configs.platform, channel: r2Configs.channel, @@ -136,7 +145,7 @@ export default function UserFileManager({ user, action }: FileListProps) { const handleRefresh = () => { setSelectedFiles([]); mutate( - `${action}/r2/files?bucket=${bucketInfo.bucket}&page=${currentPage}&pageSize=${pageSize}&name=${searchParams.name}&fileSize=${searchParams.fileSize}&mimeType=${searchParams.mimeType}&status=${searchParams.status}`, + `${action}/r2/files?bucket=${currentBucketInfo.bucket}&page=${currentPage}&pageSize=${pageSize}&name=${searchParams.name}&fileSize=${searchParams.fileSize}&mimeType=${searchParams.mimeType}&status=${searchParams.status}`, undefined, ); }; @@ -145,8 +154,8 @@ export default function UserFileManager({ user, action }: FileListProps) { const newBucketInfo = r2Configs?.buckets?.find( (item) => item.bucket === bucket, ); - setBucketInfo({ - ...bucketInfo, + setCurrentBucketInfo({ + ...currentBucketInfo, ...newBucketInfo, }); }; @@ -169,7 +178,7 @@ export default function UserFileManager({ user, action }: FileListProps) { body: JSON.stringify({ keys: selectedFiles.map((file) => file.path), ids: selectedFiles.map((file) => file.id), - bucket: bucketInfo.bucket, + bucket: currentBucketInfo.bucket, }), }), { @@ -260,9 +269,10 @@ export default function UserFileManager({ user, action }: FileListProps) { ) : ( r2Configs && r2Configs.buckets && - r2Configs.buckets.length > 0 && ( + r2Configs.buckets.length > 0 && + r2Configs.buckets[0].bucket && (