refactor(pages): migrate app data reads to api adapters

This commit is contained in:
zetaloop
2026-02-22 08:30:21 +08:00
parent 43a0cf7a73
commit 4beb610f23
13 changed files with 97 additions and 66 deletions
+12 -6
View File
@@ -5,25 +5,31 @@ import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { Badge } from "@/components/ui/badge"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
import { mockFavorites, mockPlayers, mockPosts, mockShops, mockUsers } from "@/lib/mock"
import {
getUserById,
listFavoritesByUser,
listPlayers,
listPostsByAuthor,
listShops,
} from "@/lib/api"
export default async function UserProfilePage({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params
const user = mockUsers.find((u) => u.id === id)
const user = getUserById(id)
if (!user) {
notFound()
}
const userPosts = mockPosts.filter((p) => p.author.id === user.id)
const userFavorites = mockFavorites.filter((f) => f.userId === user.id)
const userPosts = listPostsByAuthor(user.id)
const userFavorites = listFavoritesByUser(user.id)
const favoritePlayers = userFavorites
.filter((f) => f.targetType === "player")
.map((f) => mockPlayers.find((p) => p.id === f.targetId))
.map((f) => listPlayers().find((p) => p.id === f.targetId))
.filter((p): p is NonNullable<typeof p> => p != null)
const favoriteShops = userFavorites
.filter((f) => f.targetType === "shop")
.map((f) => mockShops.find((s) => s.id === f.targetId))
.map((f) => listShops().find((s) => s.id === f.targetId))
.filter((s): s is NonNullable<typeof s> => s != null)
return (