diff --git a/src/component/PartnerComponent.js b/src/component/PartnerComponent.js index 87636a0..d08a8e5 100644 --- a/src/component/PartnerComponent.js +++ b/src/component/PartnerComponent.js @@ -40,6 +40,21 @@ export const PartnerComponent = observer((props) => { init(); }, []); + const changeStatus = async (id, isActive) => { + const status = isActive ? "inactive" : "active"; + const status2 = isActive ? "Inactivating" : "Activating"; + try { + const response = await store.partner.changeStatus(id, status); + + response?.body?.statusCode === 201 + ? message.success(`Success ${status2} Partner`) + : message.error(`Failed ${status2} Partner`); + } catch (err) { + console.log("error", err); + message.error(`Failed ${status2} Partner`); + } + }; + const handleEditButton = (data) => { console.log(data, "isi data"); form.setFieldsValue({ @@ -72,9 +87,13 @@ export const PartnerComponent = observer((props) => { dataIndex: "status", key: "status", render: (text, record) => ( - + changeStatus(record?.id, record?.status)} + > + {record?.status === true ? " ACTIVE" : "INACTIVE"} + ), }, { diff --git a/src/component/SupplierComponent.js b/src/component/SupplierComponent.js index e23240e..d637d84 100644 --- a/src/component/SupplierComponent.js +++ b/src/component/SupplierComponent.js @@ -45,16 +45,26 @@ export const SupplierComponent = observer((props) => { form.setFieldsValue({ name: data.name, code: data.code, - status:data.status + status: data.status, }); store.supplier.visibleModalSupplier = true; setIdData(data.id); }; - const changeStatus = (id, isActive) => { - const status = isActive ? "inactive" : "active" - store.supplier.changeStatus(id, status) - } + const changeStatus = async (id, isActive) => { + const status = isActive ? "inactive" : "active"; + const status2 = isActive ? "Inactivating" : "Activating"; + try { + const response = await store.supplier.changeStatus(id, status); + + response?.body?.statusCode === 201 + ? message.success(`Success ${status2} Supplier`) + : message.error(`Failed ${status2} Supplier`); + } catch (err) { + console.log("error", err); + message.error(`Failed ${status2} Supplier`); + } + }; const columns = [ { @@ -74,7 +84,7 @@ export const SupplierComponent = observer((props) => { render: (text, record) => ( changeStatus(record?.id, record?.status)} > {record?.status === true ? " ACTIVE" : "INACTIVE"} @@ -125,7 +135,7 @@ export const SupplierComponent = observer((props) => { setIdData(""); store.supplier.visibleModalSupplier = false; }; - const handleCancelTransaction= () => { + const handleCancelTransaction = () => { store.supplier.visibleModalTransaction = false; }; @@ -162,21 +172,19 @@ export const SupplierComponent = observer((props) => { const handleSubmitTransaction = async (data) => { console.log(data, "isi data2"); - setConfirmLoading(true); - try { - await store.supplier.createTransaction(data); - message.success("Success Top Up"); - //await store.supplier.getData() - } catch (e) { - console.log(e, "apa errornya"); - message.error("Failed Top Up"); - } - setConfirmLoading(false); - store.supplier.visibleModalTransaction = false; - form.resetFields(); - }; - - + setConfirmLoading(true); + try { + await store.supplier.createTransaction(data); + message.success("Success Top Up"); + //await store.supplier.getData() + } catch (e) { + console.log(e, "apa errornya"); + message.error("Failed Top Up"); + } + setConfirmLoading(false); + store.supplier.visibleModalTransaction = false; + form.resetFields(); + }; return (
diff --git a/src/pages/Membership/Membership.js b/src/pages/Membership/Membership.js index 44b1186..0e621a2 100644 --- a/src/pages/Membership/Membership.js +++ b/src/pages/Membership/Membership.js @@ -1,13 +1,30 @@ -import React, {useEffect, useState} from "react"; -import {Button, Card, Col, Divider, Input, List, message, Modal, Row, Space, Table, Tag,} from "antd"; -import {useStore} from "../../utils/useStore"; -import {observer} from "mobx-react-lite"; -import {ExclamationCircleOutlined, FilterOutlined, PlusSquareOutlined,} from "@ant-design/icons"; -import {MembershipModal} from "./MembershipModal"; -import {BreadcumbComponent} from "../../component/BreadcumbComponent"; -import {LINKS} from "../../routes/app"; +import React, { useEffect, useState } from "react"; +import { + Button, + Card, + Col, + Divider, + Input, + List, + message, + Modal, + Row, + Space, + Table, + Tag, +} from "antd"; +import { useStore } from "../../utils/useStore"; +import { observer } from "mobx-react-lite"; +import { + ExclamationCircleOutlined, + FilterOutlined, + PlusSquareOutlined, +} from "@ant-design/icons"; +import { MembershipModal } from "./MembershipModal"; +import { BreadcumbComponent } from "../../component/BreadcumbComponent"; +import { LINKS } from "../../routes/app"; -const {Search} = Input; +const { Search } = Input; export const Membership = observer(() => { const store = useStore(); @@ -31,6 +48,21 @@ export const Membership = observer(() => { init(); }, []); + const changeStatus = async (id, isActive) => { + const status = isActive ? "inactive" : "active"; + const status2 = isActive ? "Inactivating" : "Activating"; + try { + const response = await store.membership.changeStatus(id, status); + + response?.body?.statusCode === 201 + ? message.success(`Success ${status2} Membership`) + : message.error(`Failed ${status2} Membership`); + } catch (err) { + console.log("error", err); + message.error(`Failed ${status2} Membership`); + } + }; + const columns = [ { title: "Name", @@ -48,10 +80,11 @@ export const Membership = observer(() => { key: "status", render: (text, record) => ( changeStatus(record?.id, record?.status)} > - {record?.isActive === true ? " ACTIVE" : "INACTIVE"} + {record?.status === true ? " ACTIVE" : "INACTIVE"} ), }, @@ -188,26 +221,26 @@ export const Membership = observer(() => { {store.ui.mediaQuery.isDesktop && ( { - let pageNumber = page.current; - store.membership.pageSize = page.pageSize; - store.membership.page = pageNumber - 1; - // store.membership.isLoading = true; - await store.membership.getData(); - // store.membership.isLoading = false; - }} + key="1" + hasEmpty + columns={columns} + dataSource={store.membership.data} + bordered + pagination={{ + pageSize: store.membership.pageSize, + total: store.membership.total_data, + current: store.membership.page + 1, + showSizeChanger: true, + simple: false, + }} + onChange={async (page) => { + let pageNumber = page.current; + store.membership.pageSize = page.pageSize; + store.membership.page = pageNumber - 1; + // store.membership.isLoading = true; + await store.membership.getData(); + // store.membership.isLoading = false; + }} /> )} diff --git a/src/pages/Membership/MembershipModal.js b/src/pages/Membership/MembershipModal.js index 4aca734..c3c9796 100644 --- a/src/pages/Membership/MembershipModal.js +++ b/src/pages/Membership/MembershipModal.js @@ -1,96 +1,100 @@ -import React from 'react'; -import {Form, Input, Modal, Select,} from 'antd'; -import {capitalize} from "lodash"; -import {useStore} from "../../utils/useStore"; +import React from "react"; +import { Form, Input, Modal, Select } from "antd"; +import { capitalize } from "lodash"; +import { useStore } from "../../utils/useStore"; export const MembershipModal = ({ - visible, - onCreate, - onCancel, - initialData, - }) => { - const [form] = Form.useForm(); - const {Option} = Select; - const dataStatus = ["true", "false"] - const store = useStore(); + visible, + onCreate, + onCancel, + initialData, +}) => { + const [form] = Form.useForm(); + const { Option } = Select; + const dataStatus = ["true", "false"]; + const store = useStore(); - - return ( - { - form.resetFields() - onCancel() - }} - onOk={() => { - form - .validateFields() - .then(values => { - onCreate(values); - form.resetFields() - }) - .catch(info => { - console.log('Validate Failed:', info); - }); - }} + return ( + { + form.resetFields(); + onCancel(); + }} + onOk={() => { + form + .validateFields() + .then((values) => { + onCreate(values); + form.resetFields(); + }) + .catch((info) => { + console.log("Validate Failed:", info); + }); + }} + > +
+ - - - - - - - - - - - - - - - -
- ); + + + + + + + + + + + + +
+ ); }; diff --git a/src/store/membership.js b/src/store/membership.js index e8830c8..fcbea6b 100644 --- a/src/store/membership.js +++ b/src/store/membership.js @@ -12,11 +12,14 @@ export class Membership { makeAutoObservable(this); } - @action async getData() { const response = await http.get(`/users?page=${this.page}&pageSize=${this.pageSize}`); - console.log(response) - this.data = response.body.data ?? [] + + this.data = response.body.data.map((item, idx) => { + item.key = idx; + return item + }) ?? [] + this.total_data = response.body.total_data ?? 0 } // async getData() { @@ -25,12 +28,10 @@ export class Membership { // this.total_data = response.body.total_data ?? 0 // } - @action async create(data) { return await http.post('/users').send(data) } - @action async update(id, data) { // console.log(data) // console.log(id) @@ -44,6 +45,12 @@ export class Membership { return await http.del('/users/' + id); } + + async changeStatus(id, status) { + const response = await http.get(`/users/${id}/${status}`); + await this.getData(); + return response; + } } diff --git a/src/store/partner.js b/src/store/partner.js index 6b136a1..0e94a36 100644 --- a/src/store/partner.js +++ b/src/store/partner.js @@ -26,8 +26,12 @@ export class Partner { async getData() { const response = await http.get(`/users/partner?page=${this.page}&pageSize=${this.pageSize}`); - this.data = response.body.data ?? [] - //console.log(response.body,"ini dari store") + + this.data = response.body.data.map((item, idx) => { + item.key = idx; + return item + }) ?? [] + this.total_data = response.body.count ?? 0 } @@ -55,6 +59,11 @@ export class Partner { return response; } + async changeStatus(id, status) { + const response = await http.get(`/users/partner/${id}/${status}`); + await this.getData(); + return response; + } } diff --git a/src/store/product.js b/src/store/product.js index 81df70c..e04edd1 100644 --- a/src/store/product.js +++ b/src/store/product.js @@ -37,7 +37,10 @@ export class Product { async getDataSubCategories() { const response = await http.get(`/product/sub-categories?page=${this.pageSubCategories}&pageSize=${this.pageSizeSubCategories}`); - this.dataSubCategories = response.body.data ?? [] + this.dataSubCategories = response.body.data.map((item, idx) => { + item.key = idx; + return item + }) ?? [] this.total_dataSubCategories = response.body.count ?? 0 } @@ -46,9 +49,15 @@ export class Product { this.dataCategories = response.body.data ?? [] this.total_dataCategories = response.body.total_data ?? 0 + if (this.dataCategories.length > 0) { this.filterCategory = this.dataCategories[0].id } + + this.dataCategories = this.dataCategories.map((item, idx) => { + item.key = idx; + return item + }) ?? [] } async create(data) {