import React, { useContext, useEffect, useState } from "react";
import {
Button,
Card,
Col,
Divider,
Image,
Input,
List,
message,
Modal,
Row,
Space,
Table,
Tag,
Select,
Typography,
DatePicker,
Form,
Divinder,
} from "antd";
import { useStore } from "../../utils/useStore";
import { observer } from "mobx-react-lite";
import {
CheckCircleOutlined,
CheckOutlined,
CloseOutlined,
FilterOutlined,
StopOutlined,
} from "@ant-design/icons";
import { BreadcumbComponent } from "../../component/BreadcumbComponent";
import { LINKS } from "../../routes/app";
import { ModalLoaderContext } from "../../utils/modal";
import { appConfig } from "../../config/app";
import { capitalize } from "lodash";
import { PAYBACK_STATUS } from "../../constants/payback";
import moment from "moment";
import { useHistory } from "react-router-dom";
export const Konfirmasi = observer(() => {
const history = useHistory();
const { Option } = Select;
const { Title } = Typography;
const [form] = Form.useForm();
const store = useStore();
const modalLoader = useContext(ModalLoaderContext);
const [filterMembership, setFilterMembership] = useState([]);
const [filterSubCategories, setFilterSubCategories] = useState([]);
const [visibleModalToko, setVisibleModalToko] = useState(false);
const [VisibleModalIdentitas, setVisibleModalIdentitas] = useState(false);
const [toko, setToko] = useState({});
const [identitas, setIdentitas] = useState({});
useEffect(() => {
const init = async () => {
try {
modalLoader.setLoading(true);
await store.approval.getData();
modalLoader.setLoading(false);
} catch (e) {
modalLoader.setLoading(false);
if (e.response?.body?.message) {
message.error(e.response.body.message);
return;
}
message.error(e.message);
}
};
init();
}, []);
const columns = [
{
title: "Name",
dataIndex: "username",
key: "username",
},
{
title: "Foto Identitas",
dataIndex: ["user_detail", "image_identity"],
key: "user_detail.image_identity",
render: (text, record) => (
),
},
{
title: "Foto Toko",
dataIndex: "image_prove",
key: "image_prove",
render: (text, record) => (
),
},
{
title: "Action",
dataIndex: "amount",
key: "action",
width: "10%",
render: (text, record) =>
record.is_active === false ? (
) : (
{record.is_active === false ? "Tidak Aktif" : "Aktif"}
),
},
];
if (store.authentication.userData.role === "Retail") columns.pop();
const routeData = [
{
route: LINKS.HOME,
name: "Beranda",
},
{
route: LINKS.KONFIRMASI,
name: Konfirmasi Retail,
},
];
const dataRoute = [
{
route: LINKS.PAYBACK,
name: "Konfirmasi Retail",
},
];
const handleApprove = async (id) => {
modalLoader.setLoading(true);
try {
const response = await store.approval.approveUser(id);
console.log(response);
response.body.statusCode !== 201 && response.body.statusCode !== 200
? message.error(response?.body?.message || `Failed Approve`)
: message.success(response?.body?.message || `Success Approve`);
} catch (e) {
console.error(e, "apa errornya");
message.error(e.response?.body?.message || "Fail Approve");
}
modalLoader.setLoading(false);
};
const handleReject = async (id) => {
modalLoader.setLoading(true);
try {
const response = await store.approval.rejectUser(id);
console.log(response);
response.body.statusCode !== 201 && response.body.statusCode !== 200
? message.error(response?.body?.message || `Failed Reject`)
: message.success(response?.body?.message || `Success Reject`);
} catch (e) {
console.error(e, "apa errornya");
message.error(e.response?.body?.message || "Fail Approve");
}
modalLoader.setLoading(false);
};
return (
{store.ui.mediaQuery.isDesktop && (
{
let pageNumber = page.current;
store.approval.pageSize = page.pageSize;
store.approval.page = pageNumber - 1;
modalLoader.setLoading(true);
await store.approval.getData();
modalLoader.setLoading(false);
}}
/>
)}
{store.ui.mediaQuery.isMobile && (
{
store.approval.pageSize = page.pageSize;
store.approval.page = page.current - 1;
modalLoader.setLoading(true);
await store.approval.getData();
modalLoader.setLoading(false);
},
pageSize: store.approval.pageSize,
total: store.approval.total_data,
current: store.approval.page + 1,
style: { marginBottom: "1rem", marginRight: "1rem" },
}}
dataSource={store.approval.data}
style={{ padding: 0 }}
renderItem={(item) => {
return (
Username: {item.username}
{item.is_active === false ? (
) : (
{item.is_active === false
? "Tidak Aktif"
: "Aktif"}
)}
}
/>
);
}}
/>
)}
{
form.resetFields();
setVisibleModalToko(false);
setVisibleModalIdentitas(false);
}}
width={1000}
footer={false}
>
{visibleModalToko === true ? (
{JSON.parse(toko.user_detail.image_store).map((gmbr, idx) => (
))}
) : (
)}
);
});