import React, { useContext, useEffect, useState } from "react"; import { Button, Card, Col, Row, Table, Typography, Tag, Space, message, } from "antd"; import { BreadcumbComponent } from "../../component/BreadcumbComponent"; import { LINKS } from "../../routes/app"; import { useStore } from "../../utils/useStore"; import { observer } from "mobx-react-lite"; import { FilterOutlined, DownloadOutlined } from "@ant-design/icons"; import { format, parseISO } from "date-fns"; import { ModalLoaderContext } from "../../utils/modal"; import { useParams } from "react-router-dom"; import { MembershipModal } from "./MembershipModal"; const {Title, Text} = Typography; export const DetailUser = observer(() => { const store = useStore(); const modalLoader = useContext(ModalLoaderContext); const {id} = useParams(); const [visibleModal, setVisibleModal] = useState(false); const [isVisibleTopUpModal, setIsVisibleTopUpModal] = useState(false); const [destination, setDestination] = useState(null); const [initialData, setInitialData] = useState({}); const [confirmLoading, setConfirmLoading] = useState(false); useEffect(() => { (async () => { modalLoader.setLoading(true); await getData(); await Promise.allSettled([ store.transaction.getDataHistoryTopUp(id), store.membership.getDetail(id), ]); modalLoader.setLoading(false); })(); }, []); const getData = async () => { store.authentication.userData.role === "Admin" ? await store.membership.getData() : await store.membership.getDataBySuperior(); }; const changeStatus = async (id, isActive) => { const status = isActive ? "inactive" : "active"; const status2 = isActive ? "Inactivating" : "Activating"; try { modalLoader.setLoading(true); const response = await store.membership.changeStatus(id, status); modalLoader.setLoading(false); response?.body?.statusCode === 201 ? message.success(`Success ${status2} Membership`) : message.error(`Failed ${status2} Membership`); await getData(); } catch (err) { modalLoader.setLoading(false); message.error(`Failed ${status2} Membership`); } }; const onSubmit = async (data) => { data.superior = true; if (initialData.id) { setConfirmLoading(true); modalLoader.setLoading(true); try { await store.membership.update(initialData.id, data); message.success( initialData.isChangePassword ? "Success Change Member Password" : "Success Update Data Member" ); await getData(); modalLoader.setLoading(false); } catch (e) { modalLoader.setLoading(true); message.error( initialData.isChangePassword ? "Failed Update Member Password" : "Failed Update Data Member" ); } setConfirmLoading(false); setVisibleModal(false); } else { setConfirmLoading(true); modalLoader.setLoading(true); try { await store.membership.create(data); message.success("Success Add New Member"); await getData(); } catch (e) { console.log(e, "apa errornya"); message.error("Failed Add Member"); } modalLoader.setLoading(false); setConfirmLoading(false); setVisibleModal(false); setInitialData({}); } }; const columns = [ { title: "Amount", dataIndex: "amount", key: "amount", }, { title: "Transaction Date", dataIndex: "transaction_date", key: "transaction_date", render: (text, record) => { return ( {format(parseISO(record.transaction_date), "dd MMMM yyyy ")} ); }, }, { title: "Status", dataIndex: "isActive", key: "isActive", render: (text, record) => ( {record?.isActive === true ? " ACTIVE" : "INACTIVE"} ), }, { title: "Action", key: "action", render: (text, record) => ( {/* {store.authentication.userData.role === "Admin" && */} {/* } */} {/* {store.authentication.userData.role === "Admin" && */} {/* } {store.authentication.userData.role === "Admin" && */} {/* } */} ), }, ]; const routeData = [ { route: LINKS.HOME, name: "Home", }, { route: LINKS.MEMBERSHIP, name: Keanggotaan, }, { route: LINKS.USER_DETAIL, name: Detail User, }, ]; return (
Detail User Name {store.membership.dataDetail.userDetail?.name} Username {store.membership.dataDetail.superior?.username} Role {store.membership.dataDetail.roles?.name} Phone Number {store.membership.dataDetail.userDetail?.phone_number} Status {store.membership.dataDetail.isActive === true ? "Aktif" : "Inaktif"} {/* Saldo {store.transaction?.data.amount} */}
History Top Up {/* */}
{/* { form.resetFields(); handleCancelTransaction(); }} onOk={() => { form .validateFields() .then((values) => { console.log(values, "isi form"); handleSubmitTransaction(values); form.resetFields(); }) .catch((info) => { console.error("Validate Failed:", info); }); }} >
`Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") } parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} />
*/} { onSubmit(data); }} onCancel={() => { setInitialData({}); setVisibleModal(false); }} />
); });