Add applications card to operations tab
cgen-058e28acc2cb45669d170568d01bbead
This commit is contained in:
parent
264c24b87e
commit
ece02e9bb4
1 changed files with 66 additions and 0 deletions
|
|
@ -803,6 +803,72 @@ export default function Admin() {
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
|
<Card className="bg-card/60 border-border/40 backdrop-blur">
|
||||||
|
<CardHeader>
|
||||||
|
<div className="flex items-center gap-2">
|
||||||
|
<ClipboardList className="h-5 w-5 text-sky-300" />
|
||||||
|
<CardTitle>Project applications</CardTitle>
|
||||||
|
</div>
|
||||||
|
<CardDescription>Review collaboration requests and prioritize approvals.</CardDescription>
|
||||||
|
</CardHeader>
|
||||||
|
<CardContent className="space-y-3 text-sm text-muted-foreground">
|
||||||
|
<div className="flex flex-wrap items-center justify-between gap-2">
|
||||||
|
<p>
|
||||||
|
{applicationsLoading
|
||||||
|
? "Loading application data…"
|
||||||
|
: `${applications.length} total submissions (${pendingApplications} waiting)`}
|
||||||
|
</p>
|
||||||
|
<Button
|
||||||
|
variant="outline"
|
||||||
|
size="sm"
|
||||||
|
onClick={loadApplications}
|
||||||
|
disabled={applicationsLoading}
|
||||||
|
>
|
||||||
|
{applicationsLoading ? (
|
||||||
|
<Loader2 className="mr-2 h-4 w-4 animate-spin" />
|
||||||
|
) : (
|
||||||
|
<RefreshCw className="mr-2 h-4 w-4" />
|
||||||
|
)}
|
||||||
|
Refresh
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
{applicationsLoading ? (
|
||||||
|
<div className="flex items-center gap-2 text-sm">
|
||||||
|
<Loader2 className="h-4 w-4 animate-spin text-aethex-300" />
|
||||||
|
Synchronizing with Supabase…
|
||||||
|
</div>
|
||||||
|
) : applications.length ? (
|
||||||
|
<div className="grid gap-2">
|
||||||
|
{applications.slice(0, 6).map((app) => (
|
||||||
|
<div
|
||||||
|
key={app.id}
|
||||||
|
className="space-y-1 rounded border border-border/30 bg-background/40 p-3"
|
||||||
|
>
|
||||||
|
<div className="flex flex-wrap items-center justify-between gap-2">
|
||||||
|
<p className="font-medium text-foreground">
|
||||||
|
{app.applicant_name || app.applicant_email || "Unknown applicant"}
|
||||||
|
</p>
|
||||||
|
<Badge variant="outline" className="capitalize">
|
||||||
|
{(app.status ?? "pending").toLowerCase()}
|
||||||
|
</Badge>
|
||||||
|
</div>
|
||||||
|
<p className="text-xs text-muted-foreground">
|
||||||
|
{app.projects?.title ?? "No project title"}
|
||||||
|
</p>
|
||||||
|
{app.created_at ? (
|
||||||
|
<p className="text-[11px] text-muted-foreground/80">
|
||||||
|
Submitted {new Date(app.created_at).toLocaleString()}
|
||||||
|
</p>
|
||||||
|
) : null}
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
<p>No applications on file. Encourage partners to apply via briefs.</p>
|
||||||
|
)}
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
|
||||||
<Card className="bg-card/60 border-border/40 backdrop-blur">
|
<Card className="bg-card/60 border-border/40 backdrop-blur">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue