diff --git a/src/component/BuyProductModal.js b/src/component/BuyProductModal.js new file mode 100644 index 0000000..086bb97 --- /dev/null +++ b/src/component/BuyProductModal.js @@ -0,0 +1,66 @@ +import React from "react"; +import {Form, Input, message, Modal} from "antd"; +import {observer} from "mobx-react-lite"; +import {useStore} from "../utils/useStore"; + +export const BuyProductModal = observer(({initialData}) => { + const store = useStore(); + const [form] = Form.useForm(); + + const handleCancelBuyProduct = () => { + form.resetFields(); + store.transaction.visibleModalTransaction = false; + }; + + const handleSubmitBuyProduct = async (data) => { + try { + const response = await store.transaction.buyProduct({productCode: data}); + if (response.status === 200) { + message.success("Success Buy Product"); + } else { + message.error("Failed Buy Product"); + } + } catch (e) { + console.log(e, "apa errornya"); + message.error("Failed Buy Product"); + } + store.transaction.visibleModalTransaction = false; + form.resetFields(); + }; + + return ( +
+ { + form + .validateFields() + .then((values) => { + handleSubmitBuyProduct(values); + }) + .catch((info) => { + console.error("Validate Failed:", info); + }); + }} + > +
+ + + +
+
+
+ ); +}); diff --git a/src/pages/Transaction/Product.js b/src/pages/Transaction/Product.js index 10a3909..22ab026 100644 --- a/src/pages/Transaction/Product.js +++ b/src/pages/Transaction/Product.js @@ -1,7 +1,8 @@ import React, {useEffect, useState} from "react"; import {useStore} from "../../utils/useStore"; -import {Button, Card, Col, Input, Modal, Row, Select} from "antd"; +import {Button, Card, Col, Input, Row, Select} from "antd"; import {observer} from "mobx-react-lite"; +import {BuyProductModal} from "../../component/BuyProductModal"; const {Search} = Input; const {Option} = Select; @@ -11,6 +12,7 @@ export const Product = observer(() => { const [isLoading, setIsLoading] = useState(false); const [productData, setProductData] = useState([]); + const [data, setData] = useState({}); useEffect(() => { const init = async () => { @@ -45,10 +47,9 @@ export const Product = observer(() => { await store.transaction.getData(); } - const success = () => { - Modal.success({ - content: 'some messages...some messages...', - }); + const handleBuyProduct = (data) => { + setData(data); + store.transaction.visibleModalTransaction = true; } return ( @@ -61,10 +62,12 @@ export const Product = observer(() => {