diff options
Diffstat (limited to 'components/common/selectors/wbs-code/wbs-code-single-selector.tsx')
| -rw-r--r-- | components/common/selectors/wbs-code/wbs-code-single-selector.tsx | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/components/common/selectors/wbs-code/wbs-code-single-selector.tsx b/components/common/selectors/wbs-code/wbs-code-single-selector.tsx index 34cbc975..77a32afe 100644 --- a/components/common/selectors/wbs-code/wbs-code-single-selector.tsx +++ b/components/common/selectors/wbs-code/wbs-code-single-selector.tsx @@ -75,13 +75,25 @@ export function WbsCodeSingleSelector({ // WBS 코드 선택 핸들러 const handleCodeSelect = useCallback((code: WbsCode) => { + // 이미 선택된 코드를 다시 선택하면 선택 해제 + const currentSelected = showConfirmButtons ? tempSelectedCode : selectedCode + if (currentSelected && currentSelected.WBS_ELMT === code.WBS_ELMT && currentSelected.PROJ_NO === code.PROJ_NO) { + if (showConfirmButtons) { + setTempSelectedCode(undefined) + } else { + onCodeSelect(undefined as any) + onOpenChange(false) + } + return + } + if (showConfirmButtons) { setTempSelectedCode(code) } else { onCodeSelect(code) onOpenChange(false) } - }, [onCodeSelect, onOpenChange, showConfirmButtons]) + }, [onCodeSelect, onOpenChange, showConfirmButtons, selectedCode, tempSelectedCode]) // 확인 버튼 핸들러 const handleConfirm = useCallback(() => { @@ -237,7 +249,24 @@ export function WbsCodeSingleSelector({ {/* 현재 선택된 WBS 코드 표시 */} {currentSelectedCode && ( <div className="p-3 bg-muted rounded-md"> - <div className="text-sm font-medium">선택된 WBS 코드:</div> + <div className="text-sm font-medium flex items-center justify-between"> + <span>선택된 WBS 코드:</span> + <Button + variant="ghost" + size="sm" + className="h-6 w-6 p-0 hover:bg-destructive hover:text-destructive-foreground" + onClick={() => { + if (showConfirmButtons) { + setTempSelectedCode(undefined) + } else { + onCodeSelect(undefined as any) + onOpenChange(false) + } + }} + > + <X className="h-4 w-4" /> + </Button> + </div> <div className="flex items-center gap-2 mt-1"> <span className="font-mono text-sm">[{currentSelectedCode.PROJ_NO}]</span> <span className="font-mono text-sm">{currentSelectedCode.WBS_ELMT}</span> |
