[as] refactor: 코드관리 -> 공종코드관리/회계코드관리 분리

This commit is contained in:
2026-06-04 12:00:47 +09:00
parent 2a8c2ae542
commit d2d5502f8d
13 changed files with 72 additions and 95 deletions
@@ -0,0 +1 @@
export { AcntgCodeManagementPage as default } from "@/pages/acntg-code-management";
@@ -0,0 +1 @@
export { CnstpCodeManagementPage as default } from "@/pages/cnstp-code-management";
@@ -1 +0,0 @@
export { CodeManagementPage as default } from "@/pages/code-management";
@@ -0,0 +1 @@
export { AcntgCodeManagementPage } from "./ui/acntg-code-management-page";
@@ -20,13 +20,15 @@ import { createAcntgSeColumns } from "../model/acntg-se-table-columns";
import { AcntgSeFormDialog, type AcntgSeFormValues } from "./acntg-se-form-dialog";
interface AcntgSeSectionProps {
pagination: PaginationState;
onPaginationChange: (pagination: PaginationState) => void;
}
const DEFAULT_PAGE_INDEX = 0;
const DEFAULT_PAGE_SIZE = 10;
function AcntgSeSection({ pagination, onPaginationChange }: AcntgSeSectionProps) {
function AcntgCodeManagementPage() {
const { confirm } = useConfirm();
const [pagination, setPagination] = useState<PaginationState>({
pageIndex: DEFAULT_PAGE_INDEX,
pageSize: DEFAULT_PAGE_SIZE,
});
const [dialogMode, setDialogMode] = useState<"create" | "edit" | null>(null);
const [editingCd, setEditingCd] = useState<string | null>(null);
@@ -67,7 +69,7 @@ function AcntgSeSection({ pagination, onPaginationChange }: AcntgSeSectionProps)
state: { pagination },
onPaginationChange: (updater) => {
const next = typeof updater === "function" ? updater(pagination) : updater;
onPaginationChange(next);
setPagination(next);
},
getCoreRowModel: getCoreRowModel(),
manualPagination: true,
@@ -114,31 +116,33 @@ function AcntgSeSection({ pagination, onPaginationChange }: AcntgSeSectionProps)
};
return (
<section className="card card-border mx-0 bg-background pb-6 pt-0">
<div className="card-header flex items-center justify-between">
<h3 className="text-2xl font-semibold">회계코드 관리</h3>
<Button type="button" onClick={handleOpenCreate}>
등록
</Button>
</div>
{tableComponent}
{dialogMode ? (
<AcntgSeFormDialog
mode={dialogMode}
open={Boolean(dialogMode)}
acntgSeCd={editingCd}
onOpenChange={(open) => {
if (!open) {
setDialogMode(null);
setEditingCd(null);
}
}}
isSubmitting={saveMutation.isPending || updateMutation.isPending}
onSubmit={handleFormSubmit}
/>
) : null}
</section>
<div className="space-y-6 px-[1.8rem] pb-6">
<section className="card card-border mx-0 bg-background pb-6 pt-0">
<div className="card-header flex items-center justify-between">
<h3 className="text-2xl font-semibold">회계코드 관리</h3>
<Button type="button" onClick={handleOpenCreate}>
등록
</Button>
</div>
{tableComponent}
{dialogMode ? (
<AcntgSeFormDialog
mode={dialogMode}
open={Boolean(dialogMode)}
acntgSeCd={editingCd}
onOpenChange={(open) => {
if (!open) {
setDialogMode(null);
setEditingCd(null);
}
}}
isSubmitting={saveMutation.isPending || updateMutation.isPending}
onSubmit={handleFormSubmit}
/>
) : null}
</section>
</div>
);
}
export { AcntgSeSection };
export { AcntgCodeManagementPage };
@@ -0,0 +1 @@
export { CnstpCodeManagementPage } from "./ui/cnstp-code-management-page";
@@ -23,13 +23,12 @@ import { CnstpSeFormDialog, type CnstpSeFormValues } from "./cnstp-se-form-dialo
const DEFAULT_PAGE_INDEX = 0;
const DEFAULT_PAGE_SIZE = 10;
interface CnstpSeSectionProps {
pagination: PaginationState;
onPaginationChange: (pagination: PaginationState) => void;
}
function CnstpSeSection({ pagination, onPaginationChange }: CnstpSeSectionProps) {
function CnstpCodeManagementPage() {
const { confirm } = useConfirm();
const [pagination, setPagination] = useState<PaginationState>({
pageIndex: DEFAULT_PAGE_INDEX,
pageSize: DEFAULT_PAGE_SIZE,
});
const [dialogMode, setDialogMode] = useState<"create" | "edit" | null>(null);
const [editingCd, setEditingCd] = useState<string | null>(null);
@@ -70,7 +69,7 @@ function CnstpSeSection({ pagination, onPaginationChange }: CnstpSeSectionProps)
state: { pagination },
onPaginationChange: (updater) => {
const next = typeof updater === "function" ? updater(pagination) : updater;
onPaginationChange(next);
setPagination(next);
},
getCoreRowModel: getCoreRowModel(),
manualPagination: true,
@@ -117,31 +116,33 @@ function CnstpSeSection({ pagination, onPaginationChange }: CnstpSeSectionProps)
};
return (
<section className="card card-border mx-0 bg-background pb-6 pt-0">
<div className="card-header flex items-center justify-between">
<h3 className="text-2xl font-semibold">공종코드 관리</h3>
<Button type="button" onClick={handleOpenCreate}>
등록
</Button>
</div>
{tableComponent}
{dialogMode ? (
<CnstpSeFormDialog
mode={dialogMode}
open={Boolean(dialogMode)}
cnstpSeCd={editingCd}
onOpenChange={(open) => {
if (!open) {
setDialogMode(null);
setEditingCd(null);
}
}}
isSubmitting={saveMutation.isPending || updateMutation.isPending}
onSubmit={handleFormSubmit}
/>
) : null}
</section>
<div className="space-y-6 px-[1.8rem] pb-6">
<section className="card card-border mx-0 bg-background pb-6 pt-0">
<div className="card-header flex items-center justify-between">
<h3 className="text-2xl font-semibold">공종코드 관리</h3>
<Button type="button" onClick={handleOpenCreate}>
등록
</Button>
</div>
{tableComponent}
{dialogMode ? (
<CnstpSeFormDialog
mode={dialogMode}
open={Boolean(dialogMode)}
cnstpSeCd={editingCd}
onOpenChange={(open) => {
if (!open) {
setDialogMode(null);
setEditingCd(null);
}
}}
isSubmitting={saveMutation.isPending || updateMutation.isPending}
onSubmit={handleFormSubmit}
/>
) : null}
</section>
</div>
);
}
export { CnstpSeSection, DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE };
export { CnstpCodeManagementPage };
@@ -1 +0,0 @@
export { CodeManagementPage } from "./ui/code-management-page";
@@ -1,30 +0,0 @@
"use client";
import { useState } from "react";
import type { PaginationState } from "@tanstack/react-table";
import { AcntgSeSection } from "./acntg-se-section";
import { CnstpSeSection, DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from "./cnstp-se-section";
function CodeManagementPage() {
const [cnstpPagination, setCnstpPagination] = useState<PaginationState>({
pageIndex: DEFAULT_PAGE_INDEX,
pageSize: DEFAULT_PAGE_SIZE,
});
const [acntgPagination, setAcntgPagination] = useState<PaginationState>({
pageIndex: DEFAULT_PAGE_INDEX,
pageSize: DEFAULT_PAGE_SIZE,
});
return (
<div className="space-y-6 px-[1.8rem] pb-6">
<div className="grid grid-cols-1 gap-4 lg:grid-cols-2">
<CnstpSeSection pagination={cnstpPagination} onPaginationChange={setCnstpPagination} />
<AcntgSeSection pagination={acntgPagination} onPaginationChange={setAcntgPagination} />
</div>
</div>
);
}
export { CodeManagementPage };