From a16f42145b7bb3739a5f346665505beb11ceefd9 Mon Sep 17 00:00:00 2001 From: caturbgs Date: Thu, 23 Dec 2021 12:06:38 +0700 Subject: [PATCH 1/4] fix: detail product --- src/pages/Membership/DetailUser.js | 43 +++++++++++++----------------- src/pages/Membership/Membership.js | 25 ++++++++--------- src/store/transaction.js | 11 ++++---- 3 files changed, 34 insertions(+), 45 deletions(-) diff --git a/src/pages/Membership/DetailUser.js b/src/pages/Membership/DetailUser.js index deffce8..d98c6d4 100644 --- a/src/pages/Membership/DetailUser.js +++ b/src/pages/Membership/DetailUser.js @@ -1,37 +1,26 @@ -import React, { useContext, useEffect, useState } from "react"; -import { - Button, - Card, - Col, - Row, - Table, - Typography, - Tag, - Space, - message, -} from "antd"; -import { BreadcumbComponent } from "../../component/BreadcumbComponent"; -import { LINKS } from "../../routes/app"; -import { useStore } from "../../utils/useStore"; -import { observer } from "mobx-react-lite"; -import { FilterOutlined, DownloadOutlined } from "@ant-design/icons"; -import { format, parseISO } from "date-fns"; -import { ModalLoaderContext } from "../../utils/modal"; -import { useParams } from "react-router-dom"; +import React, {useContext, useEffect, useState} from "react"; +import {Button, Card, Col, Row, Table, Typography,} from "antd"; +import {BreadcumbComponent} from "../../component/BreadcumbComponent"; +import {LINKS} from "../../routes/app"; +import {useStore} from "../../utils/useStore"; +import {observer} from "mobx-react-lite"; +import {FilterOutlined} from "@ant-design/icons"; +import {format, parseISO} from "date-fns"; +import {ModalLoaderContext} from "../../utils/modal"; +import {useParams} from "react-router-dom"; -const { Title, Text } = Typography; +const {Title, Text} = Typography; export const DetailUser = observer(() => { const store = useStore(); const modalLoader = useContext(ModalLoaderContext); - const { id } = useParams(); + const {id} = useParams(); const [visibleModal, setVisibleModal] = useState(false); const [isVisibleTopUpModal, setIsVisibleTopUpModal] = useState(false); const [destination, setDestination] = useState(null); const [initialData, setInitialData] = useState({}); const [confirmLoading, setConfirmLoading] = useState(false); - //console.log(id) useEffect(() => { (async () => { modalLoader.setLoading(true); @@ -69,8 +58,12 @@ export const DetailUser = observer(() => { name: "Home", }, { - route: LINKS.USER_DETAIL, - name: Detail User, + route: "/app/membership", + name: Membership, + }, + { + route: LINKS.USER_DETAIL.replace(":id", id), + name: Detail User, }, ]; return ( diff --git a/src/pages/Membership/Membership.js b/src/pages/Membership/Membership.js index 83de9c3..007210a 100644 --- a/src/pages/Membership/Membership.js +++ b/src/pages/Membership/Membership.js @@ -1,4 +1,4 @@ -import React, { useContext, useEffect, useState } from "react"; +import React, {useContext, useEffect, useState} from "react"; import { Button, Card, @@ -14,19 +14,18 @@ import { Select, Space, Table, - Tag, } from "antd"; -import { useStore } from "../../utils/useStore"; -import { observer } from "mobx-react-lite"; -import { DownloadOutlined, PlusSquareOutlined } from "@ant-design/icons"; -import { MembershipModal } from "./MembershipModal"; -import { BreadcumbComponent } from "../../component/BreadcumbComponent"; -import { LINKS } from "../../routes/app"; -import { useHistory } from "react-router-dom"; -import { ModalLoaderContext } from "../../utils/modal"; +import {useStore} from "../../utils/useStore"; +import {observer} from "mobx-react-lite"; +import {DownloadOutlined, PlusSquareOutlined} from "@ant-design/icons"; +import {MembershipModal} from "./MembershipModal"; +import {BreadcumbComponent} from "../../component/BreadcumbComponent"; +import {LINKS} from "../../routes/app"; +import {useHistory} from "react-router-dom"; +import {ModalLoaderContext} from "../../utils/modal"; -const { Search } = Input; -const { Option } = Select; +const {Search} = Input; +const {Option} = Select; export const Membership = observer(() => { const history = useHistory(); const [form] = Form.useForm(); @@ -221,9 +220,7 @@ export const Membership = observer(() => { - - -
- {/* + + + {store.authentication.userData.role !== "Admin" && ( +
+ + + + + +
+ {/* { }} /> */} -
- - - - {/* */} -
-
+ beforeUpload(file)} + customRequest={(args) => uploadHandler(args)} + onRemove={(file) => { + setLoading(false); + }} + > + + + {loadingState} +
+
diff --git a/src/store/product.js b/src/store/product.js index 5881c38..af5f1d9 100644 --- a/src/store/product.js +++ b/src/store/product.js @@ -107,6 +107,24 @@ export class Product { console.error(e); } } + + async uploadExcel(data) { + try { + const response = await http.upload(data); + return response; + } catch (e) { + console.error(e); + } + } + + async uploadProduct(data) { + try { + const response = await http.post('/product/upload-product').send(data); + return response; + } catch (e) { + console.error(e); + } + } } From 91ecdfb5415864f4acef41f66dddc3f0619ebc45 Mon Sep 17 00:00:00 2001 From: caturbgs Date: Thu, 23 Dec 2021 13:51:05 +0700 Subject: [PATCH 4/4] chore: rewrite function for upload images in payback --- src/pages/Payback/PaybackModal.js | 3 +-- src/store/payback.js | 9 +++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/pages/Payback/PaybackModal.js b/src/pages/Payback/PaybackModal.js index 39ae6b9..1cc8127 100644 --- a/src/pages/Payback/PaybackModal.js +++ b/src/pages/Payback/PaybackModal.js @@ -3,7 +3,6 @@ import {Form, InputNumber, message, Modal, Upload,} from "antd"; import {useStore} from "../../utils/useStore"; import {LoadingOutlined, PlusOutlined} from "@ant-design/icons"; import {ModalLoaderContext} from "../../utils/modal"; -import {http} from "../../utils/http"; import {appConfig} from "../../config/app"; export const PaybackModal = ({initialData}) => { @@ -32,7 +31,7 @@ export const PaybackModal = ({initialData}) => { const uploadHandler = async (args) => { const file = args.file; - const res = await http.upload(file); + const res = await store.payback.uploadImages(file); setImage(`${appConfig.apiUrl}/config/image/${res.body.filename}`); setResponseFilename(res.body.filename); setFileList([{ diff --git a/src/store/payback.js b/src/store/payback.js index d0a5c83..279d56f 100644 --- a/src/store/payback.js +++ b/src/store/payback.js @@ -93,4 +93,13 @@ export class Payback { console.error(e); } } + + async uploadImages(data) { + try { + const response = await http.upload(data); + return response; + } catch (e) { + console.error(e); + } + } }