From ed499cbc4cf264305b390c8970d3689bab842b61 Mon Sep 17 00:00:00 2001 From: MUsoftware Date: Sat, 9 May 2026 11:02:33 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20DomainGroup=20=EC=96=B4=EB=93=9C?= =?UTF-8?q?=EB=AF=BC=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/pyconkr-admin/src/routes.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/pyconkr-admin/src/routes.tsx b/apps/pyconkr-admin/src/routes.tsx index bc96b46..d42e658 100644 --- a/apps/pyconkr-admin/src/routes.tsx +++ b/apps/pyconkr-admin/src/routes.tsx @@ -12,6 +12,7 @@ import { ManageAccounts, MeetingRoom, NoteAlt, + Public, StickyNote2, Tag, } from "@mui/icons-material"; @@ -48,6 +49,14 @@ export const RouteDefinitions: RouteDef[] = [ key: "cms-separator", title: "CMS", }, + { + type: "autoAdminRouteDefinition", + key: "cms-domain-group", + icon: Public, + title: "도메인 그룹", + app: "cms", + resource: "domain-group", + }, { type: "autoAdminRouteDefinition", key: "cms-sitemap", From 1a5e20c4c6627de45750a2a36b27fc7e2c3a7701 Mon Sep 17 00:00:00 2001 From: MUsoftware Date: Sat, 9 May 2026 11:03:02 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20year=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EB=8C=80=EC=8B=A0=20domain=5Fgroup=20=ED=8C=8C?= =?UTF-8?q?=EB=9D=BC=EB=AF=B8=ED=84=B0=EB=A5=BC=20=EB=B0=9B=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/common/src/schemas/backendAdminAPI.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/common/src/schemas/backendAdminAPI.ts b/packages/common/src/schemas/backendAdminAPI.ts index 57d0c2d..379a12d 100644 --- a/packages/common/src/schemas/backendAdminAPI.ts +++ b/packages/common/src/schemas/backendAdminAPI.ts @@ -63,7 +63,7 @@ export type PageSectionSchema = { export type FlattenedSiteMapSchema = { id: string; - year: number; + domain_group: string; route_code: string; name_ko: string; name_en: string; @@ -76,7 +76,7 @@ export type FlattenedSiteMapSchema = { export type NestedSiteMapSchema = { id: string; - year: number; + domain_group: string; route_code: string; name_ko: string; name_en: string; From 010a2296838a4afaa03b76446cc1a8dff8f3019b Mon Sep 17 00:00:00 2001 From: MUsoftware Date: Sat, 9 May 2026 11:17:32 +0900 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20domain=20group=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?sitemap=20=ED=95=84=ED=84=B0=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/pages/sitemap/list.tsx | 99 ++++++++++++------- 1 file changed, 64 insertions(+), 35 deletions(-) diff --git a/apps/pyconkr-admin/src/components/pages/sitemap/list.tsx b/apps/pyconkr-admin/src/components/pages/sitemap/list.tsx index f16921e..b341c00 100644 --- a/apps/pyconkr-admin/src/components/pages/sitemap/list.tsx +++ b/apps/pyconkr-admin/src/components/pages/sitemap/list.tsx @@ -1,4 +1,10 @@ -import { useBackendAdminClient, useListQuery, useRemovePreparedMutation, useUpdatePreparedMutation } from "@frontend/common/src/hooks/useAdminAPI"; +import { + useBackendAdminClient, + useChoicesQuery, + useListQuery, + useRemovePreparedMutation, + useUpdatePreparedMutation, +} from "@frontend/common/src/hooks/useAdminAPI"; import { buildFlatSiteMap, buildNestedSiteMap } from "@frontend/common/src/utils"; import { Add, Delete, Edit, Save } from "@mui/icons-material"; import { @@ -9,8 +15,10 @@ import { DialogActions, DialogContent, DialogTitle, + FormControl, IconButton, IconButtonProps, + InputLabel, MenuItem, Select, Stack, @@ -97,11 +105,13 @@ type InnerSiteMapStateType = { const ModifyDetectionFields: (keyof FlatSiteMap)[] = ["order", "parent_sitemap"]; -const InnerSiteMapList: React.FC<{ year: number }> = ErrorBoundary.with( +type InnerSiteMapListProps = { domainGroupId: string; headerSlot: React.ReactNode }; + +const InnerSiteMapList: React.FC = ErrorBoundary.with( { fallback: ErrorFallback }, - Suspense.with({ fallback: }, ({ year }: { year: number }) => { + Suspense.with({ fallback: }, ({ domainGroupId, headerSlot }: InnerSiteMapListProps) => { const backendAdminAPIClient = useBackendAdminClient(); - const { data } = useListQuery(backendAdminAPIClient, "cms", "sitemap", { year: String(year) }); + const { data } = useListQuery(backendAdminAPIClient, "cms", "sitemap", { domain_group: domainGroupId }); const deleteMutation = useRemovePreparedMutation(backendAdminAPIClient, "cms", "sitemap"); const { mutateAsync: updateMutationAsync } = useUpdatePreparedMutation(backendAdminAPIClient, "cms", "sitemap"); @@ -126,7 +136,10 @@ const InnerSiteMapList: React.FC<{ year: number }> = ErrorBoundary.with( const disabled = deleteMutation.isPending; const editorId = state.editorSiteMapId === "add" ? undefined : state.editorSiteMapId; - const editorContext = state.parentSiteMapId ? { parent_sitemap: state.parentSiteMapId } : undefined; + const editorContext = { + domain_group: domainGroupId, + ...(state.parentSiteMapId ? { parent_sitemap: state.parentSiteMapId } : {}), + }; const resetFlatSiteMap = () => setState((ps) => ({ ...ps, flatSiteMap: data })); const applyChanges = () => { @@ -221,9 +234,12 @@ const InnerSiteMapList: React.FC<{ year: number }> = ErrorBoundary.with( - -