summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-12-05 09:19:08 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-12-05 09:19:08 +0000
commit718b9c5217eb435dcba07f8322591564d49e364a (patch)
tree5ddac690aad82f7efc7705603525f0b8f389a86c
parente467b3b7905a200b98daa3787565c08a309a6dda (diff)
(임수민) 준법 버튼 활성화 수정
-rw-r--r--lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx46
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" />