diff --git a/src/containers/Drawers/ExpenseDrawer/utils.js b/src/containers/Drawers/ExpenseDrawer/utils.js index b1c96c295..4e8911e49 100644 --- a/src/containers/Drawers/ExpenseDrawer/utils.js +++ b/src/containers/Drawers/ExpenseDrawer/utils.js @@ -1,33 +1,45 @@ import React from 'react'; import intl from 'react-intl-universal'; -import { FormatNumberCell } from '../../../components'; +import { FormatNumberCell, TextOverviewTooltipCell } from '../../../components'; +import { useExpenseDrawerContext } from './ExpenseDrawerProvider'; +import { getColumnWidth } from 'utils'; /** * Retrieve expense readonly details entries table columns. */ -export const useExpenseReadEntriesColumns = () => - React.useMemo( +export const useExpenseReadEntriesColumns = () => { + // Expense drawer context. + const { + expense: { categories }, + } = useExpenseDrawerContext(); + + return React.useMemo( () => [ { Header: intl.get('expense_account'), accessor: 'expense_account.name', width: 110, disableSortBy: true, + textOverview: true, className: 'account', }, { Header: intl.get('description'), accessor: 'description', - width: 110, - disableSortBy: true, + Cell: TextOverviewTooltipCell, className: 'description', + disableSortBy: true, + textOverview: true, }, { Header: intl.get('amount'), accessor: 'amount', Cell: FormatNumberCell, - width: 100, + width: getColumnWidth(categories, 'amount', { + minWidth: 60, + magicSpacing: 5, + }), disableSortBy: true, className: 'amount', align: 'right', @@ -35,3 +47,4 @@ export const useExpenseReadEntriesColumns = () => ], [], ); +}; diff --git a/src/containers/Drawers/InventoryAdjustmentDetailDrawer/utils.js b/src/containers/Drawers/InventoryAdjustmentDetailDrawer/utils.js index 56bd7501a..0d7a7fde6 100644 --- a/src/containers/Drawers/InventoryAdjustmentDetailDrawer/utils.js +++ b/src/containers/Drawers/InventoryAdjustmentDetailDrawer/utils.js @@ -1,37 +1,60 @@ import React from 'react'; import intl from 'react-intl-universal'; +import { getColumnWidth } from 'utils'; +import { TextOverviewTooltipCell } from 'components'; +import { useInventoryAdjustmentDrawerContext } from './InventoryAdjustmentDrawerProvider'; -export const useInventoryAdjustmentEntriesColumns = () => - React.useMemo( +export const useInventoryAdjustmentEntriesColumns = () => { + // Inventory adjustment details drawer context. + const { + inventoryAdjustment: { entries }, + } = useInventoryAdjustmentDrawerContext(); + + return React.useMemo( () => [ { Header: intl.get('inventory_adjustment.column.product'), accessor: 'item.name', - width: 150, + Cell: TextOverviewTooltipCell, + width: 100, className: 'name', disableSortBy: true, + textOverview: true, }, { Header: intl.get('quantity'), accessor: 'quantity', - width: 100, + width: getColumnWidth(entries, 'quantity', { + minWidth: 60, + magicSpacing: 5, + }), align: 'right', disableSortBy: true, + textOverview: true, }, { Header: intl.get('cost'), accessor: 'cost', - width: 100, + width: getColumnWidth(entries, 'cost', { + minWidth: 60, + magicSpacing: 5, + }), align: 'right', disableSortBy: true, + textOverview: true, }, { Header: intl.get('value'), accessor: 'value', - width: 100, + width: getColumnWidth(entries, 'value', { + minWidth: 60, + magicSpacing: 5, + }), align: 'right', disableSortBy: true, + textOverview: true, }, ], [], ); +}; diff --git a/src/containers/Drawers/ManualJournalDrawer/utils.js b/src/containers/Drawers/ManualJournalDrawer/utils.js index 31e38ccf0..43d8b7d87 100644 --- a/src/containers/Drawers/ManualJournalDrawer/utils.js +++ b/src/containers/Drawers/ManualJournalDrawer/utils.js @@ -1,28 +1,17 @@ import intl from 'react-intl-universal'; import React from 'react'; -import { Tag, Intent, Classes, Tooltip, Position } from '@blueprintjs/core'; +import { Tag, Intent } from '@blueprintjs/core'; -import { T, Choose, FormatNumberCell, If, Icon } from '../../../components'; +import { + T, + Choose, + FormatNumberCell, + TextOverviewTooltipCell, +} from '../../../components'; import { Features } from 'common'; +import { getColumnWidth } from 'utils'; import { useFeatureCan } from 'hooks/state'; - -/** - * Note column accessor. - */ -export function NoteAccessor(row) { - return ( - - - - - - ); -} +import { useManualJournalDrawerContext } from './ManualJournalDrawerProvider'; /** * Publish column accessor. @@ -50,6 +39,12 @@ export function ManualJournalDetailsStatus({ manualJournal }) { */ export const useManualJournalEntriesColumns = () => { const { featureCan } = useFeatureCan(); + + // manual journal details drawer context. + const { + manualJournal: { entries }, + } = useManualJournalDrawerContext(); + return React.useMemo( () => [ { @@ -57,6 +52,7 @@ export const useManualJournalEntriesColumns = () => { accessor: 'account.name', width: 130, disableSortBy: true, + textOverview: true, className: 'account', }, { @@ -64,13 +60,15 @@ export const useManualJournalEntriesColumns = () => { accessor: 'contact.display_name', width: 130, disableSortBy: true, + textOverview: true, className: 'contact', }, { Header: intl.get('note'), - accessor: NoteAccessor, - width: 80, + accessor: 'note', + Cell: TextOverviewTooltipCell, disableSortBy: true, + textOverview: true, className: 'note', }, ...(featureCan(Features.Branches) @@ -88,9 +86,13 @@ export const useManualJournalEntriesColumns = () => { Header: intl.get('credit'), accessor: 'credit', Cell: FormatNumberCell, - width: 100, + width: getColumnWidth(entries, 'credit', { + minWidth: 60, + magicSpacing: 5, + }), disableResizable: true, disableSortBy: true, + textOverview: true, formatNumber: { noZero: true }, className: 'credit', align: 'right', @@ -99,8 +101,12 @@ export const useManualJournalEntriesColumns = () => { Header: intl.get('debit'), accessor: 'debit', Cell: FormatNumberCell, - width: 100, + width: getColumnWidth(entries, 'debit', { + minWidth: 60, + magicSpacing: 5, + }), disableResizable: true, + textOverview: true, disableSortBy: true, formatNumber: { noZero: true }, className: 'debit', diff --git a/src/containers/Drawers/WarehouseTransferDetailDrawer/utils.js b/src/containers/Drawers/WarehouseTransferDetailDrawer/utils.js index 06057eabc..d23a84656 100644 --- a/src/containers/Drawers/WarehouseTransferDetailDrawer/utils.js +++ b/src/containers/Drawers/WarehouseTransferDetailDrawer/utils.js @@ -1,41 +1,55 @@ import React from 'react'; import intl from 'react-intl-universal'; import { Intent, Tag } from '@blueprintjs/core'; +import { getColumnWidth } from 'utils'; +import { useWarehouseDetailDrawerContext } from './WarehouseTransferDetailDrawerProvider'; import { FormattedMessage as T, FormatNumberCell, + TextOverviewTooltipCell, Choose, } from '../../../components'; -export const useWarehouseTransferReadOnlyEntriesColumns = () => - React.useMemo( +export const useWarehouseTransferReadOnlyEntriesColumns = () => { + const { + warehouseTransfer: { entries }, + } = useWarehouseDetailDrawerContext(); + + return React.useMemo( () => [ { Header: intl.get('warehouse_transfer.column.item_name'), accessor: 'item.name', - width: 150, + Cell: TextOverviewTooltipCell, + width: 100, className: 'name', disableSortBy: true, + textOverview: true, }, { Header: intl.get('warehouse_transfer.column.description'), accessor: 'description', + Cell: TextOverviewTooltipCell, className: 'description', disableSortBy: true, + textOverview: true, }, { Header: intl.get('warehouse_transfer.column.transfer_quantity'), accessor: 'quantity', Cell: FormatNumberCell, - width: 100, + width: getColumnWidth(entries, 'quantity', { + minWidth: 60, + magicSpacing: 5, + }), align: 'right', disableSortBy: true, }, ], [], ); - +}; /** * Warehouses transfer details status. * @returns {React.JSX}