From 0fb91fe60cc18e4af129e08afdf7ad4f65b35ec9 Mon Sep 17 00:00:00 2001 From: Jane Kamata Date: Wed, 18 Mar 2026 23:39:30 -0400 Subject: [PATCH 1/9] Cashflow cards --- .../src/main-page/cash-flow/CashFlowPage.tsx | 23 ++++-------- .../cash-flow/components/CashFlowCard.tsx | 37 +++++++++++++++++++ 2 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 frontend/src/main-page/cash-flow/components/CashFlowCard.tsx diff --git a/frontend/src/main-page/cash-flow/CashFlowPage.tsx b/frontend/src/main-page/cash-flow/CashFlowPage.tsx index 2d96988c..addc105a 100644 --- a/frontend/src/main-page/cash-flow/CashFlowPage.tsx +++ b/frontend/src/main-page/cash-flow/CashFlowPage.tsx @@ -1,26 +1,17 @@ -import "../dashboard/styles/Dashboard.css"; import { observer } from "mobx-react-lite"; +import CashFlowCard from "./components/CashFlowCard"; +import { faDollarSign, faArrowTrendUp, faUserGroup } from "@fortawesome/free-solid-svg-icons"; +import "../dashboard/styles/Dashboard.css"; const CashFlowPage = observer(() => { return (
{/* Row 1 */} -
- {/* Card 1 placeholder */} -
- -
- {/* Card 2 placeholder */} -
- -
- {/* Card 3 placeholder */} -
- -
- {/* Card 4 placeholder */} -
+ + + + {/* Row 2 */}
diff --git a/frontend/src/main-page/cash-flow/components/CashFlowCard.tsx b/frontend/src/main-page/cash-flow/components/CashFlowCard.tsx new file mode 100644 index 00000000..7ea3b7ad --- /dev/null +++ b/frontend/src/main-page/cash-flow/components/CashFlowCard.tsx @@ -0,0 +1,37 @@ +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { IconProp } from "@fortawesome/fontawesome-svg-core"; + +type CardProps = { + text: string; + value: string; + className: string; + logo: IconProp; + size?: "small" | "medium"; +}; + +export default function CashFlowCard({ + text, + value, + className, + logo, + size, +}: CardProps) { + return ( +
+
+
+ {text} +
+ +
+
+ {value} +
+
+ ); +} From 33bce84b86b75dc2ac11e71812a3d9e0752435ec Mon Sep 17 00:00:00 2001 From: Jane Kamata Date: Thu, 19 Mar 2026 02:10:30 -0400 Subject: [PATCH 2/9] Setting up components --- frontend/src/components/InputField.tsx | 5 +- .../src/main-page/cash-flow/CashFlowPage.tsx | 40 +++---- .../cash-flow/components/CashAddCosts.tsx | 42 +++++++ .../cash-flow/components/CashAddRevenue.tsx | 55 +++++++++ .../components/CashAnnualSettings.tsx | 26 ++++ .../components/CashCreateLineItem.tsx | 24 ++++ .../cash-flow/components/CashPosition.tsx | 17 +++ .../cash-flow/components/CashProjection.tsx | 33 ++++++ .../components/CashProjectionChart.tsx | 111 ++++++++++++++++++ .../cash-flow/components/CashSourceList.tsx | 15 +++ frontend/src/sign-up/PasswordField.tsx | 4 +- frontend/src/styles/index.css | 1 + 12 files changed, 343 insertions(+), 30 deletions(-) create mode 100644 frontend/src/main-page/cash-flow/components/CashAddCosts.tsx create mode 100644 frontend/src/main-page/cash-flow/components/CashAddRevenue.tsx create mode 100644 frontend/src/main-page/cash-flow/components/CashAnnualSettings.tsx create mode 100644 frontend/src/main-page/cash-flow/components/CashCreateLineItem.tsx create mode 100644 frontend/src/main-page/cash-flow/components/CashPosition.tsx create mode 100644 frontend/src/main-page/cash-flow/components/CashProjection.tsx create mode 100644 frontend/src/main-page/cash-flow/components/CashProjectionChart.tsx create mode 100644 frontend/src/main-page/cash-flow/components/CashSourceList.tsx diff --git a/frontend/src/components/InputField.tsx b/frontend/src/components/InputField.tsx index 719e827e..61361037 100644 --- a/frontend/src/components/InputField.tsx +++ b/frontend/src/components/InputField.tsx @@ -5,6 +5,7 @@ type InputFieldProps = { label: string; required?: boolean; error?: boolean; + className?: string; } & Omit, "id" | "className">; /** @@ -20,7 +21,7 @@ export default function InputField({ }: InputFieldProps) { return (
-