diff options
| author | joonhoekim <26rote@gmail.com> | 2025-09-02 08:44:17 +0000 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-09-02 08:44:17 +0000 |
| commit | 8da223a416ec7d2be5743f312ed1d8c6d64949e2 (patch) | |
| tree | 6333679b326e3508913774f3d5afaabca1f4f198 /lib/material/vendor-material/simple-vendor-materials-wrapper.tsx | |
| parent | 6eb06a925811cfefb34b6c286f6bdfe2f214ac2b (diff) | |
(김준회) 협력업체 관리 메뉴에서, 공급품목(패키지) 제거, MDG 자재마스터 기반 벤더별 공급품목 메뉴 구현 (정의서+강미경프로 요구대로 구현)
Diffstat (limited to 'lib/material/vendor-material/simple-vendor-materials-wrapper.tsx')
| -rw-r--r-- | lib/material/vendor-material/simple-vendor-materials-wrapper.tsx | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/lib/material/vendor-material/simple-vendor-materials-wrapper.tsx b/lib/material/vendor-material/simple-vendor-materials-wrapper.tsx new file mode 100644 index 00000000..7c0c7068 --- /dev/null +++ b/lib/material/vendor-material/simple-vendor-materials-wrapper.tsx @@ -0,0 +1,48 @@ +"use client"; + +import * as React from "react"; +import { useState, useCallback } from "react"; +import { SimpleVendorMaterials } from "./simple-vendor-materials"; +import { VendorPossibleMaterial, getAllConfirmedMaterials, getAllVendorInputMaterials } from "../vendor-possible-material-service"; + +interface SimpleVendorMaterialsWrapperProps { + vendorId: number; + initialConfirmedMaterials: VendorPossibleMaterial[]; + initialVendorInputMaterials: VendorPossibleMaterial[]; +} + +export function SimpleVendorMaterialsWrapper({ + vendorId, + initialConfirmedMaterials, + initialVendorInputMaterials, +}: SimpleVendorMaterialsWrapperProps) { + const [confirmedMaterials, setConfirmedMaterials] = useState(initialConfirmedMaterials); + const [vendorInputMaterials, setVendorInputMaterials] = useState(initialVendorInputMaterials); + const [isRefreshing, setIsRefreshing] = useState(false); + + const handleDataRefresh = useCallback(async () => { + setIsRefreshing(true); + try { + const [newConfirmedMaterials, newVendorInputMaterials] = await Promise.all([ + getAllConfirmedMaterials(vendorId), + getAllVendorInputMaterials(vendorId) + ]); + + setConfirmedMaterials(newConfirmedMaterials); + setVendorInputMaterials(newVendorInputMaterials); + } catch (error) { + console.error("데이터 새로고침 실패:", error); + } finally { + setIsRefreshing(false); + } + }, [vendorId]); + + return ( + <SimpleVendorMaterials + vendorId={vendorId} + confirmedMaterials={confirmedMaterials} + vendorInputMaterials={vendorInputMaterials} + onDataRefresh={handleDataRefresh} + /> + ); +} |
