summaryrefslogtreecommitdiff
path: root/lib/material/vendor-material/simple-vendor-materials-wrapper.tsx
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-09-02 08:44:17 +0000
committerjoonhoekim <26rote@gmail.com>2025-09-02 08:44:17 +0000
commit8da223a416ec7d2be5743f312ed1d8c6d64949e2 (patch)
tree6333679b326e3508913774f3d5afaabca1f4f198 /lib/material/vendor-material/simple-vendor-materials-wrapper.tsx
parent6eb06a925811cfefb34b6c286f6bdfe2f214ac2b (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.tsx48
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}
+ />
+ );
+}