diff --git a/src/components/Datatable/TableSkeletonRows.js b/src/components/Datatable/TableSkeletonRows.js
index cf1d74e89..cf58e635d 100644
--- a/src/components/Datatable/TableSkeletonRows.js
+++ b/src/components/Datatable/TableSkeletonRows.js
@@ -1,4 +1,5 @@
import React, { useContext } from 'react';
+import clsx from 'classnames';
import TableContext from './TableContext';
import { Skeleton } from 'components';
@@ -11,7 +12,13 @@ function TableHeaderCell({ column }) {
return (
diff --git a/src/components/FinancialReport/index.js b/src/components/FinancialReport/index.js
new file mode 100644
index 000000000..50b418c3f
--- /dev/null
+++ b/src/components/FinancialReport/index.js
@@ -0,0 +1,23 @@
+import React from 'react';
+import styled from 'styled-components';
+
+const FinancialStatementRoot = styled.div``;
+const FinancialStatementBodyRoot = styled.div``;
+
+/**
+ *
+ * @returns {React.JSX}
+ */
+export function FinancialReport({ children, className }) {
+ return
;
+}
+
+/**
+ *
+ * @param {React.JSX}
+ */
+export function FinancialReportBody({ children, className }) {
+ return (
+
+ );
+}
diff --git a/src/components/FinancialSheet.js b/src/components/FinancialSheet.js
deleted file mode 100644
index 389272c4c..000000000
--- a/src/components/FinancialSheet.js
+++ /dev/null
@@ -1,101 +0,0 @@
-import React, { useMemo, useCallback } from 'react';
-import moment from 'moment';
-import classnames from 'classnames';
-import { FormattedMessage as T } from 'components';
-import intl from 'react-intl-universal';
-
-import { If, LoadingIndicator, MODIFIER } from 'components';
-
-export default function FinancialSheet({
- companyName,
- sheetType,
- fromDate,
- toDate,
- asDate,
- children,
- accountingBasis,
- name,
- loading,
- className,
- basis,
- minimal = false,
- fullWidth = false,
- currentDate = true,
-}) {
-
- const format = 'DD MMMM YYYY';
- const formattedFromDate = useMemo(() => moment(fromDate).format(format), [
- fromDate,
- ]);
- const formattedToDate = useMemo(() => moment(toDate).format(format), [
- toDate,
- ]);
- const formattedAsDate = useMemo(() => moment(asDate).format(format), [
- asDate,
- ]);
-
- const nameModifer = name ? `financial-sheet--${name}` : '';
- const methodsLabels = useMemo(
- () => ({
- cash: intl.get('cash'),
- accrual: intl.get('accrual'),
- }),
- [],
- );
- const getBasisLabel = useCallback((b) => methodsLabels[b], [methodsLabels]);
- const basisLabel = useMemo(() => getBasisLabel(basis), [
- getBasisLabel,
- basis,
- ]);
-
- return (
-
- {loading ? (
-
- ) : (
-
-
- {companyName}
-
-
-
- {sheetType}
-
-
-
-
- {formattedAsDate}
-
-
-
- {formattedFromDate} | {' '}
- {formattedToDate}
-
-
-
-
{children}
-
{accountingBasis}
-
-
-
- )}
-
- );
-}
diff --git a/src/components/FinancialSheet/FinancialSheet.js b/src/components/FinancialSheet/FinancialSheet.js
new file mode 100644
index 000000000..329005948
--- /dev/null
+++ b/src/components/FinancialSheet/FinancialSheet.js
@@ -0,0 +1,95 @@
+import React, { useMemo, useCallback } from 'react';
+import moment from 'moment';
+import intl from 'react-intl-universal';
+
+import { If, FormattedMessage as T } from 'components';
+import {
+ FinancialSheetRoot,
+ FinancialSheetFooterCurrentTime,
+ FinancialSheetFooterBasis,
+ FinancialSheetFooter,
+ FinancialSheetAccountingBasis,
+ FinancialSheetTable,
+ FinancialSheetDate,
+ FinancialSheetType,
+ FinancialSheetTitle,
+} from './StyledFinancialSheet';
+
+/**
+ * Financial sheet.
+ * @returns {React.JSX}
+ */
+export function FinancialSheet({
+ companyName,
+ sheetType,
+ fromDate,
+ toDate,
+ asDate,
+ children,
+ accountingBasis,
+ basis,
+ minimal = false,
+ fullWidth = false,
+ currentDate = true,
+}) {
+ const format = 'DD MMMM YYYY';
+ const formattedFromDate = useMemo(
+ () => moment(fromDate).format(format),
+ [fromDate],
+ );
+ const formattedToDate = useMemo(
+ () => moment(toDate).format(format),
+ [toDate],
+ );
+ const formattedAsDate = useMemo(
+ () => moment(asDate).format(format),
+ [asDate],
+ );
+ const methodsLabels = useMemo(
+ () => ({
+ cash: intl.get('cash'),
+ accrual: intl.get('accrual'),
+ }),
+ [],
+ );
+ const getBasisLabel = useCallback((b) => methodsLabels[b], [methodsLabels]);
+ const basisLabel = useMemo(
+ () => getBasisLabel(basis),
+ [getBasisLabel, basis],
+ );
+
+ return (
+
+ {companyName && {companyName}}
+ {sheetType && {sheetType}}
+
+
+
+ {formattedAsDate}
+
+
+ {formattedFromDate} | {' '}
+ {formattedToDate}
+
+
+
+ {children}
+
+ {accountingBasis}
+
+
+
+ {basisLabel && (
+
+ {basisLabel}
+
+ )}
+ {currentDate && (
+
+ {moment().format('YYYY MMM DD HH:MM')}
+
+ )}
+
+
+ );
+}
diff --git a/src/components/FinancialSheet/FinancialSheetSkeleton.js b/src/components/FinancialSheet/FinancialSheetSkeleton.js
new file mode 100644
index 000000000..8feb034b5
--- /dev/null
+++ b/src/components/FinancialSheet/FinancialSheetSkeleton.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import styled from 'styled-components';
+
+import { Align } from 'common';
+import { SkeletonText, DataTable } from 'components';
+
+import TableSkeletonRows from 'components/Datatable/TableSkeletonRows';
+import TableSkeletonHeader from 'components/Datatable/TableHeaderSkeleton';
+import { TableStyle } from 'common';
+import {
+ FinancialSheetRoot,
+ FinancialSheetTitle,
+ FinancialSheetType,
+ FinancialSheetDate,
+ FinancialSheetTable,
+} from './StyledFinancialSheet';
+
+/**
+ * Financial sheet paper skeleton.
+ * @returns {React.JSX}
+ */
+export function FinancialSheetSkeleton({
+ minimal,
+ fullWidth,
+ titleCharsLength,
+ typeCharsLength,
+ dateCharsLength,
+ skeletonTableColumns,
+}) {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+FinancialSheetSkeleton.defaultProps = {
+ titleCharsLength: 20,
+ typeCharsLength: 40,
+ dateCharsLength: 20,
+ skeletonTableColumns: [
+ {
+ id: 'skeleton-1',
+ className: 'skeleton-1',
+ },
+ {
+ id: 'skeleton-2',
+ className: 'skeleton-2',
+ align: Align.Right,
+ },
+ ],
+};
+
+const FinancialSkeletonTable = styled(DataTable)`
+ .table .th .skeleton,
+ .table .td .skeleton {
+ margin-top: 4px;
+ margin-bottom: 4px;
+ }
+`;
diff --git a/src/components/FinancialSheet/StyledFinancialSheet.js b/src/components/FinancialSheet/StyledFinancialSheet.js
new file mode 100644
index 000000000..84e521b1f
--- /dev/null
+++ b/src/components/FinancialSheet/StyledFinancialSheet.js
@@ -0,0 +1,82 @@
+import styled from 'styled-components';
+
+export const FinancialSheetRoot = styled.div`
+ border: 2px solid #f0f0f0;
+ border-radius: 10px;
+ min-width: 640px;
+ width: auto;
+ padding: 30px 18px;
+ max-width: 100%;
+ margin: 35px auto;
+ min-height: 400px;
+ display: flex;
+ flex-direction: column;
+ background: #fff;
+
+ ${(props) =>
+ props.fullWidth &&
+ `
+ width: 100%;
+ margin-top: 25px;`}
+
+ ${(props) =>
+ props.minimal &&
+ `
+ border: 0;
+ padding: 0;
+ margin-top: 20px;
+
+ ${FinancialSheetTitle} {
+ font-size: 18px;
+ color: #333;
+ }
+ ${FinancialSheetTitle} + ${FinancialSheetDate} {
+ margin-top: 8px;
+ }
+ ${FinancialSheetDate} {
+ margin-top: 20px;
+ }
+`}
+`;
+
+export const FinancialSheetTitle = styled.h1`
+ margin: 0;
+ font-weight: 400;
+ font-size: 20px;
+ color: #464646;
+ text-align: center;
+`;
+
+export const FinancialSheetType = styled.h6`
+ text-align: center;
+ margin: 0;
+ font-size: 16px;
+ font-weight: 400;
+ color: #666;
+ margin-top: 6px;
+`;
+
+export const FinancialSheetDate = styled.div`
+ text-align: center;
+ color: #666;
+ margin-top: 6px;
+`;
+
+export const FinancialSheetFooter = styled.div`
+ color: #888;
+ text-align: center;
+ margin-top: auto;
+ padding-top: 18px;
+ font-size: 13px;
+
+ > span + span {
+ padding-left: 10px;
+ }
+`;
+export const FinancialSheetTable = styled.div`
+ margin-top: 24px;
+`;
+export const FinancialSheetFooterBasis = styled.span``;
+export const FinancialSheetFooterCurrentTime = styled.span``;
+
+export const FinancialSheetAccountingBasis = styled.div``;
diff --git a/src/components/FinancialSheet/index.js b/src/components/FinancialSheet/index.js
new file mode 100644
index 000000000..ca17c27c5
--- /dev/null
+++ b/src/components/FinancialSheet/index.js
@@ -0,0 +1,2 @@
+export * from './FinancialSheet';
+export * from './FinancialSheetSkeleton';
\ No newline at end of file
diff --git a/src/components/FinancialStatement.js b/src/components/FinancialStatement.js
index 1f98e34f5..e077ffdb4 100644
--- a/src/components/FinancialStatement.js
+++ b/src/components/FinancialStatement.js
@@ -1,15 +1,24 @@
import React from 'react';
-import className from 'classnames';
-import 'style/containers/FinancialStatements/FinancialSheet.scss';
+import styled from 'styled-components';
-export default function FinancialStatements({ name, children }) {
+const FinancialStatementRoot = styled.div``;
+const FinancialStatementBodyRoot = styled.div``;
+
+/**
+ *
+ * @param {*} param0
+ * @returns
+ */
+export function FinancialStatement({ children, className }) {
+ return
;
+}
+
+/**
+ *
+ * @param {React.JSX}
+ */
+export function FinancialStatementBody({ children, className }) {
return (
-
- {children}
-
+
);
}
diff --git a/src/components/Skeleton.js b/src/components/Skeleton.js
index df6df2c25..b5b7a9cde 100644
--- a/src/components/Skeleton.js
+++ b/src/components/Skeleton.js
@@ -6,14 +6,36 @@ import { randomNumber } from 'utils';
/**
* Skeleton component.
*/
-export default function Skeleton({
+export function Skeleton({
Tag = 'span',
minWidth = 40,
maxWidth = 100,
+ children,
}) {
- const randomWidth = useMemo(() => randomNumber(minWidth, maxWidth), [
- minWidth,
- maxWidth,
- ]);
- return
;
+ const randomWidth = useMemo(
+ () => randomNumber(minWidth, maxWidth),
+ [minWidth, maxWidth],
+ );
+ return (
+
+ );
+}
+
+export function SkeletonText({
+ Tag = 'span',
+ charsLength,
+ minChars = 40,
+ maxChars = 100,
+}) {
+ const computedCharLength = useMemo(
+ () => (charsLength ? charsLength : randomNumber(minChars, maxChars)),
+ [charsLength, minChars, maxChars],
+ );
+ const randamText = 'X'.repeat(computedCharLength);
+
+ return
{randamText};
}
diff --git a/src/components/SkeletonText.js b/src/components/SkeletonText.js
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/components/index.js b/src/components/index.js
index 5e14f2288..cdf278b7b 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -5,9 +5,6 @@ import Choose from './Utils/Choose';
import For from './Utils/For';
import { FormattedMessage, FormattedHTMLMessage } from './FormattedMessage';
import ListSelect from './ListSelect';
-import FinancialStatement from './FinancialStatement';
-// import DynamicFilterValueField from './DynamicFilter/DynamicFilterValueField';
-// import DynamicFilterCompatatorField from './DynamicFilter/DynamicFilterCompatatorField';
import ErrorMessage from './ErrorMessage';
import MODIFIER from './modifiers';
import FieldHint from './FieldHint';
@@ -41,7 +38,6 @@ import InputPrependText from './Forms/InputPrependText';
import PageFormBigNumber from './PageFormBigNumber';
import AccountsMultiSelect from './AccountsMultiSelect';
import ContactsMultiSelect from './ContactsMultiSelect';
-import Skeleton from './Skeleton';
import ContextMenu from './ContextMenu';
import TableFastCell from './Datatable/TableFastCell';
import DashboardContentTable from './Dashboard/DashboardContentTable';
@@ -95,6 +91,10 @@ export * from './Card';
export * from './Customers'
export * from './Vendors'
export * from './Table';
+export * from './Skeleton';
+export * from './FinancialStatement';
+export * from './FinancialReport';
+export * from './FinancialSheet';
const Hint = FieldHint;
@@ -110,7 +110,6 @@ export {
T,
Money,
ListSelect,
- FinancialStatement,
// DynamicFilterValueField,
// DynamicFilterCompatatorField,
MODIFIER,
@@ -148,7 +147,6 @@ export {
DataTableEditable,
ContactsMultiSelect,
TableFastCell,
- Skeleton,
ContextMenu,
DashboardContentTable,
DashboardPageContent,
diff --git a/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryTable.js b/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryTable.js
index 36fd8daae..c8feefb61 100644
--- a/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryTable.js
+++ b/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryTable.js
@@ -1,8 +1,7 @@
-import React, { useCallback } from 'react';
-import { FormattedMessage as T } from 'components';
+import React from 'react';
import intl from 'react-intl-universal';
-import { DataTable } from 'components';
-import FinancialSheet from 'components/FinancialSheet';
+
+import { DataTable, FinancialSheet } from 'components';
import { useAPAgingSummaryContext } from './APAgingSummaryProvider';
import { useAPAgingSummaryColumns } from './components';
@@ -14,8 +13,6 @@ export default function APAgingSummaryTable({
//#ownProps
organizationName,
}) {
-
-
// AP aging summary report content.
const {
APAgingSummary: { tableRows },
diff --git a/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryTable.js b/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryTable.js
index 41b58a805..0a2a84379 100644
--- a/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryTable.js
+++ b/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryTable.js
@@ -1,7 +1,7 @@
-import React, { useCallback } from 'react';
+import React from 'react';
import intl from 'react-intl-universal';
-import DataTable from 'components/DataTable';
-import FinancialSheet from 'components/FinancialSheet';
+
+import { DataTable, FinancialSheet } from 'components';
import { useARAgingSummaryContext } from './ARAgingSummaryProvider';
import { useARAgingSummaryColumns } from './components';
diff --git a/src/containers/FinancialStatements/BalanceSheet/BalanceSheetBody.js b/src/containers/FinancialStatements/BalanceSheet/BalanceSheetBody.js
index f40d3f7be..d9e4373fc 100644
--- a/src/containers/FinancialStatements/BalanceSheet/BalanceSheetBody.js
+++ b/src/containers/FinancialStatements/BalanceSheet/BalanceSheetBody.js
@@ -5,7 +5,7 @@ import { FinancialReportBody } from '../FinancialReportPage';
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
import { useBalanceSheetContext } from './BalanceSheetProvider';
-
+import { FinancialSheetSkeleton } from '../../../components/FinancialSheet';
import { compose } from 'utils';
/**
@@ -21,7 +21,7 @@ function BalanceSheetBodyJSX({
return (
{isLoading ? (
- 'loading'
+
) : (
)}
diff --git a/src/containers/FinancialStatements/BalanceSheet/BalanceSheetTable.js b/src/containers/FinancialStatements/BalanceSheet/BalanceSheetTable.js
index d73d14e06..86174e62d 100644
--- a/src/containers/FinancialStatements/BalanceSheet/BalanceSheetTable.js
+++ b/src/containers/FinancialStatements/BalanceSheet/BalanceSheetTable.js
@@ -2,8 +2,8 @@ import React from 'react';
import styled from 'styled-components';
import intl from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
-import DataTable from 'components/DataTable';
+import { DataTable, FinancialSheet } from 'components';
+
import { useBalanceSheetContext } from './BalanceSheetProvider';
import { defaultExpanderReducer, tableRowTypesToClassnames } from 'utils';
@@ -36,8 +36,7 @@ export default function BalanceSheetTable({
name="balance-sheet"
companyName={companyName}
sheetType={intl.get('balance_sheet')}
- fromDate={query.from_date}
- toDate={query.to_date}
+ asDate={query.to_date}
basis={query.basis}
>
@@ -60,8 +61,8 @@ const BalanceSheetDataTable = styled(DataTable)`
.tbody .tr {
.td {
border-bottom: 0;
- padding-top: 0.36rem;
- padding-bottom: 0.36rem;
+ padding-top: 0.32rem;
+ padding-bottom: 0.32rem;
}
&.is-expanded {
.td:not(.name) .cell-inner {
diff --git a/src/containers/FinancialStatements/BalanceSheet/utils.js b/src/containers/FinancialStatements/BalanceSheet/utils.js
index 19afab84a..c89f2651f 100644
--- a/src/containers/FinancialStatements/BalanceSheet/utils.js
+++ b/src/containers/FinancialStatements/BalanceSheet/utils.js
@@ -3,13 +3,13 @@ import * as R from 'ramda';
import { isEmpty } from 'lodash';
import intl from 'react-intl-universal';
import moment from 'moment';
+
+import { Align } from 'common';
import { CellTextSpan } from 'components/Datatable/Cells';
import { getColumnWidth } from 'utils';
const getTableCellValueAccessor = (index) => `cells[${index}].value`;
-const Align = { Left: 'left', Right: 'right', Center: 'center' };
-
const getReportColWidth = (data, accessor, headerText) => {
return getColumnWidth(
data,
diff --git a/src/containers/FinancialStatements/CashFlowStatement/CashFlowStatementTable.js b/src/containers/FinancialStatements/CashFlowStatement/CashFlowStatementTable.js
index 4f813c1d2..e4dfd0881 100644
--- a/src/containers/FinancialStatements/CashFlowStatement/CashFlowStatementTable.js
+++ b/src/containers/FinancialStatements/CashFlowStatement/CashFlowStatementTable.js
@@ -1,8 +1,8 @@
import React, { useMemo } from 'react';
import intl from 'react-intl-universal';
-import { DataTable } from 'components';
-import FinancialSheet from 'components/FinancialSheet';
+import { DataTable, FinancialSheet } from 'components';
+
import { useCashFlowStatementColumns } from './components';
import { useCashFlowStatementContext } from './CashFlowStatementProvider';
@@ -15,8 +15,6 @@ export default function CashFlowStatementTable({
// #ownProps
companyName,
}) {
-
-
const {
cashFlowStatement: { tableRows },
isCashFlowLoading,
diff --git a/src/containers/FinancialStatements/CustomersBalanceSummary/CustomersBalanceSummaryTable.js b/src/containers/FinancialStatements/CustomersBalanceSummary/CustomersBalanceSummaryTable.js
index 103dd3ea0..931ca053e 100644
--- a/src/containers/FinancialStatements/CustomersBalanceSummary/CustomersBalanceSummaryTable.js
+++ b/src/containers/FinancialStatements/CustomersBalanceSummary/CustomersBalanceSummaryTable.js
@@ -1,8 +1,7 @@
import React from 'react';
import intl from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
-import DataTable from 'components/DataTable';
+import { DataTable, FinancialSheet } from 'components';
import { useCustomersBalanceSummaryContext } from './CustomersBalanceSummaryProvider';
import { useCustomersSummaryColumns } from './components';
diff --git a/src/containers/FinancialStatements/CustomersTransactions/CustomersTransactionsTable.js b/src/containers/FinancialStatements/CustomersTransactions/CustomersTransactionsTable.js
index 3ff054d9e..122b921f9 100644
--- a/src/containers/FinancialStatements/CustomersTransactions/CustomersTransactionsTable.js
+++ b/src/containers/FinancialStatements/CustomersTransactions/CustomersTransactionsTable.js
@@ -1,8 +1,8 @@
import React, { useMemo } from 'react';
import intl from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
-import DataTable from 'components/DataTable';
+import { DataTable, FinancialSheet } from 'components';
+
import { useCustomersTransactionsColumns } from './components';
import { useCustomersTransactionsContext } from './CustomersTransactionsProvider';
diff --git a/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js b/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js
index 539b735c7..d07c3b78a 100644
--- a/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js
+++ b/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js
@@ -3,7 +3,7 @@ import React, { useMemo } from 'react';
import { defaultExpanderReducer } from 'utils';
import intl from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
+import { FinancialSheet } from 'components';
import DataTable from 'components/DataTable';
import TableVirtualizedListRows from 'components/Datatable/TableVirtualizedRows';
import TableFastCell from 'components/Datatable/TableFastCell';
@@ -37,7 +37,6 @@ export default function GeneralLedgerTable({ companyName }) {
sheetType={intl.get('general_ledger_sheet')}
fromDate={query.from_date}
toDate={query.to_date}
- name="general-ledger"
loading={isLoading}
fullWidth={true}
>
diff --git a/src/containers/FinancialStatements/InventoryItemDetails/InventoryItemDetailsTable.js b/src/containers/FinancialStatements/InventoryItemDetails/InventoryItemDetailsTable.js
index 5ab72ed72..4c3963e2c 100644
--- a/src/containers/FinancialStatements/InventoryItemDetails/InventoryItemDetailsTable.js
+++ b/src/containers/FinancialStatements/InventoryItemDetails/InventoryItemDetailsTable.js
@@ -1,8 +1,7 @@
import React, { useMemo } from 'react';
import intl from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
-import { DataTable } from 'components';
+import { DataTable, FinancialSheet } from 'components';
import { useInventoryItemDetailsColumns } from './components';
import { useInventoryItemDetailsContext } from './InventoryItemDetailsProvider';
diff --git a/src/containers/FinancialStatements/InventoryValuation/InventoryValuationTable.js b/src/containers/FinancialStatements/InventoryValuation/InventoryValuationTable.js
index 6c86aeace..96fe37fa2 100644
--- a/src/containers/FinancialStatements/InventoryValuation/InventoryValuationTable.js
+++ b/src/containers/FinancialStatements/InventoryValuation/InventoryValuationTable.js
@@ -1,8 +1,7 @@
import React from 'react';
import intl, { init } from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
-import { DataTable } from 'components';
+import { DataTable, FinancialSheet } from 'components';
import { useInventoryValuationContext } from './InventoryValuationProvider';
import { useInventoryValuationTableColumns } from './components';
diff --git a/src/containers/FinancialStatements/Journal/JournalTable.js b/src/containers/FinancialStatements/Journal/JournalTable.js
index 372b7c411..992aba2ad 100644
--- a/src/containers/FinancialStatements/Journal/JournalTable.js
+++ b/src/containers/FinancialStatements/Journal/JournalTable.js
@@ -1,25 +1,24 @@
import React, { useCallback, useMemo } from 'react';
import intl from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
-import DataTable from 'components/DataTable';
-import { useJournalSheetContext } from './JournalProvider';
+import { DataTable, FinancialSheet } from 'components';
import TableVirtualizedListRows from 'components/Datatable/TableVirtualizedRows';
import TableFastCell from 'components/Datatable/TableFastCell';
-import { defaultExpanderReducer } from 'utils';
+
import { useJournalTableColumns } from './components';
+import { useJournalSheetContext } from './JournalProvider';
+
+import { defaultExpanderReducer } from 'utils';
export default function JournalSheetTable({
// #ownProps
onFetchData,
companyName,
}) {
-
-
// Journal sheet context.
const {
journalSheet: { tableRows, query },
- isLoading
+ isLoading,
} = useJournalSheetContext();
// Retreive the journal table columns.
@@ -42,8 +41,6 @@ export default function JournalSheetTable({
};
}, []);
-
-
return (
+ >
);
-}
\ No newline at end of file
+}
diff --git a/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossBody.js b/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossBody.js
index 8a853e1c3..86b075957 100644
--- a/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossBody.js
+++ b/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossBody.js
@@ -1,5 +1,6 @@
import React from 'react';
+import { FinancialSheetSkeleton } from '../../../components/FinancialSheet';
import ProfitLossSheetTable from './ProfitLossSheetTable';
import { FinancialReportBody } from '../FinancialReportPage';
@@ -20,7 +21,7 @@ function ProfitLossBodyJSX({
return (
{isLoading ? (
- 'loading'
+
) : (
)}
diff --git a/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossSheetTable.js b/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossSheetTable.js
index 501838dc7..495626c5d 100644
--- a/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossSheetTable.js
+++ b/src/containers/FinancialStatements/ProfitLossSheet/ProfitLossSheetTable.js
@@ -2,13 +2,10 @@ import React from 'react';
import styled from 'styled-components';
import { TableStyle } from 'common';
-import { FormattedMessage as T } from 'components';
-
-import { useProfitLossSheetColumns } from './hooks';
-import FinancialSheet from 'components/FinancialSheet';
-import DataTable from 'components/DataTable';
+import { DataTable, FinancialSheet, FormattedMessage as T } from 'components';
import { tableRowTypesToClassnames, defaultExpanderReducer } from 'utils';
+import { useProfitLossSheetColumns } from './hooks';
import { useProfitLossSheetContext } from './ProfitLossProvider';
export default function ProfitLossSheetTable({
@@ -60,8 +57,8 @@ const ProfitLossDataTable = styled(DataTable)`
.tbody .tr {
.td {
border-bottom: 0;
- padding-top: 0.36rem;
- padding-bottom: 0.36rem;
+ padding-top: 0.32rem;
+ padding-bottom: 0.32rem;
}
&.is-expanded {
.td:not(.name) .cell-inner {
@@ -74,8 +71,8 @@ const ProfitLossDataTable = styled(DataTable)`
border-top: 1px solid #bbb;
}
}
- &:last-of-type .td{
- border-bottom: 1px solid #bbb;
+ &:last-of-type .td {
+ border-bottom: 3px double #000;
}
}
}
diff --git a/src/containers/FinancialStatements/ProfitLossSheet/utils.js b/src/containers/FinancialStatements/ProfitLossSheet/utils.js
index d4826fbbd..7b1dcf956 100644
--- a/src/containers/FinancialStatements/ProfitLossSheet/utils.js
+++ b/src/containers/FinancialStatements/ProfitLossSheet/utils.js
@@ -1,9 +1,10 @@
import * as R from 'ramda';
import { isEmpty } from 'lodash';
+
+import { Align } from 'common';
import { CellTextSpan } from 'components/Datatable/Cells';
import { getColumnWidth } from 'utils';
-const Align = { Left: 'left', Right: 'right', Center: 'center' };
const getTableCellValueAccessor = (index) => `cells[${index}].value`;
const getReportColWidth = (data, accessor, labelText) => {
diff --git a/src/containers/FinancialStatements/PurchasesByItems/PurchasesByItemsTable.js b/src/containers/FinancialStatements/PurchasesByItems/PurchasesByItemsTable.js
index 63f20e766..f251a9960 100644
--- a/src/containers/FinancialStatements/PurchasesByItems/PurchasesByItemsTable.js
+++ b/src/containers/FinancialStatements/PurchasesByItems/PurchasesByItemsTable.js
@@ -1,11 +1,9 @@
import React from 'react';
import intl from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
-import { DataTable } from 'components';
+import { DataTable, FinancialSheet } from 'components';
import { usePurchaseByItemsContext } from './PurchasesByItemsProvider';
-
import { usePurchasesByItemsTableColumns } from './components';
/**
diff --git a/src/containers/FinancialStatements/SalesByItems/SalesByItemsTable.js b/src/containers/FinancialStatements/SalesByItems/SalesByItemsTable.js
index 4fd996d09..c8569498c 100644
--- a/src/containers/FinancialStatements/SalesByItems/SalesByItemsTable.js
+++ b/src/containers/FinancialStatements/SalesByItems/SalesByItemsTable.js
@@ -1,8 +1,8 @@
import React from 'react';
import intl from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
-import { DataTable } from 'components';
+import { DataTable, FinancialSheet } from 'components';
+
import { useSalesByItemsContext } from './SalesByItemProvider';
import { useSalesByItemsTableColumns } from './components';
diff --git a/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheetTable.js b/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheetTable.js
index e31a0f34f..656eb103d 100644
--- a/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheetTable.js
+++ b/src/containers/FinancialStatements/TrialBalanceSheet/TrialBalanceSheetTable.js
@@ -1,12 +1,9 @@
import React from 'react';
import intl from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
-import DataTable from 'components/DataTable';
+import { DataTable, FinancialSheet } from 'components';
import { useTrialBalanceSheetContext } from './TrialBalanceProvider';
-
-
import { useTrialBalanceTableColumns } from './components';
/**
diff --git a/src/containers/FinancialStatements/VendorsBalanceSummary/VendorsBalanceSummaryTable.js b/src/containers/FinancialStatements/VendorsBalanceSummary/VendorsBalanceSummaryTable.js
index 84401992a..0717b0cbd 100644
--- a/src/containers/FinancialStatements/VendorsBalanceSummary/VendorsBalanceSummaryTable.js
+++ b/src/containers/FinancialStatements/VendorsBalanceSummary/VendorsBalanceSummaryTable.js
@@ -1,8 +1,7 @@
import React from 'react';
-import { FormattedMessage as T } from 'components';
import intl from 'react-intl-universal';
-import { DataTable } from 'components';
-import FinancialSheet from 'components/FinancialSheet';
+
+import { DataTable, FinancialSheet } from 'components';
import { useVendorsBalanceColumns } from './components';
import { useVendorsBalanceSummaryContext } from './VendorsBalanceSummaryProvider';
diff --git a/src/containers/FinancialStatements/VendorsTransactions/VendorsTransactionsTable.js b/src/containers/FinancialStatements/VendorsTransactions/VendorsTransactionsTable.js
index a12f2408b..af549d401 100644
--- a/src/containers/FinancialStatements/VendorsTransactions/VendorsTransactionsTable.js
+++ b/src/containers/FinancialStatements/VendorsTransactions/VendorsTransactionsTable.js
@@ -1,8 +1,8 @@
import React, { useMemo } from 'react';
import intl from 'react-intl-universal';
-import FinancialSheet from 'components/FinancialSheet';
-import DataTable from 'components/DataTable';
+import { DataTable, FinancialSheet } from 'components';
+
import { useVendorsTransactionsColumns } from './components';
import { useVendorsTransactionsContext } from './VendorsTransactionsProvider';
diff --git a/src/style/components/DataTable/DataTable.scss b/src/style/components/DataTable/DataTable.scss
index 0306567bb..5659c52c1 100644
--- a/src/style/components/DataTable/DataTable.scss
+++ b/src/style/components/DataTable/DataTable.scss
@@ -147,6 +147,19 @@
width: 65%;
margin: 10px 0;
}
+
+ &.align-right {
+ .skeleton {
+ margin-left: auto;
+ }
+ }
+
+ &.align-center {
+ .skeleton {
+ margin-left: auto;
+ margin-right: auto;
+ }
+ }
}
.th {
@@ -363,13 +376,14 @@
.table-constrant,
.table--constrant {
.table {
- .thead{
- .tr:first-of-type .th{
+ .thead {
+ .tr:first-of-type .th {
border-top: 1px solid #000000;
}
}
+
.thead .th {
- background: transparent;
+ background: #fff;
color: #222222;
border-bottom: 1px solid #000000;
padding: 0.5rem;
diff --git a/src/style/containers/FinancialStatements/FinancialSheet.scss b/src/style/containers/FinancialStatements/FinancialSheet.scss
deleted file mode 100644
index 18b3c7957..000000000
--- a/src/style/containers/FinancialStatements/FinancialSheet.scss
+++ /dev/null
@@ -1,118 +0,0 @@
-// Financial sheet.
-// -----------------------
-.financial-sheet {
- border: 2px solid #f0f0f0;
- border-radius: 10px;
- min-width: 640px;
- width: auto;
- padding: 30px 18px;
- max-width: 100%;
- margin: 35px auto;
- min-height: 400px;
- display: flex;
- flex-direction: column;
- background: #fff;
-
- &__title {
- margin: 0;
- font-weight: 400;
- font-size: 20px;
- color: #464646;
- text-align: center;
- }
- &__sheet-type {
- text-align: center;
- margin: 0;
- font-size: 16px;
- font-weight: 400;
- color: #666;
- margin-top: 6px;
- }
- &__date {
- text-align: center;
- color: #666;
- margin-top: 6px;
- }
- &__table {
- margin-top: 24px;
-
- .table {
- .tbody,
- .thead {
- .tr .td,
- .tr .th {
- background: #fff;
- }
- }
-
- .tr.no-results {
- .td {
- flex-direction: column;
- padding: 20px;
- color: #666;
- align-items: center;
- }
- }
- }
- }
- &__inner {
- &.is-loading {
- display: none;
- }
- }
- &__footer {
- color: #888;
- text-align: center;
- margin-top: auto;
- padding-top: 18px;
- font-size: 13px;
-
-
- > span + span{
- padding-left: 10px;
- }
- }
- .dashboard__loading-indicator {
- margin: auto;
- padding: 0;
- }
- &--expended {
- width: auto;
- }
-
- &--minimal {
- border: 0;
- padding: 0;
- margin-top: 20px;
-
- .financial-sheet {
- &__title {
- font-size: 18px;
- color: #333;
- }
- &__title + .financial-sheet__date {
- margin-top: 8px;
- }
- &__table {
- margin-top: 20px;
- }
- }
- }
- &.is-full-width {
- width: 100%;
- margin-top: 25px;
- }
-}
-
-.financial-statement {
- &__header {
- }
-
- &__body {
- padding-left: 15px;
- padding-right: 15px;
- display: flex;
- justify-content: center;
- align-items: center;
- }
-}