summaryrefslogtreecommitdiff
path: root/lib/pq/pq-criteria/pq-table-toolbar-actions.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-10-27 10:03:06 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-10-27 10:03:06 +0000
commita3525f8bdfcf849cc1716fab81cb8facadbe9a8e (patch)
tree0b5b534e92bcfe188d4906db7d16c37044262c2f /lib/pq/pq-criteria/pq-table-toolbar-actions.tsx
parente87b7b06d92dc7e7235ecda24c212169f30e82ec (diff)
(최겸) 구매 협력업체 관리(PQ/실사관리, 정기평가 협력업체 제출 상세 dialog 개발,
Diffstat (limited to 'lib/pq/pq-criteria/pq-table-toolbar-actions.tsx')
-rw-r--r--lib/pq/pq-criteria/pq-table-toolbar-actions.tsx48
1 files changed, 35 insertions, 13 deletions
diff --git a/lib/pq/pq-criteria/pq-table-toolbar-actions.tsx b/lib/pq/pq-criteria/pq-table-toolbar-actions.tsx
index f168b83d..cdc4f813 100644
--- a/lib/pq/pq-criteria/pq-table-toolbar-actions.tsx
+++ b/lib/pq/pq-criteria/pq-table-toolbar-actions.tsx
@@ -17,37 +17,59 @@ import { type Table } from "@tanstack/react-table"
import { DeletePqsDialog } from "./delete-pqs-dialog"
import { AddPqDialog } from "./add-pq-dialog"
import { PqCriterias } from "@/db/schema/pq"
+import { toast } from "sonner"
// import { ImportPqButton } from "./import-pq-button"
// import { exportPqTemplate } from "./pq-excel-template"
interface PqTableToolbarActionsProps {
table: Table<PqCriterias>
pqListId: number
+ pqListInfo: Awaited<ReturnType<typeof import("../service").getPQListInfo>>
}
export function PqTableToolbarActions({
table,
- pqListId
+ pqListId,
+ pqListInfo
}: PqTableToolbarActionsProps) {
- // const [refreshKey, setRefreshKey] = React.useState(0)
+ // PQ 리스트가 ACTIVE 상태인지 확인
+ const isActive = pqListInfo.success && pqListInfo.data.status === "ACTIVE";
- // // Import 성공 후 테이블 갱신
- // const handleImportSuccess = () => {
- // setRefreshKey(prev => prev + 1)
- // }
+ // ACTIVE 상태일 때 기능 제한
+ const handleRestrictedAction = () => {
+ toast.error("활성화된 PQ 목록은 수정할 수 없습니다. 먼저 PQ 목록을 비활성화해주세요.");
+ };
return (
<div className="flex items-center gap-2">
{table.getFilteredSelectedRowModel().rows.length > 0 ? (
- <DeletePqsDialog
- pqs={table
- .getFilteredSelectedRowModel()
- .rows.map((row) => row.original)}
- onSuccess={() => table.toggleAllRowsSelected(false)}
- />
+ isActive ? (
+ <button
+ onClick={handleRestrictedAction}
+ className="inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 px-3 text-destructive hover:text-destructive"
+ >
+ PQ 항목 삭제
+ </button>
+ ) : (
+ <DeletePqsDialog
+ pqs={table
+ .getFilteredSelectedRowModel()
+ .rows.map((row) => row.original)}
+ onSuccess={() => table.toggleAllRowsSelected(false)}
+ />
+ )
) : null}
- <AddPqDialog pqListId={pqListId} />
+ {isActive ? (
+ <button
+ onClick={handleRestrictedAction}
+ className="inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-9 px-3"
+ >
+ PQ 항목 추가
+ </button>
+ ) : (
+ <AddPqDialog pqListId={pqListId} />
+ )}
{/* Import 버튼 */}
{/* <ImportPqButton