From 3cd66ba4d6ffe16e6cc7f288b5f64a90e17240eb Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Sat, 29 Jun 2024 17:00:36 +0200 Subject: [PATCH] feat: merge the boot provider of categorize and matching forms --- .../AccountTransactions/components.tsx | 2 +- .../CategorizeTransactionBoot.tsx | 47 ++++++++------ .../CategorizeTransactionContent.tsx | 3 +- .../CategorizeTransactionForm.tsx | 9 ++- .../CategorizeTransactionFormContent.tsx | 4 +- .../CategorizeTransactionFormFooter.tsx | 13 ++-- .../CategorizeTransactionAside.tsx | 25 ++++++-- .../CategorizeTransactionTabs.tsx | 2 +- .../CategorizeTransactionTabsBoot.tsx | 61 +++++++++++++++++++ .../MatchingTransaction.tsx | 6 +- 10 files changed, 129 insertions(+), 43 deletions(-) create mode 100644 packages/webapp/src/containers/CashFlow/CategorizeTransactionAside/CategorizeTransactionTabsBoot.tsx diff --git a/packages/webapp/src/containers/CashFlow/AccountTransactions/components.tsx b/packages/webapp/src/containers/CashFlow/AccountTransactions/components.tsx index 1da35e9fd..bdd85115f 100644 --- a/packages/webapp/src/containers/CashFlow/AccountTransactions/components.tsx +++ b/packages/webapp/src/containers/CashFlow/AccountTransactions/components.tsx @@ -189,7 +189,7 @@ export function useAccountUncategorizedTransactionsColumns() { { id: 'deposit', Header: intl.get('cash_flow.label.deposit'), - accessor: 'formattet_deposit_amount', + accessor: 'formatted_deposit_amount', width: 40, className: 'deposit', textOverview: true, diff --git a/packages/webapp/src/containers/CashFlow/CategorizeTransaction/drawers/CategorizeTransactionDrawer/CategorizeTransactionBoot.tsx b/packages/webapp/src/containers/CashFlow/CategorizeTransaction/drawers/CategorizeTransactionDrawer/CategorizeTransactionBoot.tsx index 1f7515066..6719c208c 100644 --- a/packages/webapp/src/containers/CashFlow/CategorizeTransaction/drawers/CategorizeTransactionDrawer/CategorizeTransactionBoot.tsx +++ b/packages/webapp/src/containers/CashFlow/CategorizeTransaction/drawers/CategorizeTransactionDrawer/CategorizeTransactionBoot.tsx @@ -2,20 +2,34 @@ import React, { useMemo } from 'react'; import { first } from 'lodash'; import { DrawerLoading } from '@/components'; -import { - useAccounts, - useBranches, - useUncategorizedTransaction, -} from '@/hooks/query'; +import { useAccounts, useBranches } from '@/hooks/query'; import { useFeatureCan } from '@/hooks/state'; import { Features } from '@/constants'; +import { Spinner } from '@blueprintjs/core'; -const CategorizeTransactionBootContext = React.createContext(); +interface CategorizeTransactionBootProps { + children: React.ReactNode; +} + +interface CategorizeTransactionBootValue { + branches: any; + accounts: any; + isBranchesLoading: boolean; + isAccountsLoading: boolean; + primaryBranch: any; +} + +const CategorizeTransactionBootContext = + React.createContext( + {} as CategorizeTransactionBootValue, + ); /** * Categorize transcation boot. */ -function CategorizeTransactionBoot({ uncategorizedTransactionId, ...props }) { +function CategorizeTransactionBoot({ + ...props +}: CategorizeTransactionBootProps) { // Detarmines whether the feature is enabled. const { featureCan } = useFeatureCan(); const isBranchFeatureCan = featureCan(Features.Branches); @@ -28,12 +42,6 @@ function CategorizeTransactionBoot({ uncategorizedTransactionId, ...props }) { {}, { enabled: isBranchFeatureCan }, ); - // Retrieves the uncategorized transaction. - const { - data: uncategorizedTransaction, - isLoading: isUncategorizedTransactionLoading, - } = useUncategorizedTransaction(uncategorizedTransactionId); - // Retrieves the primary branch. const primaryBranch = useMemo( () => branches?.find((b) => b.primary) || first(branches), @@ -41,18 +49,17 @@ function CategorizeTransactionBoot({ uncategorizedTransactionId, ...props }) { ); const provider = { - uncategorizedTransactionId, - uncategorizedTransaction, - isUncategorizedTransactionLoading, branches, accounts, isBranchesLoading, isAccountsLoading, primaryBranch, }; - const isLoading = - isBranchesLoading || isUncategorizedTransactionLoading || isAccountsLoading; + const isLoading = isBranchesLoading || isAccountsLoading; + if (isLoading) { + ; + } return ( @@ -61,6 +68,8 @@ function CategorizeTransactionBoot({ uncategorizedTransactionId, ...props }) { } const useCategorizeTransactionBoot = () => - React.useContext(CategorizeTransactionBootContext); + React.useContext( + CategorizeTransactionBootContext, + ); export { CategorizeTransactionBoot, useCategorizeTransactionBoot }; diff --git a/packages/webapp/src/containers/CashFlow/CategorizeTransaction/drawers/CategorizeTransactionDrawer/CategorizeTransactionContent.tsx b/packages/webapp/src/containers/CashFlow/CategorizeTransaction/drawers/CategorizeTransactionDrawer/CategorizeTransactionContent.tsx index c3b3413b9..f6767ac07 100644 --- a/packages/webapp/src/containers/CashFlow/CategorizeTransaction/drawers/CategorizeTransactionDrawer/CategorizeTransactionContent.tsx +++ b/packages/webapp/src/containers/CashFlow/CategorizeTransaction/drawers/CategorizeTransactionDrawer/CategorizeTransactionContent.tsx @@ -3,9 +3,10 @@ import styled from 'styled-components'; import { DrawerBody } from '@/components'; import { CategorizeTransactionBoot } from './CategorizeTransactionBoot'; import { CategorizeTransactionForm } from './CategorizeTransactionForm'; +import { useCategorizeTransactionTabsBoot } from '@/containers/CashFlow/CategorizeTransactionAside/CategorizeTransactionTabsBoot'; export function CategorizeTransactionContent({}) { - const uncategorizedTransactionId = 4; + const { uncategorizedTransactionId } = useCategorizeTransactionTabsBoot(); return ( { - closeDrawer(DRAWERS.CATEGORIZE_TRANSACTION); + closeMatchingTransactionAside(); }; return ( @@ -23,8 +22,8 @@ function CategorizeTransactionFormFooterRoot({