import React, {useEffect, useState} from "react"; import {Button, Form, Input, message, Modal, Select, Space, Table, Tag} from "antd"; import {observer} from "mobx-react-lite"; import {ExclamationCircleOutlined} from "@ant-design/icons"; import {useHistory} from "react-router-dom"; import {capitalize} from "lodash"; import {useStore} from "../utils/useStore"; import {LINKS} from "../routes/app"; export const ProductComponent = observer((props) => { const store = useStore(); const [form] = Form.useForm(); const {Option} = Select; const history = useHistory(); const [idData, setIdData] = useState(''); const [confirmLoading, setConfirmLoading] = useState(false); const [isLoading, setIsLoading] = useState(false); useEffect(() => { const init = async () => { try { setIsLoading(true); //store.product.pageCategories=StrToLower(props.category) await store.product.getDataSubCategories(); setIsLoading(false); } catch (e) { setIsLoading(false); } }; init(); }, []); const handleEditButton = (data) => { console.log(data, "isi data") form.setFieldsValue({ name: data.name, price: data.price, markUpPrice: data.basePrice, code: data.code, status: data.status, subCategoriesId: data.sub_categories.id, }); store.product.visibleModalProduct = true; setIdData(data.id); } const columns = [ { title: "Kode", dataIndex: "code", key: "code", }, { title: "Produk", dataIndex: "name", key: "name", }, { title: "Harga Beli", dataIndex: "price", key: "price", }, { title: "Harga Jual", dataIndex: "basePrice", key: "basePrice", }, { title: "Gangguan", dataIndex: "status", key: "status", render: (text, record) => ( {capitalize(record?.status)} ), }, { title: "Tersedia", dataIndex: "tersedia", key: "tersedia", render: (text, record) => ( {record?.status === "ACTIVE" ? " Ya" : "Tidak"} ), }, { title: "Action", key: "action", render: (text, record) => ( ), }, ]; const deleteData = async (id) => { try { console.log(id); await store.product.delete(id); message.success("Data Berhasil Dihapus"); history.push(LINKS.PRODUCT); } 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: "Cancel", onOk() { return deleteData(id); }, onCancel() { console.log("Cancel"); }, }); }; const handleCancel = () => { setIdData('') store.product.visibleModalProduct = false; } const handleSubmit = async (data) => { console.log(data, "isi data2") if (idData !== '') { setConfirmLoading(true); try { await store.product.update(idData, data) message.success("Success Update Data Member") } catch (e) { message.error("Failed Update Data Member") } setConfirmLoading(false); store.product.visibleModalProduct = false; setIdData(''); form.resetFields(); } else { setConfirmLoading(true); try { await store.product.create(data) message.success("Success Add New Member") } catch (e) { console.log(e, "apa errornya") message.error("Failed Add Member") } setConfirmLoading(false); store.product.visibleModalProduct = false; setIdData(''); form.resetFields(); } } return (
{ let pageNumber = page.current; store.product.pageSize = page.pageSize; store.product.page = pageNumber - 1; // store.membership.isLoading = true; await store.product.getData(); // store.membership.isLoading = false; }} /> { form.resetFields(); handleCancel(); }} onOk={() => { form .validateFields() .then((values) => { console.log(values, "isi form") handleSubmit(values); form.resetFields(); }) .catch((info) => { console.error("Validate Failed:", info); }); }} >
); });