diff --git a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogBody.tsx b/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogBody.tsx index 8e4501b79..83062d7a3 100644 --- a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogBody.tsx +++ b/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogBody.tsx @@ -26,6 +26,7 @@ function ConnectBankDialogBodyRoot({ const { mutateAsync: getPlaidLinkToken } = useGetPlaidLinkToken(); const setPlaidId = useSetBankingPlaidToken(); + // Handles the form submitting. const handleSubmit = ( values: ConnectBankDialogForm, { setSubmitting }: FormikHelpers, diff --git a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogContent.tsx b/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogContent.tsx index 9172f94cb..1bbc9c970 100644 --- a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogContent.tsx +++ b/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankDialogContent.tsx @@ -1,30 +1,48 @@ -import { Button } from '@blueprintjs/core'; -import { FFormGroup, FSelect } from '@/components'; -import { useFormikContext } from 'formik'; +// @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() { - const { isSubmitting } = useFormikContext(); - 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. + +
); } - -export const BankFeedsServiceProviders = [{ label: 'Plaid', key: 'plaid' }]; diff --git a/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankServiceCard.tsx b/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankServiceCard.tsx new file mode 100644 index 000000000..72b0852a6 --- /dev/null +++ b/packages/webapp/src/containers/CashFlow/ConnectBankDialog/ConnectBankServiceCard.tsx @@ -0,0 +1,72 @@ +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/Icons/PlaidIcon.tsx b/packages/webapp/src/containers/CashFlow/Icons/PlaidIcon.tsx new file mode 100644 index 000000000..7a9f5ef62 --- /dev/null +++ b/packages/webapp/src/containers/CashFlow/Icons/PlaidIcon.tsx @@ -0,0 +1,17 @@ + +export const PlaidIcon = (props: any) => ( + + + +); diff --git a/packages/webapp/src/containers/CashFlow/Icons/TellerIcon.tsx b/packages/webapp/src/containers/CashFlow/Icons/TellerIcon.tsx new file mode 100644 index 000000000..74ec99dd0 --- /dev/null +++ b/packages/webapp/src/containers/CashFlow/Icons/TellerIcon.tsx @@ -0,0 +1,42 @@ +export const TellerIcon = () => ( + + + + + + + + + + + + + + +); diff --git a/packages/webapp/src/containers/CashFlow/Icons/YodleeIcon.tsx b/packages/webapp/src/containers/CashFlow/Icons/YodleeIcon.tsx new file mode 100644 index 000000000..3016cd729 --- /dev/null +++ b/packages/webapp/src/containers/CashFlow/Icons/YodleeIcon.tsx @@ -0,0 +1,45 @@ +export const YodleeIcon = (props: any) => ( + + + + + + + + + + + +);