import React, { useEffect, useCallback, useState, useMemo } from 'react'; import { Intent, Button, Popover, Menu, MenuItem, MenuDivider, Position, } from '@blueprintjs/core'; import { useParams } from 'react-router-dom'; import Icon from 'components/Icon'; import { compose } from 'utils'; import moment from 'moment'; import ManualJournalsConnect from 'connectors/ManualJournals.connect'; import DialogConnect from 'connectors/Dialog.connector'; import DashboardConnect from 'connectors/Dashboard.connector'; import ViewConnect from 'connectors/View.connector'; import { useUpdateEffect } from 'hooks'; import DataTable from 'components/DataTable'; import Money from 'components/Money'; function ManualJournalsDataTable({ manualJournals, changeCurrentView, changePageSubtitle, getViewItem, setTopbarEditView, manualJournalsLoading, onFetchData, onEditJournal, onDeleteJournal, onPublishJournal, onSelectedRowsChange, }) { const { custom_view_id: customViewId } = useParams(); const [initialMount, setInitialMount] = useState(false); useUpdateEffect(() => { if (!manualJournalsLoading) { setInitialMount(true); } }, [manualJournalsLoading, setInitialMount]); useEffect(() => { const viewMeta = getViewItem(customViewId); if (customViewId) { changeCurrentView(customViewId); setTopbarEditView(customViewId); } changePageSubtitle(customViewId && viewMeta ? viewMeta.name : ''); }, [ customViewId, changeCurrentView, changePageSubtitle, setTopbarEditView, getViewItem, ]); const handlePublishJournal = useCallback((journal) => () => { onPublishJournal && onPublishJournal(journal); }, [onPublishJournal]); const handleEditJournal = useCallback((journal) => () => { onEditJournal && onEditJournal(journal); }, [onEditJournal]); const handleDeleteJournal = useCallback((journal) => () => { onDeleteJournal && onDeleteJournal(journal); }, [onDeleteJournal]); const actionMenuList = (journal) => (
); const columns = useMemo(() => [ { id: 'date', Header: 'Date', accessor: r => moment().format('YYYY-MM-DD'), disableResizing: true, width: 150, className: 'date', }, { id: 'amount', Header: 'Amount', accessor: r => (