From 34629edc409f79d99df0102ce7a88cf1604f0ceb Mon Sep 17 00:00:00 2001 From: "ajat91.sudrajat" Date: Thu, 3 Feb 2022 13:28:50 +0700 Subject: [PATCH] Perbaikan Tampilan Mobile Menu Transaksi --- src/pages/Transaction/Transaction.js | 303 +++++++++++++++++++++++++-- src/store/transaction.js | 2 +- 2 files changed, 289 insertions(+), 16 deletions(-) diff --git a/src/pages/Transaction/Transaction.js b/src/pages/Transaction/Transaction.js index cb902a5..a1f9567 100644 --- a/src/pages/Transaction/Transaction.js +++ b/src/pages/Transaction/Transaction.js @@ -10,6 +10,8 @@ import { Modal, Row, DatePicker, + Form, + Input, } from "antd"; import { BreadcumbComponent } from "../../component/BreadcumbComponent"; import { Product } from "./Product"; @@ -24,12 +26,16 @@ export const Transaction = observer(() => { const { Title } = Typography; const { Option } = Select; const modalLoader = useContext(ModalLoaderContext); + const [form] = Form.useForm(); + const [visibleModalBuy, setVisibleModalBuy] = useState(false); + const [barang, setBarang] = useState({}); useEffect(() => { const init = async () => { try { modalLoader.setLoading(true); await store.transaction.getDataCategories(); + await store.transaction.getDataSubCategories(); modalLoader.setLoading(false); } catch (e) { modalLoader.setLoading(false); @@ -44,22 +50,96 @@ export const Transaction = observer(() => { init(); }, []); - const handleChangeTabs = async (key) => { + const routeData = [ + { + route: LINKS.TRANSACTION, + name: "Transaksi", + }, + ]; + + + const handleChangeTabs = async (item) => { modalLoader.setLoading(true); store.transaction.dataSubCategories = []; store.transaction.data = []; store.transaction.filterSubCategory = null; - store.transaction.filterCategory = key; + store.transaction.filterCategory = item; await store.transaction.getDataSubCategories(); modalLoader.setLoading(false); }; - const routeData = [ - { - route: LINKS.TRANSACTION, - name: "Transaksi" - }, - ]; + const handleChangeSubcategory = async (item) => { + store.transaction.filterSubCategory = item; + modalLoader.setLoading(true); + await store.transaction.getData(); + modalLoader.setLoading(false); + }; + + + const handleBuyProduct = async (data, productCode) => { + modalLoader.setLoading(true); + try { + const response = await store.transaction.buyProd({ + ...data, + productCode: productCode, + }); + + if (response.status === 201) { + message.success(response?.body?.message || "Berhasil Beli Produk"); + } else { + message.error(response?.body?.error || "Gagal Beli Produk", 3); + } + } catch (e) { + console.log("testingan"); + console.log(e.response, "testingan"); + console.log(e.result, "testingan1"); + if (e.response?.body?.error) { + message.error(e.response.body.error); + setVisibleModalBuy(false); + modalLoader.setLoading(false); + return; + } + console.log(e, "apa errornya"); + message.error("Gagal Beli Product"); + } + setVisibleModalBuy(false); + modalLoader.setLoading(false); + }; + + const handleBuyStag = async (data, productCode) => { + modalLoader.setLoading(true); + try { + const response = await store.transaction.buyProduct({ + ...data, + productCode: productCode, + }); + if (response.status === 201) { + message.success(response?.body?.message || "Berhasil Beli Produk"); + } else { + message.error(response?.body?.error || "Gagal Beli Produk", 3); + } + } catch (e) { + console.log("testingan"); + console.log(e.response, "testingan"); + console.log(e.result, "testingan1"); + if (e.response?.body?.error) { + message.error(e.response.body.error); + setVisibleModalBuy(false); + modalLoader.setLoading(false); + return; + } + console.log(e, "apa errornya"); + message.error("Gagal Beli Product"); + } + // setDataProd(false); + // setDataStag(false); + setVisibleModalBuy(false); + modalLoader.setLoading(false); + }; + const handleCancel = () => { + form.resetFields(); + setVisibleModalBuy(false); + }; return (
@@ -75,13 +155,206 @@ export const Transaction = observer(() => { Filter */} - - {store.transaction.dataCategories.map((item, index) => ( - - - - ))} - + {store.ui.mediaQuery.isDesktop && ( + + {store.transaction.dataCategories.map((item, index) => ( + + + + ))} + + )} + + {store.ui.mediaQuery.isMobile && ( +
+ + + Kategori + + + + + + + + + + + Sub Category + + + + + + + + + + Produk & Nominal + + + {/* */} + + + {store.transaction.data.length != 0 && ( + + {store.transaction.data.map((item, index) => ( + + { + setVisibleModalBuy(true); + setBarang(item); + }} + hoverable + style={{ + cursor: "pointer", + marginLeft: 10, + borderColor: "salmon", + height: 100, + marginBottom: 10, + }} + > + + {item?.product_name} + +
+ + {new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(item?.price)} + +
+ + ))} +
+ )} + { + form.resetFields(); + setVisibleModalBuy(false); + }} + // footer={footerLayoutFilter} + footer={[ + , + , + , + ]} + > +
+ + + +
+
+
+ )}
); diff --git a/src/store/transaction.js b/src/store/transaction.js index 145b6c8..4c481de 100644 --- a/src/store/transaction.js +++ b/src/store/transaction.js @@ -23,7 +23,7 @@ export class Transaction { pageSizeSubCategories = 10; dataSubCategories = []; total_dataSubCategories = 0; - filterSubCategory = null; + //filterSubCategory = null; pageHistoryTransaction = 0; pageSizeHistoryTransaction = 10;