diff --git a/apps/web-dashboard/src/app/esim/page.tsx b/apps/web-dashboard/src/app/esim/page.tsx new file mode 100644 index 0000000..dbc7275 --- /dev/null +++ b/apps/web-dashboard/src/app/esim/page.tsx @@ -0,0 +1,70 @@ +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import { Button } from "@/components/ui/button"; +import { Radio, Download, RefreshCw } from "lucide-react"; + +const profiles = [ + { id: "prof_001", imsi: "208930000000001", euiccId: "89049032004008882600001", status: "active", subscriber: "Alice Martin", activatedAt: "2026-03-15" }, + { id: "prof_002", imsi: "208930000000002", euiccId: "89049032004008882600002", status: "active", subscriber: "Bob Dupont", activatedAt: "2026-03-20" }, + { id: "prof_003", imsi: "208930000000003", euiccId: "89049032004008882600003", status: "downloading", subscriber: "Claire Moreau", activatedAt: "-" }, + { id: "prof_004", imsi: "208930000000005", euiccId: "89049032004008882600005", status: "active", subscriber: "Emma Petit", activatedAt: "2026-02-10" }, + { id: "prof_005", imsi: "208930000000008", euiccId: "89049032004008882600008", status: "inactive", subscriber: "Henri Faure", activatedAt: "-" }, +]; + +const statusVariant = (s: string) => + s === "active" ? "success" : s === "downloading" ? "secondary" : s === "failed" ? "destructive" : "warning"; + +export default function ESIMPage() { + return ( +
+
+
+ +
+

eSIM Profiles

+

Manage eSIM profile provisioning via SM-DP+ (ES2+).

+
+
+ +
+ + + + All Profiles + + +
+ + + + + + + + + + + + + + {profiles.map((p) => ( + + + + + + + + + + ))} + +
Profile IDSubscriberIMSIeUICC IDStatusActivatedActions
{p.id}{p.subscriber}{p.imsi}{p.euiccId}{p.status}{p.activatedAt} + +
+
+
+
+
+ ); +}