fix: refresh accounts and account transactions.

This commit is contained in:
Ahmed Bouhuolia
2024-08-13 11:37:59 +02:00
parent 3097d05eda
commit a2d28648bd
11 changed files with 92 additions and 54 deletions

View File

@@ -32,7 +32,7 @@ import {
getAddMoneyOutOptions,
getAddMoneyInOptions,
} from '@/constants/cashflowOptions';
import { useRefreshCashflowTransactionsInfinity } from '@/hooks/query';
import { useRefreshCashflowTransactions } from '@/hooks/query';
import { useAccountTransactionsContext } from './AccountTransactionsProvider';
import withDialogActions from '@/containers/Dialog/withDialogActions';
@@ -76,7 +76,7 @@ function AccountTransactionsActionsBar({
const { accountId, currentAccount } = useAccountTransactionsContext();
// Refresh cashflow infinity transactions hook.
const { refresh } = useRefreshCashflowTransactionsInfinity();
const { refresh } = useRefreshCashflowTransactions();
const { mutateAsync: updateBankAccount } = useUpdateBankAccount();
@@ -141,7 +141,7 @@ function AccountTransactionsActionsBar({
};
// Handle the refresh button click.
const handleRefreshBtnClick = () => {
refresh();
refresh(accountId);
};
const {

View File

@@ -48,8 +48,11 @@ function AccountTransactionsDataTable({
const columns = useAccountTransactionsColumns();
// Retrieve list context.
const { cashflowTransactions, isCashFlowTransactionsLoading } =
useAccountTransactionsAllContext();
const {
cashflowTransactions,
isCashFlowTransactionsLoading,
isCashFlowTransactionsFetching,
} = useAccountTransactionsAllContext();
const { mutateAsync: uncategorizeTransaction } = useUncategorizeTransaction();
const { mutateAsync: unmatchTransaction } =
@@ -118,6 +121,7 @@ function AccountTransactionsDataTable({
sticky={true}
loading={isCashFlowTransactionsLoading}
headerLoading={isCashFlowTransactionsLoading}
progressBarLoading={isCashFlowTransactionsFetching}
expandColumnSpace={1}
expandToggleColumn={2}
selectionColumnWidth={45}

View File

@@ -13,10 +13,10 @@ import {
useAccountTransactionsContext,
} from './AccountTransactionsProvider';
import { AccountTransactionsDetailsBar } from './AccountTransactionsDetailsBar';
import { AccountTransactionsProgressBar } from './components';
import { AccountTransactionsFilterTabs } from './AccountTransactionsFilterTabs';
import { AppContentShell } from '@/components/AppShell';
import { CategorizeTransactionAside } from '../CategorizeTransactionAside/CategorizeTransactionAside';
import { AccountTransactionsLoadingBar } from './components';
import { withBanking } from '../withBanking';
/**
@@ -42,8 +42,8 @@ function AccountTransactionsMain() {
return (
<AppContentShell.Main ref={(e) => setScrollableRef(e)}>
<AccountTransactionsActionsBar />
<AccountTransactionsLoadingBar />
<AccountTransactionsDetailsBar />
<AccountTransactionsProgressBar />
<DashboardPageContent>
<AccountTransactionsFilterTabs />

View File

@@ -39,6 +39,7 @@ function AccountTransactionsProvider({ query, ...props }) {
const {
data: bankAccountMetaSummary,
isLoading: isBankAccountMetaSummaryLoading,
isFetching: isBankAccountMetaSummaryFetching,
} = useGetBankAccountSummaryMeta(accountId);
const [scrollableRef, setScrollableRef] = useState();
@@ -52,15 +53,18 @@ function AccountTransactionsProvider({ query, ...props }) {
isCashFlowAccountsFetching,
isCashFlowAccountsLoading,
isCurrentAccountFetching,
isCurrentAccountLoading,
isBankAccountMetaSummaryLoading,
isBankAccountMetaSummaryFetching,
filterTab,
setFilterTab,
scrollableRef,
setScrollableRef
setScrollableRef,
};
return (

View File

@@ -34,7 +34,11 @@ function ExcludedTransactionsTableRoot({
// #withBankingActions
setExcludedTransactionsSelected,
}: ExcludeTransactionsTableProps) {
const { excludedBankTransactions } = useExcludedTransactionsBoot();
const {
excludedBankTransactions,
isExcludedTransactionsLoading,
isExcludedTransactionsFetching,
} = useExcludedTransactionsBoot();
const { mutateAsync: unexcludeBankTransaction } =
useUnexcludeUncategorizedTransaction();
@@ -79,8 +83,9 @@ function ExcludedTransactionsTableRoot({
columns={columns}
data={excludedBankTransactions}
sticky={true}
loading={false}
headerLoading={false}
loading={isExcludedTransactionsLoading}
headerLoading={isExcludedTransactionsLoading}
progressBarLoading={isExcludedTransactionsFetching}
expandColumnSpace={1}
expandToggleColumn={2}
selectionColumnWidth={45}

View File

@@ -30,8 +30,11 @@ function PendingTransactionsDataTableRoot({
const { scrollableRef } = useAccountTransactionsContext();
// Retrieve list context.
const { pendingTransactions, isPendingTransactionsLoading } =
usePendingTransactionsContext();
const {
pendingTransactions,
isPendingTransactionsLoading,
isPendingTransactionFetching,
} = usePendingTransactionsContext();
return (
<CashflowTransactionsTable
@@ -41,6 +44,7 @@ function PendingTransactionsDataTableRoot({
sticky={true}
loading={isPendingTransactionsLoading}
headerLoading={isPendingTransactionsLoading}
progressBarLoading={isPendingTransactionFetching}
TableCellRenderer={TableFastCell}
TableLoadingRenderer={TableSkeletonRows}
TableRowsRenderer={TableVirtualizedListRows}

View File

@@ -52,8 +52,11 @@ function AccountTransactionsDataTable({
const { scrollableRef } = useAccountTransactionsContext();
// Retrieve list context.
const { uncategorizedTransactions, isUncategorizedTransactionsLoading } =
useAccountUncategorizedTransactionsContext();
const {
uncategorizedTransactions,
isUncategorizedTransactionsLoading,
isUncategorizedTransactionFetching,
} = useAccountUncategorizedTransactionsContext();
const { mutateAsync: excludeTransaction } =
useExcludeUncategorizedTransaction();
@@ -105,6 +108,7 @@ function AccountTransactionsDataTable({
selectionColumn={true}
loading={isUncategorizedTransactionsLoading}
headerLoading={isUncategorizedTransactionsLoading}
progressBarLoading={isUncategorizedTransactionFetching}
expandColumnSpace={1}
expandToggleColumn={2}
selectionColumnWidth={45}

View File

@@ -1,18 +1,29 @@
// @ts-nocheck
import React from 'react';
import intl from 'react-intl-universal';
import {
Intent,
Menu,
MenuItem,
Tag,
PopoverInteractionKind,
Position,
Tooltip,
} from '@blueprintjs/core';
import { Box, FormatDateCell, Icon, MaterialProgressBar } from '@/components';
import { useAccountTransactionsContext } from './AccountTransactionsProvider';
import { Intent, Menu, MenuItem, Tag } from '@blueprintjs/core';
import { FormatDateCell, Icon } from '@/components';
import { safeCallback } from '@/utils';
import { useAccountTransactionsContext } from './AccountTransactionsProvider';
import FinancialLoadingBar from '@/containers/FinancialStatements/FinancialLoadingBar';
export function AccountTransactionsLoadingBar() {
const {
isBankAccountMetaSummaryFetching,
isCurrentAccountFetching,
isCashFlowAccountsFetching,
} = useAccountTransactionsContext();
const isLoading =
isCashFlowAccountsFetching ||
isCurrentAccountFetching ||
isBankAccountMetaSummaryFetching;
if (isLoading) {
return <FinancialLoadingBar />;
}
return null;
}
export function ActionsMenu({
payload: { onUncategorize, onUnmatch },
@@ -137,16 +148,3 @@ export function useAccountTransactionsColumns() {
[],
);
}
/**
* Account transactions progress bar.
*/
export function AccountTransactionsProgressBar() {
const { isCashFlowTransactionsFetching, isUncategorizedTransactionFetching } =
useAccountTransactionsContext();
return isCashFlowTransactionsFetching ||
isUncategorizedTransactionFetching ? (
<MaterialProgressBar />
) : null;
}

View File

@@ -10,6 +10,7 @@ import { CashFlowAccountsProvider } from './CashFlowAccountsProvider';
import CashflowAccountsGrid from './CashflowAccountsGrid';
import CashFlowAccountsActionsBar from './CashFlowAccountsActionsBar';
import { CashflowAccountsPlaidLink } from './CashflowAccountsPlaidLink';
import { CashflowAccountsLoadingBar } from './CashFlowAccountsLoadingBar';
import withCashflowAccounts from '@/containers/CashFlow/AccountTransactions/withCashflowAccounts';
import withCashflowAccountsTableActions from '@/containers/CashFlow/AccountTransactions/withCashflowAccountsTableActions';
@@ -35,6 +36,7 @@ function CashFlowAccountsList({
return (
<CashFlowAccountsProvider tableState={cashflowAccountsTableState}>
<CashFlowAccountsActionsBar />
<CashflowAccountsLoadingBar />
<DashboardPageContent>
<CashflowAccountsGrid />

View File

@@ -0,0 +1,12 @@
// @ts-nocheck
import FinancialLoadingBar from '@/containers/FinancialStatements/FinancialLoadingBar';
import { useCashFlowAccountsContext } from './CashFlowAccountsProvider';
export function CashflowAccountsLoadingBar() {
const { isCashFlowAccountsFetching } = useCashFlowAccountsContext();
if (isCashFlowAccountsFetching) {
return <FinancialLoadingBar />;
}
return null;
}