diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-24 10:47:34 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-24 10:47:34 +0000 |
| commit | 8238c0c0ed6fd182d33f3437a22da1d80cfa928f (patch) | |
| tree | 32982329788c38e515866de2338584eede8a5924 /components/common/legal/sslvw-pur-inq-req-dialog.tsx | |
| parent | d79f56ae5a9e5f72781f78fe0399018cfac44081 (diff) | |
(임수민) 법무검토 요청 데이터 조회 수정
Diffstat (limited to 'components/common/legal/sslvw-pur-inq-req-dialog.tsx')
| -rw-r--r-- | components/common/legal/sslvw-pur-inq-req-dialog.tsx | 41 |
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> |
