diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-12-05 09:19:08 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-12-05 09:19:08 +0000 |
| commit | 718b9c5217eb435dcba07f8322591564d49e364a (patch) | |
| tree | 5ddac690aad82f7efc7705603525f0b8f389a86c | |
| parent | e467b3b7905a200b98daa3787565c08a309a6dda (diff) | |
(임수민) 준법 버튼 활성화 수정
| -rw-r--r-- | lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx b/lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx index 56857b8d..77e36bc7 100644 --- a/lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx +++ b/lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx @@ -36,7 +36,6 @@ interface RedFlagResolutionState { interface BasicContractDetailTableToolbarActionsProps { table: Table<BasicContractView> gtcData?: Record<number, { gtcDocumentId: number | null; hasComments: boolean }> - agreementCommentData?: Record<number, { hasComments: boolean; commentCount: number }> redFlagData?: Record<number, boolean> redFlagResolutionData?: Record<number, RedFlagResolutionState> isComplianceTemplate?: boolean @@ -45,7 +44,6 @@ interface BasicContractDetailTableToolbarActionsProps { export function BasicContractDetailTableToolbarActions({ table, gtcData = {}, - agreementCommentData = {}, redFlagData = {}, redFlagResolutionData = {}, isComplianceTemplate = false @@ -90,10 +88,10 @@ export function BasicContractDetailTableToolbarActions({ return true; }); - // 법무검토 요청 가능 여부: 항상 활성화 + // 법무검토 요청 가능 여부: 준법서약 템플릿이 아닐 때 항상 활성화 const canRequestLegalReview = !isComplianceTemplate; - // 준법문의 버튼 활성화 가능 여부: 항상 활성화 + // 준법문의 버튼 활성화 가능 여부: 준법서약 템플릿일 때 항상 활성화 const canRequestComplianceInquiry = isComplianceTemplate; // 필터링된 계약서들 계산 @@ -557,26 +555,32 @@ export function BasicContractDetailTableToolbarActions({ // 법무검토 요청 / 준법문의 const handleRequestLegalReview = async () => { if (isComplianceTemplate) { - // 준법문의: 요청일 기록 후 외부 URL 열기 + // 준법문의: 선택된 계약서가 있으면 요청일 기록 후 외부 URL 열기, 없으면 URL만 열기 const selectedContractIds = selectedRows.map(row => row.original.id) - try { - setLoading(true) - const result = await requestComplianceInquiryAction(selectedContractIds) - if (result.success) { - toast.success(result.message) - router.refresh() - window.open(complianceInquiryUrl, '_blank', 'noopener,noreferrer') - } else { - toast.error(result.message) + + if (selectedContractIds.length > 0) { + try { + setLoading(true) + const result = await requestComplianceInquiryAction(selectedContractIds) + if (result.success) { + toast.success(result.message) + router.refresh() + } else { + toast.error(result.message) + } + } catch (error) { + console.error('준법문의 요청 처리 실패:', error) + toast.error('준법문의 요청 중 오류가 발생했습니다.') + } finally { + setLoading(false) } - } catch (error) { - console.error('준법문의 요청 처리 실패:', error) - toast.error('준법문의 요청 중 오류가 발생했습니다.') - } finally { - setLoading(false) } + + // 선택된 계약서가 있든 없든 URL은 항상 열기 + window.open(complianceInquiryUrl, '_blank', 'noopener,noreferrer') return } + // 법무검토 요청: 선택된 행이 없어도 다이얼로그 열기 setLegalReviewDialog(true) } @@ -683,7 +687,7 @@ export function BasicContractDetailTableToolbarActions({ size="sm" onClick={handleRequestLegalReview} className="gap-2" - disabled={!canRequestComplianceInquiry || loading} + disabled={loading} title="준법문의 링크로 이동" > <FileText className="size-4" aria-hidden="true" /> @@ -697,7 +701,7 @@ export function BasicContractDetailTableToolbarActions({ size="sm" onClick={handleRequestLegalReview} className="gap-2" - disabled={!canRequestLegalReview || loading} + disabled={loading} title="법무검토 요청 링크 선택" > <FileText className="size-4" aria-hidden="true" /> |
