Skip to content
Merged

Pirc #17

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions app/dashboard/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,10 @@ export default function DashboardPage() {
const showWalletCta = !publicKey

return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6">
<div className="container mx-auto px-4 py-8 space-y-6 max-w-5xl">
<div className="min-h-screen premium-gradient pt-16 pb-20">
<div className="container mx-auto px-4 py-6">
<PageBackHeader title="Dashboard" />
<div className="space-y-6">
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-4">
{stats.map((stat) => (
<Card key={stat.label}>
Expand All @@ -168,12 +170,12 @@ export default function DashboardPage() {
</CardHeader>
<CardContent>
<div className="grid gap-4 grid-cols-2 md:grid-cols-3 lg:grid-cols-5">
<Link href="/invest">
<Button className="w-full h-20 text-lg" size="lg" variant="outline">
<TrendingUp className="mr-2 h-5 w-5" />
Launchpad
</Button>
</Link>
<Link href="/invest">
<Button className="w-full h-20 text-lg bg-transparent" size="lg" variant="outline">
<TrendingUp className="mr-2 h-5 w-5" />
Invest
</Button>
</Link>
<Link href="/savings">
<Button className="w-full h-20 text-lg bg-transparent" size="lg" variant="outline">
<PiggyBank className="mr-2 h-5 w-5" />
Expand Down Expand Up @@ -216,7 +218,7 @@ export default function DashboardPage() {
<CardContent className="pt-4">
<div className="flex items-center gap-2">
<TrendingUp className="h-5 w-5 text-muted-foreground" />
<span className="font-medium">Launchpad</span>
<span className="font-medium">Invest</span>
</div>
<p className="text-sm text-muted-foreground mt-1">
{openLaunchesCount} open launch{openLaunchesCount !== 1 ? "es" : ""}
Expand All @@ -233,7 +235,7 @@ export default function DashboardPage() {
</div>
<p className="text-sm text-muted-foreground mt-1">
{lockedSavingsCount} locked position{lockedSavingsCount !== 1 ? "s" : ""}
{nextUnlock && ` · Next unlock ${nextUnlock}`}
{nextUnlock && ` �- Next unlock ${nextUnlock}`}
</p>
</CardContent>
</Card>
Expand All @@ -246,7 +248,7 @@ export default function DashboardPage() {
<span className="font-medium">Borrow & lend</span>
</div>
<p className="text-sm text-muted-foreground mt-1">
{supplyPositions.length} supply · {borrowPositions.length} borrow
{supplyPositions.length} supply �- {borrowPositions.length} borrow
{borrowsAtRisk.length > 0 && (
<span className="text-amber-600 flex items-center gap-1 mt-1">
<AlertTriangle className="h-3 w-3" />
Expand All @@ -271,7 +273,7 @@ export default function DashboardPage() {
</CardHeader>
<CardContent>
<Link href="/profile">
<Button className="bg-gradient-to-r from-green-600 to-mint-500 text-white">Connect Wallet</Button>
<Button className="btn-gradient-primary">Open Profile</Button>
</Link>
</CardContent>
</Card>
Expand Down
8 changes: 4 additions & 4 deletions app/invest/[launchId]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -182,15 +182,15 @@ export default function InvestLaunchDetailPage() {

if (!launchId) {
return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6 flex items-center justify-center">
<div className="min-h-screen premium-gradient pt-16 pb-20 flex items-center justify-center">
<p className="text-muted-foreground">Invalid launch</p>
</div>
)
}

if (launchLoading || !launch) {
return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6 flex items-center justify-center">
<div className="min-h-screen premium-gradient pt-16 pb-20 flex items-center justify-center">
{launchError ? (
<Card className="max-w-md">
<CardContent className="pt-4">
Expand All @@ -216,7 +216,7 @@ export default function InvestLaunchDetailPage() {
launch.status === "allocation_running"

return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6">
<div className="min-h-screen premium-gradient pt-16 pb-20">
<div className="container mx-auto px-4 py-6 space-y-6">
<div className="flex items-center gap-4">
<Button variant="ghost" size="icon" asChild>
Expand Down Expand Up @@ -475,7 +475,7 @@ export default function InvestLaunchDetailPage() {
<div className="rounded-lg border p-4 space-y-2">
<p className="text-sm font-medium">Round: {selectedRound.status}</p>
<p className="text-sm text-muted-foreground">
Eligible: {selectedRound.eligibleHoldersCount ?? "—"} · Supply:{" "}
Eligible: {selectedRound.eligibleHoldersCount ?? "—"} �- Supply:{" "}
{selectedRound.totalEligibleSupply ?? "—"}
</p>
{holders.length > 0 && (
Expand Down
8 changes: 4 additions & 4 deletions app/invest/projects/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,15 @@ export default function MyProjectsPage() {

if (profileLoading) {
return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6 flex items-center justify-center">
<div className="min-h-screen premium-gradient pt-16 pb-20 flex items-center justify-center">
<p className="text-muted-foreground">Loading...</p>
</div>
)
}

if (!profile) {
return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6">
<div className="min-h-screen premium-gradient pt-16 pb-20">
<div className="container mx-auto px-4 py-6 max-w-2xl">
<div className="flex items-center gap-4 mb-6">
<Button variant="ghost" size="icon" asChild>
Expand All @@ -109,7 +109,7 @@ export default function MyProjectsPage() {
}

return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6">
<div className="min-h-screen premium-gradient pt-16 pb-20">
<div className="container mx-auto px-4 py-6 max-w-2xl">
<div className="flex items-center gap-4 mb-6">
<Button variant="ghost" size="icon" asChild>
Expand Down Expand Up @@ -220,7 +220,7 @@ export default function MyProjectsPage() {
<div>
<p className="font-medium">{p.name}</p>
<p className="text-sm text-muted-foreground">
{p.projectId} · {p.projectAppUrl}
{p.projectId} �- {p.projectAppUrl}
</p>
</div>
<Badge variant={STATUS_VARIANT[p.status] ?? "outline"}>{p.status}</Badge>
Expand Down
14 changes: 7 additions & 7 deletions app/lending/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,10 @@ function PoolCard({
{assetLabel}
</CardTitle>
<CardDescription>
Supply APY: {pool.supplyRate}% · Borrow: {pool.borrowRate}% · Collateral factor: {pool.collateralFactor}
Supply APY: {pool.supplyRate}% �- Borrow: {pool.borrowRate}% �- Collateral factor: {pool.collateralFactor}
</CardDescription>
<p className="text-xs text-muted-foreground mt-1">
Total supply: {pool.totalSupply} · Total borrow: {pool.totalBorrow}
Total supply: {pool.totalSupply} �- Total borrow: {pool.totalBorrow}
</p>
</CardHeader>
<CardContent className="space-y-4">
Expand Down Expand Up @@ -177,7 +177,7 @@ function SupplyPositionRow({ position }: { position: SupplyPosition }) {
<div>
<p className="font-medium flex items-center gap-1">
<TrendingUp className="h-4 w-4 text-green-500" />
Supply · {assetLabel}
Supply �- {assetLabel}
</p>
<p className="text-sm text-muted-foreground">Amount: {position.amount}</p>
</div>
Expand Down Expand Up @@ -211,10 +211,10 @@ function BorrowPositionRow({
<div>
<p className="font-medium flex items-center gap-1">
<TrendingDown className="h-4 w-4 text-amber-500" />
Borrow · {assetLabel}
Borrow �- {assetLabel}
</p>
<p className="text-sm text-muted-foreground">
Principal: {position.borrowedAmount} · Accrued: {position.accruedInterest ?? "0"} · Total debt: {totalDebt}
Principal: {position.borrowedAmount} �- Accrued: {position.accruedInterest ?? "0"} �- Total debt: {totalDebt}
</p>
{position.healthFactor != null && (
<p className={`text-xs mt-1 ${healthOk ? "text-muted-foreground" : "text-amber-600"}`}>
Expand Down Expand Up @@ -376,7 +376,7 @@ export default function LendingPage() {
}

return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6">
<div className="min-h-screen premium-gradient pt-16 pb-20">
<div className="container mx-auto px-4 py-6 space-y-6">
<PageBackHeader title="Borrow & Lend" />
<div>
Expand Down Expand Up @@ -417,7 +417,7 @@ export default function LendingPage() {
<p className="text-sm text-muted-foreground mt-1">
Credit score: <span className="font-medium text-foreground">{score}%</span>
{maxBorrowTermDays != null && (
<> · Max borrow term: <span className="font-medium text-foreground">{maxBorrowTermDays} days</span></>
<> �- Max borrow term: <span className="font-medium text-foreground">{maxBorrowTermDays} days</span></>
)}
{score >= 98 && !hasHistory && (
<span className="block mt-1 text-xs text-muted-foreground">Build history (repay a loan or supply) to unlock max term (5 years).</span>
Expand Down
8 changes: 4 additions & 4 deletions app/profile/rewards/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ export default function RewardsPage() {

if (!isAuthenticated) {
return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6 p-3 sm:p-4">
<div className="min-h-screen premium-gradient pt-16 pb-20 p-3 sm:p-4">
<div className="max-w-md mx-auto">
<Card>
<CardHeader>
Expand All @@ -104,7 +104,7 @@ export default function RewardsPage() {
}

return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6 p-3 sm:p-4">
<div className="min-h-screen premium-gradient pt-16 pb-20 p-3 sm:p-4">
<div className="max-w-md mx-auto space-y-6">
<div className="flex items-center gap-2">
<Button variant="ghost" size="icon" asChild>
Expand Down Expand Up @@ -223,7 +223,7 @@ export default function RewardsPage() {
<p className="font-medium text-sm">{p.amountPi} Pi</p>
<p className="text-xs text-muted-foreground">
{new Date(p.paidAt).toLocaleDateString()}
{p.operation ? ` · ${p.operation}` : ""}
{p.operation ? ` �- ${p.operation}` : ""}
</p>
</div>
{p.txHash && (
Expand Down Expand Up @@ -291,7 +291,7 @@ export default function RewardsPage() {
<div>
<p className="font-medium text-sm">@{r.referredUserName}</p>
<p className="text-xs text-muted-foreground">
{new Date(r.createdAt).toLocaleDateString()} · {r.status}
{new Date(r.createdAt).toLocaleDateString()} �- {r.status}
</p>
</div>
<span className="text-sm font-semibold text-primary">+{r.awardedPoints} pts</span>
Expand Down
8 changes: 4 additions & 4 deletions app/savings/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ function PositionRow({
<div>
<p className="font-medium">{assetLabel}</p>
<p className="text-sm text-muted-foreground">
Amount: {position.amount} · Unlocks: {new Date(position.unlockedAt).toLocaleString()}
Amount: {position.amount} �- Unlocks: {new Date(position.unlockedAt).toLocaleString()}
</p>
{depositedAt && (
<p className="text-xs text-muted-foreground">Deposited: {depositedAt}</p>
Expand Down Expand Up @@ -251,7 +251,7 @@ export default function SavingsPage() {
}

return (
<div className="min-h-screen premium-gradient pt-24 pb-24 lg:pb-6">
<div className="min-h-screen premium-gradient pt-16 pb-20">
<div className="container mx-auto px-4 py-6 space-y-6">
<PageBackHeader title="Savings" />
<div>
Expand Down Expand Up @@ -344,7 +344,7 @@ export default function SavingsPage() {
Deposit amount
</CardTitle>
<CardDescription>
{products[0]?.asset ? `${products[0].asset.code}` : "—"} · Min: {products[0]?.minAmount ?? "0"}
{products[0]?.asset ? `${products[0].asset.code}` : "—"} �- Min: {products[0]?.minAmount ?? "0"}
</CardDescription>
</CardHeader>
<CardContent className="space-y-3">
Expand Down Expand Up @@ -442,7 +442,7 @@ export default function SavingsPage() {
<>
<p className="text-sm text-muted-foreground">
Term: <span className="font-medium text-foreground">{formatTermLabel(depositTermOption.days)}</span>
{" · "}APY: <span className="font-medium text-foreground">{depositTermOption.apy}%</span>
{" �- "}APY: <span className="font-medium text-foreground">{depositTermOption.apy}%</span>
</p>
<p className="text-sm text-muted-foreground">
Unlocks: <span className="font-medium text-foreground">
Expand Down
Binary file modified public/android-chrome-192x192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/android-chrome-512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/favicon.ico
Binary file not shown.
Binary file modified public/logo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/pi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/placeholder-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/placeholder-user.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/placeholder.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading