Files
ladill-transfer/resources/views/transfer/dashboard.blade.php
T
isaaccladandCursor e76955eaa4
Deploy Ladill Transfer / deploy (push) Successful in 40s
Reduce Transfer storage price to GHS 0.15 per GB per month.
Updates config default, env examples, and removes hardcoded GHS 1.00 copy on the dashboard.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 10:45:12 +00:00

76 lines
4.9 KiB
PHP

<x-user-layout>
<x-slot name="title">Overview</x-slot>
@php
$fmt = fn ($m) => 'GHS '.number_format($m / 100, 2);
$fmtBytes = function (int $bytes) {
if ($bytes >= 1073741824) return number_format($bytes / 1073741824, 2).' GB';
if ($bytes >= 1048576) return number_format($bytes / 1048576, 1).' MB';
return number_format($bytes / 1024, 0).' KB';
};
@endphp
<div class="space-y-6">
<div>
<h1 class="text-xl font-semibold text-slate-900">Overview</h1>
<p class="mt-1 text-sm text-slate-500">Active transfers, storage used, and recent download activity.</p>
</div>
<div class="grid gap-4 sm:grid-cols-2 lg:grid-cols-4">
<div class="rounded-2xl border border-slate-200 bg-white p-5">
<p class="text-xs font-medium uppercase tracking-wide text-slate-400">Active transfers</p>
<p class="mt-1.5 text-2xl font-semibold text-slate-900">{{ number_format($activeCount) }}</p>
</div>
<div class="rounded-2xl border border-slate-200 bg-white p-5">
<p class="text-xs font-medium uppercase tracking-wide text-slate-400">Storage used</p>
<p class="mt-1.5 text-2xl font-semibold text-slate-900">{{ $fmtBytes($storageBytes) }}</p>
<p class="mt-1 text-xs text-slate-500">~GHS {{ number_format($monthlyEstimateGhs, 2) }}/mo</p>
</div>
<div class="rounded-2xl border border-slate-200 bg-white p-5">
<p class="text-xs font-medium uppercase tracking-wide text-slate-400">Downloads (30d)</p>
<p class="mt-1.5 text-2xl font-semibold text-slate-900">{{ number_format($downloads30d) }}</p>
</div>
<div class="rounded-2xl border border-amber-100 bg-amber-50/60 p-5">
<p class="text-xs font-medium uppercase tracking-wide text-amber-700">Expiring soon</p>
<p class="mt-1.5 text-2xl font-semibold text-slate-900">{{ number_format($expiringSoon) }}</p>
<p class="mt-1 text-xs text-amber-700">Within 7 days</p>
</div>
</div>
<div class="grid gap-4 lg:grid-cols-2">
<div class="rounded-2xl border border-slate-200 bg-white">
<div class="flex items-center justify-between border-b border-slate-100 px-6 py-4">
<h2 class="font-semibold text-slate-900">Recent transfers</h2>
<a href="{{ route('transfer.transfers.index') }}" class="text-sm font-medium text-indigo-600 hover:text-indigo-800">View all</a>
</div>
@if($recentTransfers->isEmpty())
<p class="px-6 py-8 text-sm text-slate-500">No transfers yet. Upload files and share a link or QR code.</p>
@else
<div class="divide-y divide-slate-100">
@foreach($recentTransfers as $item)
<a href="{{ route('transfer.transfers.show', $item) }}" class="flex items-center justify-between px-6 py-4 hover:bg-slate-50">
<div>
<p class="font-medium text-slate-900">{{ $item->title }}</p>
<p class="text-xs text-slate-500">{{ $fmtBytes($item->storage_bytes) }} · {{ $item->downloads_total }} downloads</p>
</div>
<span class="text-xs text-slate-400">{{ $item->created_at->diffForHumans() }}</span>
</a>
@endforeach
</div>
@endif
</div>
<div class="rounded-2xl border border-indigo-100 bg-indigo-50/60 p-6">
<p class="text-xs font-medium uppercase tracking-wide text-indigo-600">Wallet balance</p>
<p class="mt-1.5 text-2xl font-semibold text-slate-900">{{ $fmt($balanceMinor) }}</p>
<p class="mt-2 text-sm text-slate-600">Storage is billed at GHS {{ number_format((float) config('transfer.price_per_gb_month', 0.15), 2) }} per GB per month from your Ladill wallet.</p>
<div class="mt-4 space-y-3">
<a href="{{ route('transfer.transfers.create') }}" class="flex items-center justify-between rounded-xl border border-white bg-white px-4 py-3 text-sm hover:bg-indigo-50/50">
<span class="font-medium text-slate-700">New transfer</span>
<span class="text-slate-400"></span>
</a>
<a href="{{ route('account.wallet') }}" class="flex items-center justify-between rounded-xl border border-white bg-white px-4 py-3 text-sm hover:bg-indigo-50/50">
<span class="font-medium text-slate-700">Top up wallet</span>
<span class="text-slate-400"></span>
</a>
</div>
</div>
</div>
</div>
</x-user-layout>