Connect Your Wallet
++ Connect your Freighter wallet to view your savings groups, contributions, and upcoming payouts. +
+diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx new file mode 100644 index 0000000..a103694 --- /dev/null +++ b/src/app/dashboard/page.tsx @@ -0,0 +1,188 @@ +"use client"; + +import { useEffect, useState } from "react"; +import Link from "next/link"; +import { Navbar } from "@/components/Navbar"; +import { GroupCard } from "@/components/GroupCard"; +import { useWallet } from "@/app/providers"; +import { SavingsGroup, GroupStatus, formatAmount } from "@sorosave/sdk"; + +// Placeholder data - will be replaced with contract queries filtered by connected wallet +const PLACEHOLDER_GROUPS: SavingsGroup[] = [ + { + id: 1, + name: "Lagos Savings Circle", + admin: "GABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFG", + token: "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + contributionAmount: 1000000000n, + cycleLength: 604800, + maxMembers: 5, + members: ["GABCD...", "GEFGH...", "GIJKL..."], + payoutOrder: [], + currentRound: 0, + totalRounds: 0, + status: GroupStatus.Forming, + createdAt: 1700000000, + }, + { + id: 2, + name: "DeFi Builders Fund", + admin: "GABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFG", + token: "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + contributionAmount: 5000000000n, + cycleLength: 2592000, + maxMembers: 10, + members: ["GABCD...", "GEFGH...", "GIJKL...", "GMNOP...", "GQRST..."], + payoutOrder: ["GABCD...", "GEFGH...", "GIJKL...", "GMNOP...", "GQRST..."], + currentRound: 2, + totalRounds: 5, + status: GroupStatus.Active, + createdAt: 1699000000, + }, +]; + +function needsContribution(group: SavingsGroup): boolean { + return group.status === GroupStatus.Active && group.currentRound < group.totalRounds; +} + +function StatCard({ label, value, sub, color = "text-gray-900" }: { + label: string; value: string; sub?: string; color?: string; +}) { + return ( +
{label}
+{value}
+ {sub &&{sub}
} ++ Connect your Freighter wallet to view your savings groups, contributions, and upcoming payouts. +
++ {address ? `${address.slice(0, 8)}...${address.slice(-6)}` : ""} +
+Loading your groups...
+Join or create a savings group to get started.
+