import React, { useContext, useState } from "react"; import { Button, Divider, Form, Input, List, message, Modal, Space, Table, Tag, } 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"; export const PartnerComponent = observer((props) => { const store = useStore(); const [value, setValue] = useState(); const [form] = Form.useForm(); const history = useHistory(); const [idData, setIdData] = useState(""); const [isChangePassword, setIsChangePassword] = useState(false); const modalLoader = useContext(ModalLoaderContext); const changeStatus = async (id, isActive) => { const status = isActive ? "inactive" : "active"; const status2 = isActive ? "Inactivating" : "Activating"; modalLoader.setLoading(true); try { const response = await store.partner.changeStatus(id, status); modalLoader.setLoading(false); 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({ name: data.name, npwp: data.npwp, address: data.address, code: data.code, }); setIsChangePassword(false); store.partner.visibleModalPartner = true; setIdData(data.id); }; const changePassword = (data) => { // form.setFieldsValue({ // name: data.name, // npwp: data.npwp, // address: data.address, // }); setIsChangePassword(true); store.partner.visibleModalPartner = true; setIdData(data.id); console.log(data.id); }; const columns = [ { title: "Nama", dataIndex: "name", key: "name", }, { title: "Kode", dataIndex: "code", key: "code", }, { title: "Npwp", dataIndex: "npwp", key: "npwp", }, { title: "Alamat", dataIndex: "address", key: "address", }, { title: "Status", dataIndex: "status", key: "status", render: (text, record) => ( {record?.status === true ? " ACTIVE" : "INACTIVE"} ), }, { title: "Tindakan", key: "action", render: (text, record) => ( {/* */} ), }, ]; if (store.authentication.userData.role === "Customer Service") columns.pop(); const deleteData = async (id) => { try { modalLoader.setLoading(true); await store.partner.delete(id); modalLoader.setLoading(false); message.success("Data Berhasil Dihapus"); history.push(LINKS.PARTNER); } catch (err) { console.log("error", err); message.error("Gagal menghapus"); } }; const handleDelete = (id) => { Modal.confirm({ title: "Are you sure delete this record?", icon: , okText: "Yes", okType: "primary", cancelText: "Batal", onOk() { return deleteData(id); }, onCancel() { console.log("Batal"); }, }); }; const handleCancel = () => { setIdData(""); store.partner.visibleModalPartner = false; }; const handleSubmit = async (data) => { console.log(data, "isi data2"); if (idData !== "") { modalLoader.setLoading(true); try { isChangePassword ? await store.partner.updatePassword(idData, data) : await store.partner.update(idData, data); modalLoader.setLoading(false); message.success( isChangePassword ? "Success Change Password" : "Success Update Data Partner" ); //await store.partner.getData() } catch (e) { modalLoader.setLoading(false); message.error( isChangePassword ? "Failed Change Password" : "Failed Update Data Partner" ); } store.partner.visibleModalPartner = false; setIdData(""); form.resetFields(); } else { modalLoader.setLoading(true); try { const response = await store.partner.create(data); modalLoader.setLoading(false); response?.body?.statusCode === 201 || response?.body?.statusCode === 200 ? message.success( response?.body?.message || "Berhasil Tambah Partner" ) : message.error(response?.body?.message || "Gagal Tambah Partner"); } catch (e) { console.log(e, "apa errornya"); message.error(e.response?.body?.message || "Gagal Tambah Partner"); } modalLoader.setLoading(false); store.partner.visibleModalPartner = false; setIdData(""); form.resetFields(); } }; return (
{store.ui.mediaQuery.isDesktop && ( { let pageNumber = page.current; store.partner.pageSize = page.pageSize; store.partner.page = pageNumber - 1; modalLoader.setLoading(true); await store.partner.getData(); modalLoader.setLoading(false); }} /> )} {store.ui.mediaQuery.isMobile && ( { store.partner.pageSize = pageSize; store.partner.page = page - 1; modalLoader.setLoading(true); await store.partner.getData(); modalLoader.setLoading(false); }, pageSize: store.partner.pageSize, total: store.partner.total_data, current: store.partner.page + 1, style: { marginBottom: "1rem", marginRight: "1rem" }, }} dataSource={store.partner.data} style={{ padding: 0 }} renderItem={(item) => { return (

Nama : {item.name}
Npwp : {item.npwp}
Alamat : {item.address}
{/* */}

} />

{item?.status === true ? " ACTIVE" : "INACTIVE"}

); }} /> )} { form.resetFields(); handleCancel(); }} onOk={() => { form .validateFields() .then((values) => { console.log(values, "isi form"); handleSubmit(values); form.resetFields(); }) .catch((info) => { console.error("Validate Failed:", info); }); }} >
{!isChangePassword && ( )} {!idData && ( )} {!idData && ( )} {((idData && isChangePassword) || !idData) && ( )} {!idData && ( { setValue(value); }} /> )} {!isChangePassword && ( <> )}
); });