Skip to content

Commit d5f404c

Browse files
committed
feat: 수정 심사 페이지에서 심사 상태를 노출하도록 수정
1 parent 0890a7e commit d5f404c

File tree

2 files changed

+66
-1
lines changed

2 files changed

+66
-1
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import * as Common from "@frontend/common";
2+
import { CircularProgress, Stack, Table, TableBody, TableCell, TableHead, TableRow, Typography } from "@mui/material";
3+
import { ErrorBoundary, Suspense } from "@suspensive/react";
4+
import * as React from "react";
5+
import { Link } from "react-router-dom";
6+
7+
import { BackendAdminSignInGuard } from "../../elements/admin_signin_guard";
8+
9+
type ListRowType = {
10+
id: string;
11+
status: "approved" | "rejected" | "requested" | "cancelled";
12+
str_repr: string;
13+
created_at: string;
14+
updated_at: string;
15+
};
16+
17+
const InnerAdminModificationAuditList: React.FC = ErrorBoundary.with(
18+
{ fallback: Common.Components.ErrorFallback },
19+
Suspense.with({ fallback: <CircularProgress /> }, () => {
20+
const backendAdminClient = Common.Hooks.BackendAdminAPI.useBackendAdminClient();
21+
const listQuery = Common.Hooks.BackendAdminAPI.useListQuery<ListRowType>(backendAdminClient, "modification-audit", "modification-audit");
22+
23+
return (
24+
<Stack sx={{ flexGrow: 1, width: "100%", minHeight: "100%" }}>
25+
<Typography variant="h5" children="수정 심사 목록" />
26+
<br />
27+
<Table>
28+
<TableHead>
29+
<TableRow>
30+
<TableCell sx={{ width: "25%" }}>ID</TableCell>
31+
<TableCell sx={{ width: "17.5%" }}>상태</TableCell>
32+
<TableCell sx={{ width: "40%" }}>이름</TableCell>
33+
<TableCell sx={{ width: "17.5%" }}>요청 시각</TableCell>
34+
</TableRow>
35+
</TableHead>
36+
<TableBody>
37+
{listQuery.data?.map((item) => {
38+
const link = `/modification-audit/modification-audit/${item.id}`;
39+
const isRequested = item.status === "requested";
40+
return (
41+
<TableRow key={item.id}>
42+
<TableCell children={<Link to={link} children={item.id} />} />
43+
<TableCell>
44+
<Typography variant="body2" fontWeight={isRequested ? 700 : 400} color={isRequested ? "primary" : "textSecondary"}>
45+
{item.status}
46+
</Typography>
47+
</TableCell>
48+
<TableCell children={<Link to={link} children={item.str_repr} />} />
49+
<TableCell>{new Date(item.created_at).toLocaleString()}</TableCell>
50+
</TableRow>
51+
);
52+
})}
53+
</TableBody>
54+
</Table>
55+
</Stack>
56+
);
57+
})
58+
);
59+
60+
export const AdminModificationAuditList: React.FC = () => (
61+
<BackendAdminSignInGuard>
62+
<InnerAdminModificationAuditList />
63+
</BackendAdminSignInGuard>
64+
);

apps/pyconkr-admin/src/routes.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { AccountRedirectPage } from "./components/pages/account/account";
2222
import { AccountManagementPage } from "./components/pages/account/manage";
2323
import { SignInPage } from "./components/pages/account/sign_in";
2424
import { PublicFileUploadPage } from "./components/pages/file/upload";
25+
import { AdminModificationAuditList } from "./components/pages/modification_audit/list";
2526
import { AdminModificationAuditEditor } from "./components/pages/modification_audit/pages";
2627
import { AdminCMSPageEditor } from "./components/pages/page/editor";
2728
import { AdminPresentationEditor } from "./components/pages/presentation/editor";
@@ -209,6 +210,6 @@ export const RegisteredRoutes = {
209210
"/cms/sitemap/:id": <SiteMapList />,
210211
"/event/presentation/create": <AdminPresentationEditor />,
211212
"/event/presentation/:id": <AdminPresentationEditor />,
212-
"/modification-audit": <AdminList app="modification-audit" resource="modification-audit" hideCreateNew />,
213+
"/modification-audit": <AdminModificationAuditList />,
213214
"/modification-audit/modification-audit/:id": <AdminModificationAuditEditor />,
214215
};

0 commit comments

Comments
 (0)