,
- ) => {
- setSubmitting(true);
- getPlaidLinkToken()
- .then((res) => {
- setSubmitting(false);
- closeDialog(DialogsName.ConnectBankCreditCard);
- setPlaidId(res.data.link_token);
- })
- .catch(() => {
- setSubmitting(false);
- AppToaster.show({
- message: 'Something went wrong.',
- intent: Intent.DANGER,
- });
- });
- };
-
- return (
-
-
-
-
-
- );
-}
-
-export default R.compose(withDialogActions)(ConnectBankDialogBodyRoot);
diff --git a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogContent.tsx b/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogContent.tsx
deleted file mode 100644
index 1bbc9c970..000000000
--- a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogContent.tsx
+++ /dev/null
@@ -1,48 +0,0 @@
-// @ts-nocheck
-import styled from 'styled-components';
-import { Stack } from '@/components';
-import { TellerIcon } from '../Icons/TellerIcon';
-import { YodleeIcon } from '../Icons/YodleeIcon';
-import { PlaidIcon } from '../Icons/PlaidIcon';
-import { BankServiceCard } from './ConnectBankServiceCard';
-
-const TopDesc = styled('p')`
- margin-bottom: 20px;
- color: #5f6b7c;
-`;
-
-export function ConnectBankDialogContent() {
- return (
-
-
- Connect your bank accounts and fetch the bank transactions using
- one of our supported third-party service providers.
-
-
-
- }
- >
- Plaid gives the connection to 12,000 financial institutions across US, UK and Canada.
-
-
- }
- disabled
- >
- Connect instantly with more than 5,000 financial institutions across US.
-
-
- }
- disabled
- >
- Connect instantly with a global network of financial institutions.
-
-
-
- );
-}
diff --git a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankServiceCard.tsx b/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankServiceCard.tsx
deleted file mode 100644
index 72b0852a6..000000000
--- a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankServiceCard.tsx
+++ /dev/null
@@ -1,72 +0,0 @@
-import styled from 'styled-components';
-import { Group } from '@/components';
-
-const BankServiceIcon = styled('div')`
- height: 40px;
- width: 40px;
- border: 1px solid #c8cad0;
- border-radius: 3px;
- display: flex;
-
- svg {
- margin: auto;
- }
-`;
-const BankServiceContent = styled(`div`)`
- flex: 1 0;
-`;
-const BankServiceCardRoot = styled('button')`
- border-radius: 3px;
- border: 1px solid #c8cad0;
- transition: all 0.1s ease-in-out;
- background: transparent;
- text-align: inherit;
- padding: 14px;
-
- &:not(:disabled) {
- cursor: pointer;
- }
- &:hover:not(:disabled) {
- border-color: #0153cc;
- }
- &:disabled {
- background: #f9fdff;
- }
-`;
-const BankServiceTitle = styled(`h3`)`
- font-weight: 600;
- font-size: 14px;
- color: #2d333d;
-`;
-const BankServiceDesc = styled('p')`
- margin-top: 4px;
- margin-bottom: 6px;
- font-size: 13px;
- color: #738091;
-`;
-
-interface BankServiceCardProps {
- title: string;
- children: React.ReactNode;
- disabled?: boolean;
- icon: React.ReactNode;
-}
-
-export function BankServiceCard({
- title,
- children,
- icon,
- disabled,
-}: BankServiceCardProps) {
- return (
-
-
- {icon}
-
- {title}
- {children}
-
-
-
- );
-}
diff --git a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/index.tsx b/packages/webapp/src/containers/CashFlow/ConnectBankDialog/index.tsx
deleted file mode 100644
index 2267439d5..000000000
--- a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/index.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export * from './ConnectBankDialog';
diff --git a/packages/webapp/src/hooks/utils/useOpenPlaidConnect.ts b/packages/webapp/src/hooks/utils/useOpenPlaidConnect.ts
new file mode 100644
index 000000000..a32ba1804
--- /dev/null
+++ b/packages/webapp/src/hooks/utils/useOpenPlaidConnect.ts
@@ -0,0 +1,25 @@
+import { useCallback } from 'react';
+import { useSetBankingPlaidToken } from '../state/banking';
+import { AppToaster } from '@/components';
+import { useGetPlaidLinkToken } from '../query';
+import { Intent } from '@blueprintjs/core';
+
+export const useOpenPlaidConnect = () => {
+ const { mutateAsync: getPlaidLinkToken, isLoading } = useGetPlaidLinkToken();
+ const setPlaidId = useSetBankingPlaidToken();
+
+ const openPlaidAsync = useCallback(() => {
+ return getPlaidLinkToken()
+ .then((res) => {
+ setPlaidId(res.data.link_token);
+ })
+ .catch(() => {
+ AppToaster.show({
+ message: 'Something went wrong.',
+ intent: Intent.DANGER,
+ });
+ });
+ }, [getPlaidLinkToken, setPlaidId]);
+
+ return { openPlaidAsync, isPlaidLoading: isLoading };
+};