import React, { useContext, useEffect, useState } from "react"; import { Button, Card, Col, Row, Table, Typography, DatePicker, Modal, Form, Input, } from "antd"; import moment from "moment"; import { BreadcumbComponent } from "../../component/BreadcumbComponent"; import { LINKS } from "../../routes/app"; import { useStore } from "../../utils/useStore"; import { observer } from "mobx-react-lite"; import { FilterOutlined } from "@ant-design/icons"; import { format, parseISO } from "date-fns"; import { ModalLoaderContext } from "../../utils/modal"; const { Title, Text } = Typography; const { RangePicker } = DatePicker; export const Profile = observer(() => { const store = useStore(); const [form] = Form.useForm(); const modalLoader = useContext(ModalLoaderContext); const [filterStart, setFilterStart] = useState([]); const [filterEnd, setFilterEnd] = useState([]); const routeData = [ { route: LINKS.HOME, name: "Home", }, { route: LINKS.PROFILE, name: Profil, }, ]; useEffect(() => { (async () => { modalLoader.setLoading(true); await Promise.allSettled([ store.authentication.getProfile(), store.transaction.getDataHistoryTransaction(), ]); modalLoader.setLoading(false); })(); }, []); const handleRemoveFilter = async () => { store.transaction.filterStart = null; store.transaction.filterEnd = null; form.resetFields(); setFilterStart([]); setFilterEnd([]); await store.transaction.getDataHistoryTransaction(); store.transaction.visibleModalFilterTransaction = false; }; const handleCancelFilter = () => { store.transaction.filterStart = null; form.resetFields(); store.transaction.filterEnd = null; store.transaction.visibleModalFilterTransaction = false; }; const handleSubmitFilter = async () => { const data = form.getFieldsValue(); store.transaction.filterStart = data.start_date; store.transaction.filterEnd = data.end_date; modalLoader.setLoading(true); await store.transaction.getDataHistoryTransaction(); modalLoader.setLoading(false); form.resetFields(); store.transaction.visibleModalFilterTransaction = false; }; const footerLayoutFilter = [ , , , ]; const columns = [ { title: "Price", dataIndex: "price", key: "price", render: (text) => new Intl.NumberFormat("id-ID", { style: "currency", currency: "IDR", }).format(text), }, { title: "Pembeli", dataIndex: "buyer", key: "buyer", }, { title: "Tujuan", dataIndex: "transaction_destination", key: "transaction_destination", }, { title: "Kode Transaksi", dataIndex: "transaction_code", key: "transaction_code", }, { title: "Status", dataIndex: "status", key: "status", }, { title: "No Seri", dataIndex: "seri_number", key: "seri_number", }, { title: "IDTrx Mitra", dataIndex: "partner_transaction_code", key: "partner_transaction_code", }, { title: "Transaction Date", dataIndex: "created_at", key: "created_at", render: (text, record) => { return {format(parseISO(record.created_at), "dd-MM-yyyy")}; }, }, ]; const styleSaldoTitle = store.ui.mediaQuery.isDesktop ? { display: "flex", justifyContent: "center", } : { fontSize: "0.75rem" }; const styleSaldoContent = store.ui.mediaQuery.isDesktop ? { fontSize: "1.25rem", display: "flex", justifyContent: "center", } : null; return (
Profile Name {store.authentication.profileData?.userDetail?.name} Phone Number {store.authentication.profileData?.userDetail?.phone_number} Username {store.authentication.profileData?.username} Role {store.authentication.profileData.roles?.name} Superior {store.authentication.profileData.superior?.username} Saldo {new Intl.NumberFormat("id-ID", { style: "currency", currency: "IDR", }).format(store.authentication.profileData?.wallet || 0)} {store.authentication.userData.role === "Admin" || (store.authentication.userData.role === "Supervisor" && ( Profit {new Intl.NumberFormat("id-ID", { style: "currency", currency: "IDR", }).format(store.authentication.profileData?.profit || 0)} ))}
History Transaction { let pageNumber = page.current; store.transaction.pageSizeHistoryTransaction = page.pageSize; store.transaction.pageHistoryTransaction = pageNumber - 1; modalLoader.setLoading(true); await store.transaction.getDataHistoryTransaction(); modalLoader.setLoading(false); }} />
{ form.resetFields(); store.transaction.visibleModalFilterTransaction = false; }} >
); });