From 73d23b8958b48ae3460a71c7f207a4a8ea8087f6 Mon Sep 17 00:00:00 2001 From: caturbgs Date: Wed, 22 Dec 2021 16:06:18 +0700 Subject: [PATCH 01/13] fix: create payback fix image --- src/pages/Payback/PaybackModal.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/pages/Payback/PaybackModal.js b/src/pages/Payback/PaybackModal.js index f5229ef..6420dae 100644 --- a/src/pages/Payback/PaybackModal.js +++ b/src/pages/Payback/PaybackModal.js @@ -12,7 +12,7 @@ export const PaybackModal = ({initialData}) => { const [image, setImage] = useState(""); const [fileList, setFileList] = useState([]); const [previewImage, setPreviewImage] = useState(""); - const [previewVisible, setPreviewVisible] = useState(false); + const [responseFilename, setResponseFilename] = useState(""); const [loading, setLoading] = useState(false); const modalLoader = useContext(ModalLoaderContext); @@ -34,6 +34,7 @@ export const PaybackModal = ({initialData}) => { const file = args.file; const res = await http.upload(file); setImage(`${appConfig.apiUrl}/config/image/${res.body.filename}`); + setResponseFilename(res.body.filename); setFileList([{ uid: '-1', name: 'image', @@ -62,7 +63,8 @@ export const PaybackModal = ({initialData}) => { try { const request = { ...data, - destination: store.authentication.profileData.superior?.id + destination: store.authentication.profileData.superior?.id, + image_prove: responseFilename } await store.payback.create(request); message.success("Success Add Payback"); @@ -75,20 +77,20 @@ export const PaybackModal = ({initialData}) => { } modalLoader.setLoading(false); form.resetFields(); - store.payback.visibleModalPayback = false; setImage(""); setFileList([]); setPreviewImage(""); - setPreviewVisible(false); + setResponseFilename(""); + store.payback.visibleModalPayback = false; }; const handleCancel = () => { form.resetFields(); - store.payback.visibleModalPayback = false; setImage(""); setFileList([]); setPreviewImage(""); - setPreviewVisible(false); + setResponseFilename(""); + store.payback.visibleModalPayback = false; } return ( @@ -126,7 +128,6 @@ export const PaybackModal = ({initialData}) => { fileList={fileList} onPreview={(file) => { setPreviewImage(file.url || file.filename); - setPreviewVisible(file.url || file.filename); }} showUploadList={true} onChange={handleChange} From 81d6407367edbcff811ebac40e33a63f46af3bb6 Mon Sep 17 00:00:00 2001 From: caturbgs Date: Wed, 22 Dec 2021 16:19:45 +0700 Subject: [PATCH 02/13] fix: dsplay image in payback --- src/pages/Payback/Payback.js | 12 ++++++------ src/pages/Payback/PaybackModal.js | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/pages/Payback/Payback.js b/src/pages/Payback/Payback.js index 729ccb7..521f9e0 100644 --- a/src/pages/Payback/Payback.js +++ b/src/pages/Payback/Payback.js @@ -6,6 +6,7 @@ import {CheckCircleOutlined, CloseOutlined, FilterOutlined,} from "@ant-design/i import {BreadcumbComponent} from "../../component/BreadcumbComponent"; import {LINKS} from "../../routes/app"; import {ModalLoaderContext} from "../../utils/modal"; +import {appConfig} from "../../config/app"; const {Search} = Input; @@ -39,12 +40,11 @@ export const Payback = observer(() => { dataIndex: "image_prove", key: "image_prove", render: (text, record) => ( - avatar + {record.id} ), }, { diff --git a/src/pages/Payback/PaybackModal.js b/src/pages/Payback/PaybackModal.js index 6420dae..144ee42 100644 --- a/src/pages/Payback/PaybackModal.js +++ b/src/pages/Payback/PaybackModal.js @@ -76,12 +76,12 @@ export const PaybackModal = ({initialData}) => { message.error(e.message); } modalLoader.setLoading(false); + store.payback.visibleModalPayback = false; form.resetFields(); setImage(""); setFileList([]); setPreviewImage(""); setResponseFilename(""); - store.payback.visibleModalPayback = false; }; const handleCancel = () => { From 9a596abeca83e1ed0ad93d0e3d7f4b04e9cc0b63 Mon Sep 17 00:00:00 2001 From: "ajat91.sudrajat" Date: Wed, 22 Dec 2021 16:45:20 +0700 Subject: [PATCH 03/13] Edit Menu Product --- src/component/CategoryComponent.js | 2 +- src/component/CommissionComponent.js | 2 +- src/component/PartnerComponent.js | 2 +- src/component/ProductComponent.js | 34 ++++++++++++++-------------- src/component/Subcategory.js | 2 +- src/component/SupplierComponent.js | 2 +- src/pages/Membership/Membership.js | 4 ++-- src/store/product.js | 1 + 8 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/component/CategoryComponent.js b/src/component/CategoryComponent.js index 9005485..753342e 100644 --- a/src/component/CategoryComponent.js +++ b/src/component/CategoryComponent.js @@ -139,7 +139,7 @@ export const CategoryComponent = observer((props) => { store.category.pageSize = page.pageSize; store.category.page = pageNumber - 1; modalLoader.setLoading(true); - //await store.category.getData(); + await store.category.getData(); modalLoader.setLoading(false); }} /> diff --git a/src/component/CommissionComponent.js b/src/component/CommissionComponent.js index 0cf36e8..ae730ca 100644 --- a/src/component/CommissionComponent.js +++ b/src/component/CommissionComponent.js @@ -82,7 +82,7 @@ export const CommissionComponent = observer((props) => { store.commission.pageSize = page.pageSize; store.commission.page = pageNumber - 1; modalLoader.setLoading(true); - //await store.commission.getData(); + await store.commission.getData(); modalLoader.setLoading(false); }} /> diff --git a/src/component/PartnerComponent.js b/src/component/PartnerComponent.js index 5e49029..7a3afd0 100644 --- a/src/component/PartnerComponent.js +++ b/src/component/PartnerComponent.js @@ -211,7 +211,7 @@ export const PartnerComponent = observer((props) => { store.partner.pageSize = page.pageSize; store.partner.page = pageNumber - 1; modalLoader.setLoading(true); - //await store.partner.getData(); + await store.partner.getData(); modalLoader.setLoading(false); }} /> diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index 40a6a34..31c5663 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -37,23 +37,23 @@ export const ProductComponent = observer((props) => { const columns = [ { title: "Kode", - dataIndex: "code", - key: "code", + dataIndex: "product_code", + key: "product_code", }, { title: "Produk", - dataIndex: ["name"], - key: "name", + dataIndex: ["product_name"], + key: "product_name", }, { title: "Harga Beli", - dataIndex: ["currentPrice", "price"], - key: ["currentPrice", "price"], + dataIndex: ["current_price_price"], + key: ["current_price_price"], }, { title: "Harga Jual", - dataIndex: ["currentPrice", "mark_up_price"], - key: ["currentPrice", "mark_up_price"], + dataIndex: ["mark_up_price"], + key: ["mark_up_price"], }, // { // title: "Gangguan", @@ -74,10 +74,10 @@ export const ProductComponent = observer((props) => { key: "tersedia", render: (text, record) => ( - {record?.status === "ACTIVE" ? " Tersedia" : "Tidak"} + {record?.product_status === "ACTIVE" ? " Tersedia" : "Tidak"} ), }, @@ -235,7 +235,7 @@ export const ProductComponent = observer((props) => { store.product.pageSize = page.pageSize; store.product.page = pageNumber - 1; modalLoader.setLoading(true); - //await store.product.getData(); + await store.product.getData(); modalLoader.setLoading(false); }} /> @@ -276,15 +276,15 @@ export const ProductComponent = observer((props) => { >

- Nama Produk : {item.name}
- Harga Beli : {item.currentPrice.price} + {item.product_name}
+ Harga Beli : {item.current_price_price}
- Harga Jual : {item.currentPrice.mark_up_price} + Harga Jual : {item.mark_up_price}

@@ -299,10 +299,10 @@ export const ProductComponent = observer((props) => { }} > - {item?.status === "ACTIVE" ? " Tersedia" : "Tidak"} + {item?.product_status === "ACTIVE" ? " Tersedia" : "Tidak"}

diff --git a/src/component/Subcategory.js b/src/component/Subcategory.js index 283aedc..f3f442b 100644 --- a/src/component/Subcategory.js +++ b/src/component/Subcategory.js @@ -126,7 +126,7 @@ export const SubcategoryComponent = observer((props) => { store.subcategory.pageSize = page.pageSize; store.subcategory.page = pageNumber - 1; modalLoader.setLoading(true); - // await getData(); + await getData(); modalLoader.setLoading(false); }} /> diff --git a/src/component/SupplierComponent.js b/src/component/SupplierComponent.js index dce358e..af6b6e4 100644 --- a/src/component/SupplierComponent.js +++ b/src/component/SupplierComponent.js @@ -219,7 +219,7 @@ export const SupplierComponent = observer((props) => { store.supplier.pageSize = page.pageSize; store.supplier.page = pageNumber - 1; modalLoader.setLoading(true); - //await store.supplier.getData(); + await store.supplier.getData(); modalLoader.setLoading(false); }} /> diff --git a/src/pages/Membership/Membership.js b/src/pages/Membership/Membership.js index 9126636..83c9402 100644 --- a/src/pages/Membership/Membership.js +++ b/src/pages/Membership/Membership.js @@ -404,9 +404,9 @@ export const Membership = observer(() => {

Role : {item.roleName}
- Saldo Supplier : {item.amount}{" "} + Saldo Supplier : {item.coa.amount}{" "}
- Saldo System : {item.amount}
+ Saldo System : {item.coa.amount}

} diff --git a/src/store/product.js b/src/store/product.js index e03b223..e71957a 100644 --- a/src/store/product.js +++ b/src/store/product.js @@ -31,6 +31,7 @@ export class Product { async getData() { try { const response = await http.get(`/product/all?supplier=${this.filterSupplier}&sub-category=${this.filterSubCategory}&page=${this.page}&pageSize=${this.pageSize}`); + //console.log(response) this.data = response.body.data.map((item, idx) => { item.key = idx; return item From 119fa6d0bd2b363892613b6b9794bc50bb85ddec Mon Sep 17 00:00:00 2001 From: caturbgs Date: Wed, 22 Dec 2021 16:57:42 +0700 Subject: [PATCH 04/13] style: adjust number to currency format --- src/component/CommissionComponent.js | 6 ++--- src/component/ProductComponent.js | 10 +++++++ ...Subcategory.js => SubcategoryComponent.js} | 27 +++++-------------- src/pages/Payback/Payback.js | 11 +++++--- src/pages/Payback/PaybackFromUser.js | 5 ++++ src/pages/Product/Subcategory.js | 6 ++--- src/pages/Profile/Profile.js | 5 ++++ 7 files changed, 41 insertions(+), 29 deletions(-) rename src/component/{Subcategory.js => SubcategoryComponent.js} (94%) diff --git a/src/component/CommissionComponent.js b/src/component/CommissionComponent.js index ae730ca..f6bbdfc 100644 --- a/src/component/CommissionComponent.js +++ b/src/component/CommissionComponent.js @@ -1,9 +1,8 @@ -import React, {useContext, useEffect, useState} from "react"; -import {Button, Form, Input, message, Modal, Select, Space, Table,} from "antd"; +import React, {useContext, useState} from "react"; +import {Button, Form, Input, message, Modal, Space, Table,} from "antd"; import {observer} from "mobx-react-lite"; import {useHistory} from "react-router-dom"; import {useStore} from "../utils/useStore"; -import {LINKS} from "../routes/app"; import {ModalLoaderContext} from "../utils/modal"; export const CommissionComponent = observer((props) => { @@ -32,6 +31,7 @@ export const CommissionComponent = observer((props) => { title: "Amount", dataIndex: "commission", key: "commission", + render: (text) => {text}%, }, { title: "Action", diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index c10741a..fcd3c2f 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -48,11 +48,21 @@ export const ProductComponent = observer((props) => { title: "Harga Beli", dataIndex: "current_price_price", key: "current_price_price", + render: (text) => + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Harga Jual", dataIndex: "mark_up_price", key: "mark_up_price", + render: (text) => + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, // { // title: "Gangguan", diff --git a/src/component/Subcategory.js b/src/component/SubcategoryComponent.js similarity index 94% rename from src/component/Subcategory.js rename to src/component/SubcategoryComponent.js index f3f442b..0b01a76 100644 --- a/src/component/Subcategory.js +++ b/src/component/SubcategoryComponent.js @@ -1,30 +1,17 @@ -import React, { useContext, useState,useEffect } from "react"; -import { - Button, - Form, - Input, - message, - Modal, - Select, - Space, - Table, - List, - Tag, - Divider, -} from "antd"; -import { observer } from "mobx-react-lite"; -import { useHistory } from "react-router-dom"; -import { useStore } from "../utils/useStore"; -import { ModalLoaderContext } from "../utils/modal"; +import React, {useContext, useEffect, useState} from "react"; +import {Button, Divider, Form, Input, List, message, Modal, Select, Space, Table,} from "antd"; +import {observer} from "mobx-react-lite"; +import {useStore} from "../utils/useStore"; +import {ModalLoaderContext} from "../utils/modal"; export const SubcategoryComponent = observer((props) => { const store = useStore(); const [form] = Form.useForm(); - const { Option } = Select; + const {Option} = Select; const [idData, setIdData] = useState(""); const modalLoader = useContext(ModalLoaderContext); useEffect(() => { - + getData() }, []) const getData = async () => { diff --git a/src/pages/Payback/Payback.js b/src/pages/Payback/Payback.js index 521f9e0..a4036b9 100644 --- a/src/pages/Payback/Payback.js +++ b/src/pages/Payback/Payback.js @@ -48,9 +48,14 @@ export const Payback = observer(() => { ), }, { - title: "Amount", - dataIndex: "amount", - key: "amount", + title: "Amount", + dataIndex: "amount", + key: "amount", + render: (text) => + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Action", diff --git a/src/pages/Payback/PaybackFromUser.js b/src/pages/Payback/PaybackFromUser.js index 6db5368..680b064 100644 --- a/src/pages/Payback/PaybackFromUser.js +++ b/src/pages/Payback/PaybackFromUser.js @@ -56,6 +56,11 @@ export const PaybackFromUser = observer(() => { title: "Amount", dataIndex: "amount", key: "amount", + render: (text) => + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, ]; diff --git a/src/pages/Product/Subcategory.js b/src/pages/Product/Subcategory.js index 402ab7f..0ffa767 100644 --- a/src/pages/Product/Subcategory.js +++ b/src/pages/Product/Subcategory.js @@ -1,11 +1,11 @@ -import React, {useContext, useEffect, useState} from "react"; -import {Button, Card, Col, Input, Row,message} from "antd"; +import React, {useContext, useEffect} from "react"; +import {Button, Card, Col, Input, message, Row} from "antd"; import {PlusSquareOutlined} from "@ant-design/icons"; import {BreadcumbComponent} from "../../component/BreadcumbComponent"; import {useStore} from "../../utils/useStore"; import {observer} from "mobx-react-lite"; import {LINKS} from "../../routes/app"; -import {SubcategoryComponent} from "../../component/Subcategory"; +import {SubcategoryComponent} from "../../component/SubcategoryComponent"; import {ModalLoaderContext} from "../../utils/modal"; const {Search} = Input; diff --git a/src/pages/Profile/Profile.js b/src/pages/Profile/Profile.js index 1096b36..f6ec408 100644 --- a/src/pages/Profile/Profile.js +++ b/src/pages/Profile/Profile.js @@ -42,6 +42,11 @@ export const Profile = observer(() => { dataIndex: 'mark_up_price', key: 'mark_up_price', width: '20%', + render: (text) => + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: 'Name', From 9460935e0a56126deeb8a8613274064bd282f439 Mon Sep 17 00:00:00 2001 From: caturbgs Date: Wed, 22 Dec 2021 16:58:24 +0700 Subject: [PATCH 05/13] style: add margin into profile popover --- src/index.css | 7 +- src/pages/App/DesktopLayout.js | 173 +++++++++++++++++---------------- 2 files changed, 94 insertions(+), 86 deletions(-) diff --git a/src/index.css b/src/index.css index 3c1a8ed..18d9f14 100644 --- a/src/index.css +++ b/src/index.css @@ -61,8 +61,9 @@ code { background-color: #e3e8ee !important; } .ant-menu-submenu-arrow{ - padding-right: 40px !important; + padding-right: 40px !important; } + .ant-breadcrumb { margin-bottom: 10px !important; } @@ -70,4 +71,8 @@ code { .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn { color: #ed1f24 !important; border-color: #ed1f24 !important; +} + +.profile-container .ant-popover-inner-content { + padding: 0 !important; } \ No newline at end of file diff --git a/src/pages/App/DesktopLayout.js b/src/pages/App/DesktopLayout.js index ffe6524..047bd99 100644 --- a/src/pages/App/DesktopLayout.js +++ b/src/pages/App/DesktopLayout.js @@ -1,64 +1,64 @@ -import React, { useState } from "react"; -import { Button, Drawer, Layout, Menu, Popover, Typography } from "antd"; -import { MenuList } from "./MenuList"; -import { Link, useHistory } from "react-router-dom"; +import React, {useState} from "react"; +import {Button, Drawer, Layout, Menu, Popover, Typography} from "antd"; +import {MenuList} from "./MenuList"; +import {Link, useHistory} from "react-router-dom"; import { - HomeOutlined, - MenuOutlined, - UserOutlined, - ProfileOutlined, - DatabaseOutlined, - FileAddOutlined, - FileSyncOutlined, - FileProtectOutlined, - ShoppingCartOutlined, - AlipayOutlined, - PayCircleOutlined + AlipayOutlined, + DatabaseOutlined, + FileAddOutlined, + FileProtectOutlined, + FileSyncOutlined, + HomeOutlined, + MenuOutlined, + PayCircleOutlined, + ProfileOutlined, + ShoppingCartOutlined, + UserOutlined } from "@ant-design/icons"; -import { AppRoute, LINKS } from "../../routes/app"; -import { useStore } from "../../utils/useStore"; -import { observer } from "mobx-react-lite"; -import { useMediaQuery } from "react-responsive"; +import {AppRoute, LINKS} from "../../routes/app"; +import {useStore} from "../../utils/useStore"; +import {observer} from "mobx-react-lite"; +import {useMediaQuery} from "react-responsive"; -const { Text, Paragraph } = Typography; -const { Header, Content, Sider } = Layout; -const { SubMenu } = Menu; +const {Text, Paragraph} = Typography; +const {Header, Content, Sider} = Layout; +const {SubMenu} = Menu; export const DesktopLayout = observer(() => { - let history = useHistory(); - const xl = useMediaQuery({ minWidth: 1024 }); - const store = useStore(); - const [clicked, setClicked] = useState(false); + let history = useHistory(); + const xl = useMediaQuery({minWidth: 1024}); + const store = useStore(); + const [clicked, setClicked] = useState(false); - return ( - - {store.ui.mediaQuery.isDesktop && ( - + {store.ui.mediaQuery.isDesktop && ( +
{ autoAdjustOverflow={true} placement="bottomRight" content={ - - - - Profile - - - { - store.authentication.logout(); - history.push("/login"); - }} + - Sign out - - + {store.authentication.userData.role !== "Admin" && ( + + + + Profile + + + )} + { + store.authentication.logout(); + history.push("/login"); + }} + > + Sign out + + } title={ - {store.user.data.email}{" "} - - {store.authentication.userData.username} - + + {store.authentication.userData.username} + } trigger="click" From 78626fd6e949e30fa329585debf80d26187791e2 Mon Sep 17 00:00:00 2001 From: "ajat91.sudrajat" Date: Wed, 22 Dec 2021 17:52:05 +0700 Subject: [PATCH 06/13] Role Access --- src/component/ProductComponent.js | 169 +++++++++++++++++------------ src/pages/Membership/DetailUser.js | 2 +- src/pages/Membership/Membership.js | 58 +++++++--- src/pages/Product/Product.js | 89 +++++++++------ 4 files changed, 199 insertions(+), 119 deletions(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index fcd3c2f..36f9042 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -1,18 +1,33 @@ -import React, {useContext, useState} from "react"; -import {Button, Col, Divider, Form, Input, List, message, Modal, Row, Select, Table, Tag, Typography,} from "antd"; -import {observer} from "mobx-react-lite"; -import {ExclamationCircleOutlined} from "@ant-design/icons"; -import {useHistory} from "react-router-dom"; -import {useStore} from "../utils/useStore"; -import {LINKS} from "../routes/app"; -import {ModalLoaderContext} from "../utils/modal"; +import React, { useContext, useState } from "react"; +import { + Button, + Col, + Divider, + Form, + Input, + InputNumber, + List, + message, + Modal, + Row, + Select, + Table, + Tag, + Typography, +} from "antd"; +import { observer } from "mobx-react-lite"; +import { ExclamationCircleOutlined } from "@ant-design/icons"; +import { useHistory } from "react-router-dom"; +import { useStore } from "../utils/useStore"; +import { LINKS } from "../routes/app"; +import { ModalLoaderContext } from "../utils/modal"; -const {Title, Text} = Typography; +const { Title, Text } = Typography; export const ProductComponent = observer((props) => { const store = useStore(); const [form] = Form.useForm(); - const {Option} = Select; + const { Option } = Select; const history = useHistory(); const [idData, setIdData] = useState(""); const [filterSupplier, setFilterSupplier] = useState([]); @@ -49,20 +64,20 @@ export const ProductComponent = observer((props) => { dataIndex: "current_price_price", key: "current_price_price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Harga Jual", dataIndex: "mark_up_price", key: "mark_up_price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, // { // title: "Gangguan", @@ -94,14 +109,14 @@ export const ProductComponent = observer((props) => { title: "Action", key: "action", render: (text, record) => ( - + ), }, ]; @@ -207,12 +222,12 @@ export const ProductComponent = observer((props) => { const footerLayoutFilter = [ , @@ -302,9 +317,7 @@ export const ProductComponent = observer((props) => { {item.product_name}
Harga Beli : {item.current_price_price}
- - Harga Jual : {item.mark_up_price} - + Harga Jual : {item.mark_up_price}

@@ -318,10 +331,14 @@ export const ProductComponent = observer((props) => { }} > - {item?.product_status === "ACTIVE" ? " Tersedia" : "Tidak"} + {item?.product_status === "ACTIVE" + ? " Tersedia" + : "Tidak"}

@@ -367,14 +384,26 @@ export const ProductComponent = observer((props) => { label="Price" rules={[{ required: true, message: "Please input price!" }]} > - + + `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") + } + parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} + /> - + + `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") + } + parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} + /> { > @@ -422,18 +451,18 @@ export const ProductComponent = observer((props) => { Filter Supplier @@ -442,16 +471,16 @@ export const ProductComponent = observer((props) => { Filter Categories @@ -460,18 +489,18 @@ export const ProductComponent = observer((props) => { Filter Sub-Categories diff --git a/src/pages/Membership/DetailUser.js b/src/pages/Membership/DetailUser.js index fe5bfdc..d2649d0 100644 --- a/src/pages/Membership/DetailUser.js +++ b/src/pages/Membership/DetailUser.js @@ -125,7 +125,7 @@ export const DetailUser = observer(() => {
- History User Transaction + History Top Up -
+
- - - - + }} + /> + {store.authentication.userData.role === "Admin" && ( +
+ + + + +
+ )}
- +
); From 7928df9fc657368dd6f9052c9df3f21ab8ed909f Mon Sep 17 00:00:00 2001 From: "ajat91.sudrajat" Date: Wed, 22 Dec 2021 18:01:11 +0700 Subject: [PATCH 07/13] Role Access --- src/pages/Product/Product.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pages/Product/Product.js b/src/pages/Product/Product.js index 6b58872..72a9940 100644 --- a/src/pages/Product/Product.js +++ b/src/pages/Product/Product.js @@ -74,7 +74,6 @@ export const Product = observer(() => { display: store.ui.mediaQuery.isMobile ? "" : "flex", justifyContent: "flex-end", textAlign: "right", - //width:store.authentication.userData.role === "Admin" ? 100 : '' }} > { }} /> {store.authentication.userData.role === "Admin" && ( -
+
- +