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 [idData, setIdData] = useState(""); const modalLoader = useContext(ModalLoaderContext); useEffect(() => { getData(); }, []); const getData = async () => { await store.category.getData(); await store.subcategory.getData(); }; const handleEditButton = (data) => { console.log(data, "isi data"); form.setFieldsValue({ code: data.code, name: data.name, categoryId: data.categoryId, }); store.subcategory.visibleModalSubcategory = true; setIdData(data.id); }; const columns = [ { title: "Code", dataIndex: "code", key: "code", }, { title: "Sub Category Name", dataIndex: "name", key: "name", }, { title: "Category", dataIndex: "categoryName", key: "categoryName", }, { title: "Tindakan", key: "action", render: (text, record) => ( ), }, ]; const handleCancel = () => { setIdData(""); store.subcategory.visibleModalSubcategory = false; }; const handleSubmit = async (data) => { console.log(data, "isi data2"); if (idData !== "") { modalLoader.setLoading(true); try { const response = await store.subcategory.update(idData, data); response?.body?.statusCode === 201 || response?.body?.statusCode === 200 ? message.success( response?.body?.message || "Berhasil Ubah Data Sub Kategori" ) : message.error( response?.body?.message || "Gagal Ubah Data Sub Kategori" ); await getData(); } catch (e) { message.error( e.response?.body?.message || "Gagal Ubah Data Sub Kategori" ); } modalLoader.setLoading(false); store.subcategory.visibleModalSubcategory = false; setIdData(""); form.resetFields(); } else { modalLoader.setLoading(true); try { const response = await store.subcategory.create(data); response?.body?.statusCode === 201 || response?.body?.statusCode === 200 ? message.success( response?.body?.message || "Berhasil Tambah Sub Kategori" ) : message.error( response?.body?.message || "Gagal Tambah Sub Kategori" ); await getData(); } catch (e) { console.log(e, "apa errornya"); message.error(e.response?.body?.message || "Gagal Tambah Sub Kategori"); } modalLoader.setLoading(false); store.subcategory.visibleModalSubcategory = false; setIdData(""); form.resetFields(); } }; return (
{store.ui.mediaQuery.isDesktop && ( { let pageNumber = page.current; store.subcategory.pageSize = page.pageSize; store.subcategory.page = pageNumber - 1; modalLoader.setLoading(true); await getData(); modalLoader.setLoading(false); }} /> )} {store.ui.mediaQuery.isMobile && ( { store.subcategory.pageSize = pageSize; store.subcategory.page = page - 1; modalLoader.setLoading(true); await store.subcategory.getData(); modalLoader.setLoading(false); }, pageSize: store.subcategory.pageSize, total: store.subcategory.total_data, current: store.subcategory.page + 1, style: { marginBottom: "1rem", marginRight: "1rem" }, }} dataSource={store.subcategory.data} style={{ padding: 0 }} renderItem={(item) => { return (

Sub Category : {item.name}
Category : {item.categoryName}

} />

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