refactor(TrialBalanceSheet): refactor with body sheet.

This commit is contained in:
a.bouhuolia
2022-02-10 11:44:50 +02:00
parent 83cd7ca893
commit 1f81fd213d
4 changed files with 61 additions and 26 deletions

View File

@@ -3,20 +3,21 @@ import moment from 'moment';
import 'style/pages/FinancialStatements/TrialBalanceSheet.scss'; import 'style/pages/FinancialStatements/TrialBalanceSheet.scss';
import { FinancialStatement } from 'components';
import { TrialBalanceSheetProvider } from './TrialBalanceProvider'; import { TrialBalanceSheetProvider } from './TrialBalanceProvider';
import TrialBalanceActionsBar from './TrialBalanceActionsBar'; import TrialBalanceActionsBar from './TrialBalanceActionsBar';
import TrialBalanceSheetHeader from './TrialBalanceSheetHeader'; import TrialBalanceSheetHeader from './TrialBalanceSheetHeader';
import TrialBalanceSheetTable from './TrialBalanceSheetTable';
import DashboardPageContent from 'components/Dashboard/DashboardPageContent'; import DashboardPageContent from 'components/Dashboard/DashboardPageContent';
import { import {
TrialBalanceSheetAlerts, TrialBalanceSheetAlerts,
TrialBalanceSheetLoadingBar, TrialBalanceSheetLoadingBar,
} from './components'; } from './components';
import { TrialBalanceSheetBody } from './TrialBalanceSheetBody';
import withTrialBalanceActions from './withTrialBalanceActions'; import withTrialBalanceActions from './withTrialBalanceActions';
import withCurrentOrganization from '../../Organization/withCurrentOrganization';
import { getDefaultTrialBalanceQuery } from './utils';
import { compose } from 'utils'; import { compose } from 'utils';
/** /**
@@ -30,10 +31,7 @@ function TrialBalanceSheet({
toggleTrialBalanceFilterDrawer: toggleFilterDrawer, toggleTrialBalanceFilterDrawer: toggleFilterDrawer,
}) { }) {
const [filter, setFilter] = useState({ const [filter, setFilter] = useState({
fromDate: moment().startOf('year').format('YYYY-MM-DD'), ...getDefaultTrialBalanceQuery(),
toDate: moment().endOf('year').format('YYYY-MM-DD'),
basis: 'accural',
filterByOption: 'with-transactions',
}); });
// Handle filter form submit. // Handle filter form submit.
@@ -56,7 +54,6 @@ function TrialBalanceSheet({
numberFormat, numberFormat,
}); });
}; };
// Hide the filter drawer once the page unmount. // Hide the filter drawer once the page unmount.
useEffect( useEffect(
() => () => { () => () => {
@@ -75,23 +72,16 @@ function TrialBalanceSheet({
<TrialBalanceSheetAlerts /> <TrialBalanceSheetAlerts />
<DashboardPageContent> <DashboardPageContent>
<div class="financial-statement"> <FinancialStatement>
<TrialBalanceSheetHeader <TrialBalanceSheetHeader
pageFilter={filter} pageFilter={filter}
onSubmitFilter={handleFilterSubmit} onSubmitFilter={handleFilterSubmit}
/> />
<div class="financial-statement__body"> <TrialBalanceSheetBody />
<TrialBalanceSheetTable companyName={organizationName} /> </FinancialStatement>
</div>
</div>
</DashboardPageContent> </DashboardPageContent>
</TrialBalanceSheetProvider> </TrialBalanceSheetProvider>
); );
} }
export default compose( export default compose(withTrialBalanceActions)(TrialBalanceSheet);
withTrialBalanceActions,
withCurrentOrganization(({ organization }) => ({
organizationName: organization.name,
})),
)(TrialBalanceSheet);

View File

@@ -0,0 +1,36 @@
import React from 'react';
import * as R from 'ramda';
import { FinancialSheetSkeleton } from 'components';
import { FinancialReportBody } from '../FinancialReportPage';
import TrialBalanceSheetTable from './TrialBalanceSheetTable';
import { useTrialBalanceSheetContext } from './TrialBalanceProvider';
import withCurrentOrganization from '../../Organization/withCurrentOrganization';
/**
* Trial balance sheet body.
* @returns {React.JSX}
*/
function TrialBalanceSheetBodyJSX({
// #withCurrentOrganization
organizationName,
}) {
const { isLoading } = useTrialBalanceSheetContext();
return (
<FinancialReportBody>
{isLoading ? (
<FinancialSheetSkeleton />
) : (
<TrialBalanceSheetTable companyName={organizationName} />
)}
</FinancialReportBody>
);
}
export const TrialBalanceSheetBody = R.compose(
withCurrentOrganization(({ organization }) => ({
organizationName: organization.name,
})),
)(TrialBalanceSheetBodyJSX);

View File

@@ -6,22 +6,20 @@ import { DataTable, FinancialSheet } from 'components';
import { useTrialBalanceSheetContext } from './TrialBalanceProvider'; import { useTrialBalanceSheetContext } from './TrialBalanceProvider';
import { useTrialBalanceTableColumns } from './components'; import { useTrialBalanceTableColumns } from './components';
import { TableStyle } from 'common';
/** /**
* Trial Balance sheet data table. * Trial Balance sheet data table.
*/ */
export default function TrialBalanceSheetTable({ export default function TrialBalanceSheetTable({ companyName }) {
companyName,
}) {
// Trial balance sheet context. // Trial balance sheet context.
const { const {
trialBalanceSheet: { tableRows, query }, trialBalanceSheet: { tableRows, query },
isLoading isLoading,
} = useTrialBalanceSheetContext(); } = useTrialBalanceSheetContext();
// Trial balance sheet table columns. // Trial balance sheet table columns.
const columns = useTrialBalanceTableColumns();; const columns = useTrialBalanceTableColumns();
const rowClassNames = (row) => { const rowClassNames = (row) => {
const { original } = row; const { original } = row;
@@ -48,7 +46,6 @@ export default function TrialBalanceSheetTable({
basis={'cash'} basis={'cash'}
> >
<DataTable <DataTable
className="bigcapital-datatable--financial-report"
columns={columns} columns={columns}
data={tableRows} data={tableRows}
expandable={true} expandable={true}
@@ -56,6 +53,7 @@ export default function TrialBalanceSheetTable({
expandColumnSpace={1} expandColumnSpace={1}
sticky={true} sticky={true}
rowClassNames={rowClassNames} rowClassNames={rowClassNames}
styleName={TableStyle.Constrant}
/> />
</FinancialSheet> </FinancialSheet>
); );

View File

@@ -0,0 +1,11 @@
import moment from 'moment';
export function getDefaultTrialBalanceQuery() {
return {
fromDate: moment().startOf('year').format('YYYY-MM-DD'),
toDate: moment().endOf('year').format('YYYY-MM-DD'),
basis: 'accural',
filterByOption: 'with-transactions',
};
}