EverydayTech Platform - Developer Reference
Complete Source Code Documentation - All Applications
Loading...
Searching...
No Matches
page.tsx
Go to the documentation of this file.
1"use client";
2import { Icon } from '@/contexts/IconContext';
3
4export default function SupplierDataIssues() {
5 const data = [
6 {
7 id: 1,
8 supplierName: "Office Supplies Co",
9 missingFields: ["Phone Number", "Email"],
10 severity: "high",
11 lastOrder: "2024-12-15",
12 totalOrders: 45
13 },
14 {
15 id: 2,
16 supplierName: "Tech Distributors Ltd",
17 missingFields: ["Address", "Contact Person"],
18 severity: "medium",
19 lastOrder: "2025-01-05",
20 totalOrders: 12
21 },
22 {
23 id: 3,
24 supplierName: "Paper Products Inc",
25 missingFields: ["Email", "Website"],
26 severity: "low",
27 lastOrder: "2024-11-28",
28 totalOrders: 8
29 }
30 ];
31
32 return (
33 <div className="p-6 min-h-screen bg-bg">
34 {/* Header with back button */}
35 <div className="mb-6">
36 <div className="flex items-center gap-3 mb-2">
37 <a
38 href="/pages/reports?source=advisor"
39 className="text-muted hover:text-brand transition-colors"
40 >
41 <Icon name="arrow_back" size={24} />
42 </a>
43 <h1 className="text-3xl font-bold text-text">Supplier Data Issues</h1>
44 </div>
45 <p className="text-muted ml-9">
46 Suppliers with incomplete or missing contact information
47 </p>
48 </div>
49
50 {/* Table */}
51 <div className="bg-surface rounded-lg shadow-sm border border-border overflow-hidden">
52 <div className="overflow-x-auto">
53 <table className="w-full">
54 <thead className="bg-[var(--brand)] text-surface">
55 <tr>
56 <th className="px-6 py-3 text-left text-xs font-medium uppercase tracking-wider">
57 Supplier Name
58 </th>
59 <th className="px-6 py-3 text-left text-xs font-medium uppercase tracking-wider">
60 Missing Information
61 </th>
62 <th className="px-6 py-3 text-left text-xs font-medium uppercase tracking-wider">
63 Severity
64 </th>
65 <th className="px-6 py-3 text-left text-xs font-medium uppercase tracking-wider">
66 Last Order
67 </th>
68 <th className="px-6 py-3 text-right text-xs font-medium uppercase tracking-wider">
69 Total Orders
70 </th>
71 <th className="px-6 py-3 text-left text-xs font-medium uppercase tracking-wider">
72 Actions
73 </th>
74 </tr>
75 </thead>
76 <tbody className="divide-y divide-border">
77 {data.length === 0 ? (
78 <tr>
79 <td colSpan={6} className="px-6 py-12 text-center">
80 <Icon name="check_circle" size={48} className="text-success mx-auto mb-3" />
81 <p className="text-muted font-medium">All supplier information is complete</p>
82 <p className="text-muted-2 text-sm mt-1">No missing data detected</p>
83 </td>
84 </tr>
85 ) : (
86 data.map((row) => (
87 <tr key={row.id} className="hover:bg-surface-2 transition-colors">
88 <td className="px-6 py-4 text-sm font-medium text-text">
89 {row.supplierName}
90 </td>
91 <td className="px-6 py-4 text-sm text-muted">
92 {row.missingFields.join(", ")}
93 </td>
94 <td className="px-6 py-4">
95 <span className={`px-2 py-1 text-xs font-medium rounded ${
96 row.severity === 'high' ? 'bg-error/20 text-error' :
97 row.severity === 'medium' ? 'bg-warning/20 text-warning' :
98 'bg-muted/20 text-muted'
99 }`}>
100 {row.severity.toUpperCase()}
101 </span>
102 </td>
103 <td className="px-6 py-4 text-sm text-muted">
104 {row.lastOrder}
105 </td>
106 <td className="px-6 py-4 text-sm text-muted text-right">
107 {row.totalOrders}
108 </td>
109 <td className="px-6 py-4 text-sm space-x-3">
110 <a href={`/pages/suppliers/${row.id}`} className="text-brand hover:text-brand2 transition-colors">
111 Complete Info
112 </a>
113 <a href={`/pages/suppliers/${row.id}`} className="text-muted hover:text-text transition-colors">
114 View Supplier
115 </a>
116 </td>
117 </tr>
118 ))
119 )}
120 </tbody>
121 </table>
122 </div>
123 </div>
124 </div>
125 );
126}