summaryrefslogtreecommitdiff
path: root/components/common
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-11-24 20:15:09 +0900
committerjoonhoekim <26rote@gmail.com>2025-11-24 20:15:09 +0900
commit775997501ef36bf07d7f1f2e1d4abe7c97505e96 (patch)
tree8931f439f34c17033f775f560428c38080245809 /components/common
parentc54a2445b6285d06c0ce3afa1cd3aa6aecf6de94 (diff)
parent68160eba15a2c8408329b6e14b94d5e44fa7e3ab (diff)
Merge branch 'dujinkim' of https://github.com/DTS-Development/SHI_EVCP into dujinkim
Diffstat (limited to 'components/common')
-rw-r--r--components/common/legal/sslvw-pur-inq-req-dialog.tsx41
1 files changed, 35 insertions, 6 deletions
diff --git a/components/common/legal/sslvw-pur-inq-req-dialog.tsx b/components/common/legal/sslvw-pur-inq-req-dialog.tsx
index 42f987fb..7c2ec349 100644
--- a/components/common/legal/sslvw-pur-inq-req-dialog.tsx
+++ b/components/common/legal/sslvw-pur-inq-req-dialog.tsx
@@ -38,9 +38,17 @@ import { SSLVWPurInqReq } from "@/lib/basic-contract/sslvw-service"
interface SSLVWPurInqReqDialogProps {
onConfirm?: (selectedRows: SSLVWPurInqReq[]) => void
+ requireSingleSelection?: boolean
+ triggerDisabled?: boolean
+ triggerTitle?: string
}
-export function SSLVWPurInqReqDialog({ onConfirm }: SSLVWPurInqReqDialogProps) {
+export function SSLVWPurInqReqDialog({
+ onConfirm,
+ requireSingleSelection = false,
+ triggerDisabled = false,
+ triggerTitle,
+}: SSLVWPurInqReqDialogProps) {
const [open, setOpen] = React.useState(false)
const [isLoading, setIsLoading] = React.useState(false)
const [data, setData] = React.useState<SSLVWPurInqReq[]>([])
@@ -144,9 +152,18 @@ export function SSLVWPurInqReqDialog({ onConfirm }: SSLVWPurInqReqDialogProps) {
return
}
+ if (requireSingleSelection && selectedRows.length !== 1) {
+ toast.error("하나의 행만 선택해주세요.")
+ return
+ }
+
if (onConfirm) {
onConfirm(selectedRows)
- toast.success(`${selectedRows.length}개의 행을 선택했습니다.`)
+ toast.success(
+ requireSingleSelection
+ ? "선택한 행으로 법무 상태를 동기화합니다."
+ : `${selectedRows.length}개의 행을 선택했습니다.`
+ )
} else {
// 임시로 선택된 데이터 콘솔 출력
console.log("선택된 행들:", selectedRows)
@@ -159,7 +176,12 @@ export function SSLVWPurInqReqDialog({ onConfirm }: SSLVWPurInqReqDialogProps) {
return (
<Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger asChild>
- <Button variant="outline" size="sm">
+ <Button
+ variant="outline"
+ size="sm"
+ disabled={triggerDisabled}
+ title={triggerTitle}
+ >
<Database className="mr-2 size-4" aria-hidden="true" />
법무검토 요청 데이터 조회
</Button>
@@ -314,7 +336,7 @@ export function SSLVWPurInqReqDialog({ onConfirm }: SSLVWPurInqReqDialogProps) {
<Button variant="outline" onClick={() => setOpen(false)}>
닫기
</Button>
- {/* <Button onClick={loadData} disabled={isLoading} variant="outline">
+ <Button onClick={loadData} disabled={isLoading} variant="outline">
{isLoading ? (
<>
<Loader className="mr-2 size-4 animate-spin" />
@@ -323,8 +345,15 @@ export function SSLVWPurInqReqDialog({ onConfirm }: SSLVWPurInqReqDialogProps) {
) : (
"새로고침"
)}
- </Button> */}
- <Button onClick={handleConfirm} disabled={selectedRows.length === 0}>
+ </Button>
+ <Button
+ onClick={handleConfirm}
+ disabled={
+ requireSingleSelection
+ ? selectedRows.length !== 1
+ : selectedRows.length === 0
+ }
+ >
<Check className="mr-2 size-4" />
확인 ({selectedRows.length})
</Button>