diff options
Diffstat (limited to 'lib/basic-contract/status-detail/basic-contracts-detail-table.tsx')
| -rw-r--r-- | lib/basic-contract/status-detail/basic-contracts-detail-table.tsx | 46 |
1 files changed, 41 insertions, 5 deletions
diff --git a/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx b/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx index 2d747c85..010b4713 100644 --- a/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx +++ b/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx @@ -11,6 +11,7 @@ import type { import { getDetailColumns } from "./basic-contracts-detail-columns" import { getBasicContractsByTemplateId } from "@/lib/basic-contract/service" import { checkGTCCommentsForContracts } from "@/lib/basic-contract/actions/check-gtc-comments" +import { checkAgreementCommentsForContracts } from "@/lib/basic-contract/agreement-comments/actions" import { checkRedFlagsForContracts } from "@/lib/basic-contract/actions/check-red-flags" import { checkRedFlagResolutionForContracts } from "@/lib/basic-contract/actions/check-red-flag-resolution" import { BasicContractView } from "@/db/schema" @@ -35,20 +36,27 @@ export function BasicContractsDetailTable({ templateId, promises }: BasicContrac const [gtcData, setGtcData] = React.useState<Record<number, { gtcDocumentId: number | null; hasComments: boolean }>>({}) const [isLoadingGtcData, setIsLoadingGtcData] = React.useState(false) + // 협의 코멘트 상태 (준법 포함) 관리 + const [agreementCommentData, setAgreementCommentData] = React.useState<Record<number, { hasComments: boolean; commentCount: number }>>({}) + const [isLoadingAgreementCommentData, setIsLoadingAgreementCommentData] = React.useState(false) + // Red Flag data 상태 관리 const [redFlagData, setRedFlagData] = React.useState<Record<number, boolean>>({}) const [isLoadingRedFlagData, setIsLoadingRedFlagData] = React.useState(false) +type RedFlagResolutionState = { + resolved: boolean + resolvedAt: Date | null + pendingApprovalId: string | null +} + // Red Flag 해제 data 상태 관리 - const [redFlagResolutionData, setRedFlagResolutionData] = React.useState<Record<number, { resolved: boolean; resolvedAt: Date | null }>>({}) + const [redFlagResolutionData, setRedFlagResolutionData] = React.useState<Record<number, RedFlagResolutionState>>({}) const [isLoadingRedFlagResolutionData, setIsLoadingRedFlagResolutionData] = React.useState(false) const [{ data, pageCount }] = React.use(promises) const router = useRouter() - console.log(gtcData, "gtcData") - console.log(data, "data") - // GTC data 로딩 React.useEffect(() => { const loadGtcData = async () => { @@ -76,6 +84,32 @@ export function BasicContractsDetailTable({ templateId, promises }: BasicContrac loadGtcData(); }, [data]); + // 협의 코멘트 상태 로딩 (준법 포함) + React.useEffect(() => { + const loadAgreementComments = async () => { + if (!data || data.length === 0) return; + + const hasNegotiationTemplates = data.some(contract => + contract.templateName?.includes('준법') || contract.templateName?.includes('GTC') + ); + + if (!hasNegotiationTemplates) return; + + setIsLoadingAgreementCommentData(true); + try { + const results = await checkAgreementCommentsForContracts(data); + setAgreementCommentData(results); + } catch (error) { + console.error('협의 코멘트 정보를 불러오는데 실패했습니다:', error); + toast.error("협의 코멘트 정보를 불러오는데 실패했습니다."); + } finally { + setIsLoadingAgreementCommentData(false); + } + }; + + loadAgreementComments(); + }, [data]); + // Red Flag data 로딩 React.useEffect(() => { const loadRedFlagData = async () => { @@ -141,6 +175,8 @@ export function BasicContractsDetailTable({ templateId, promises }: BasicContrac setRowAction, gtcData, isLoadingGtcData, + agreementCommentData, + isLoadingAgreementCommentData, redFlagData, isLoadingRedFlagData, redFlagResolutionData, @@ -148,7 +184,7 @@ export function BasicContractsDetailTable({ templateId, promises }: BasicContrac isComplianceTemplate, router }), - [setRowAction, gtcData, isLoadingGtcData, redFlagData, isLoadingRedFlagData, redFlagResolutionData, isLoadingRedFlagResolutionData, isComplianceTemplate, router] + [setRowAction, gtcData, isLoadingGtcData, agreementCommentData, isLoadingAgreementCommentData, redFlagData, isLoadingRedFlagData, redFlagResolutionData, isLoadingRedFlagResolutionData, isComplianceTemplate, router] ) const advancedFilterFields: DataTableAdvancedFilterField<BasicContractView>[] = [ |
