import React from 'react'; import intl from 'react-intl-universal'; import { Button } from '@blueprintjs/core'; import { getColumnWidth } from 'utils'; import { If, Icon, FormattedMessage as T } from 'components'; import { CellTextSpan } from 'components/Datatable/Cells'; import { useTrialBalanceSheetContext } from './TrialBalanceProvider'; import FinancialLoadingBar from '../FinancialLoadingBar'; /** * Retrieve trial balance sheet table columns. */ export const useTrialBalanceTableColumns = () => { // Trial balance sheet context. const { trialBalanceSheet: { tableRows }, } = useTrialBalanceSheetContext(); return React.useMemo( () => [ { Header: intl.get('account_name'), accessor: (row) => (row.code ? `${row.name} - ${row.code}` : row.name), className: 'name', width: 350, textOverview: true, }, { Header: intl.get('credit'), Cell: CellTextSpan, accessor: 'formatted_credit', className: 'credit', width: getColumnWidth(tableRows, `credit`, { minWidth: 80, }), textOverview: true, }, { Header: intl.get('debit'), Cell: CellTextSpan, accessor: 'formatted_debit', width: getColumnWidth(tableRows, `debit`, { minWidth: 80 }), textOverview: true, }, { Header: intl.get('balance'), Cell: CellTextSpan, accessor: 'formatted_balance', className: 'balance', width: getColumnWidth(tableRows, `balance`, { minWidth: 80, }), textOverview: true, }, ], [tableRows], ); }; /** * Trial balance sheet progress loading bar. */ export function TrialBalanceSheetLoadingBar() { const { isFetching } = useTrialBalanceSheetContext(); return ( ); } /** * Trial balance sheet alerts. */ export function TrialBalanceSheetAlerts() { const { trialBalanceSheet: { meta }, isLoading, refetchSheet, } = useTrialBalanceSheetContext(); // Handle refetch the sheet. const handleRecalcReport = () => { refetchSheet(); }; // Can't display any error if the report is loading. if (isLoading) { return null; } return (
); }