feat: [품질관리] 수주선택 모달 발주처별 비활성화 제약 추가

- SearchableSelectionModal에 isItemDisabled 콜백 prop 추가 (공통)
  - renderItem에 isDisabled 3번째 파라미터 전달 (하위호환)
  - disabled 아이템 클릭 차단 + opacity/cursor 스타일 적용
  - 전체선택 시 disabled 아이템 제외
- OrderSelectModal: 선택된 발주처와 다른 발주처의 수주 비활성화
  - 이미 선택된 아이템은 해제 가능 (disabled 예외)
This commit is contained in:
2026-03-05 23:15:17 +09:00
parent 899493a74d
commit fe930b5831
3 changed files with 54 additions and 15 deletions

View File

@@ -70,6 +70,11 @@ export function OrderSelectModal({
onSelect={onSelect}
confirmLabel="선택"
allowSelectAll
isItemDisabled={(item, selectedItems) => {
if (selectedItems.length === 0) return false;
const selectedClient = selectedItems[0].clientName;
return item.clientName !== selectedClient;
}}
listWrapper={(children, selectState) => (
<Table>
<TableHeader>
@@ -95,10 +100,10 @@ export function OrderSelectModal({
</TableBody>
</Table>
)}
renderItem={(item, isSelected) => (
<TableRow className="cursor-pointer hover:bg-muted/50">
renderItem={(item, isSelected, isDisabled) => (
<TableRow className={isDisabled ? '' : 'hover:bg-muted/50'}>
<TableCell onClick={(e) => e.stopPropagation()}>
<Checkbox checked={isSelected} />
<Checkbox checked={isSelected} disabled={isDisabled} />
</TableCell>
<TableCell>{item.orderNumber}</TableCell>
<TableCell>{item.siteName}</TableCell>