34 lines
975 B
TypeScript
34 lines
975 B
TypeScript
import { PageContainer } from "@/components/layout/PageContainer";
|
|
import { WorldEntityList } from "@/components/admin/WorldEntityList";
|
|
import { ErrorState } from "@/components/shared/StateViews";
|
|
|
|
import { serverApi } from "@/lib/api/server-client";
|
|
import { describeError } from "@/lib/utils/error";
|
|
import type { WorldEntity } from "@/types/api";
|
|
|
|
export const dynamic = "force-dynamic";
|
|
|
|
export default async function AdminWorldPage() {
|
|
let entities: WorldEntity[] = [];
|
|
let error: string | null = null;
|
|
try {
|
|
entities = await serverApi.get("/admin/world/entities");
|
|
} catch (e) {
|
|
error = describeError(e);
|
|
}
|
|
|
|
return (
|
|
<PageContainer
|
|
title="河图枢"
|
|
description="世界实体管理——人物对世界的认知实体,支持增删改。"
|
|
maxWidth="max-w-5xl"
|
|
>
|
|
{error ? (
|
|
<ErrorState message={error} />
|
|
) : (
|
|
<WorldEntityList entities={entities ?? []} />
|
|
)}
|
|
</PageContainer>
|
|
);
|
|
}
|