summaryrefslogtreecommitdiff
path: root/components/common/selectors/wbs-code/wbs-code-single-selector.tsx
diff options
context:
space:
mode:
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.tsx33
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>