Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Update frontend/src/pages/SupportEngineerPanel.jsx
Browse files
frontend/src/pages/SupportEngineerPanel.jsx
CHANGED
|
@@ -28,7 +28,8 @@ import {
|
|
| 28 |
Receipt,
|
| 29 |
Trash2,
|
| 30 |
CheckCircle,
|
| 31 |
-
XCircle
|
|
|
|
| 32 |
} from 'lucide-react';
|
| 33 |
import { CustomModal } from '../components/CustomModal';
|
| 34 |
|
|
@@ -646,72 +647,63 @@ export const SupportEngineerPanel = () => {
|
|
| 646 |
<div className="flex flex-col gap-lg w-full text-left font-body">
|
| 647 |
|
| 648 |
{/* Header Banner */}
|
| 649 |
-
<div className="flex flex-col md:flex-row md:items-center justify-between gap-md border-b border-outline-variant pb-md">
|
| 650 |
<div>
|
| 651 |
-
<
|
| 652 |
-
<
|
| 653 |
-
|
| 654 |
-
</h1>
|
| 655 |
-
<span className="px-2.5 py-0.5 rounded-full text-[11px] font-extrabold uppercase bg-blue-500/10 text-blue-600 border border-blue-500/30">
|
| 656 |
-
SUPPORT CONSOLE
|
| 657 |
-
</span>
|
| 658 |
-
</div>
|
| 659 |
<p className="font-body-md text-on-surface-variant text-[13.5px] mt-1 m-0">
|
| 660 |
-
Client environment inspection, troubleshooting assistance,
|
| 661 |
</p>
|
| 662 |
</div>
|
| 663 |
|
| 664 |
<div className="flex flex-wrap items-center gap-2">
|
| 665 |
<button
|
| 666 |
onClick={fetchStats}
|
| 667 |
-
className="flex items-center gap-1.5 px-3 py-1.5 bg-surface-container border border-outline-variant hover:bg-surface-container-high text-on-surface rounded-lg font-bold text-[12.5px] cursor-pointer transition-all"
|
| 668 |
>
|
| 669 |
-
<RefreshCw className={`w-
|
| 670 |
Sync Metrics
|
| 671 |
</button>
|
| 672 |
<button
|
| 673 |
onClick={() => navigate('/dashboard')}
|
| 674 |
-
className="flex items-center gap-1.5 px-3 py-1.5 bg-
|
| 675 |
>
|
| 676 |
-
<
|
| 677 |
Org Dashboard
|
| 678 |
</button>
|
| 679 |
<button
|
| 680 |
onClick={() => navigate('/super-admin/logs')}
|
| 681 |
-
className="flex items-center gap-1.5 px-3 py-1.5 bg-surface-container border border-outline-variant hover:bg-surface-container-high text-on-surface rounded-lg font-bold text-[12.5px] cursor-pointer transition-all"
|
| 682 |
>
|
| 683 |
-
<
|
| 684 |
Logs & Threats
|
| 685 |
</button>
|
| 686 |
</div>
|
| 687 |
</div>
|
| 688 |
|
| 689 |
-
{/* Tabs Navigation */}
|
| 690 |
-
<div className="flex items-center gap-
|
| 691 |
{[
|
| 692 |
-
{ id: 'overview', label: 'Overview'
|
| 693 |
-
{ id: 'organizations', label: 'Organizations'
|
| 694 |
-
{ id: 'members', label: 'Members'
|
| 695 |
-
{ id: 'audit', label: 'Audit Logs'
|
| 696 |
-
{ id: 'bookings', label: 'Bookings'
|
| 697 |
-
{ id: 'emails', label: 'Emails'
|
| 698 |
-
].map(tab =>
|
| 699 |
-
|
| 700 |
-
|
| 701 |
-
|
| 702 |
-
|
| 703 |
-
|
| 704 |
-
|
| 705 |
-
|
| 706 |
-
|
| 707 |
-
|
| 708 |
-
|
| 709 |
-
|
| 710 |
-
|
| 711 |
-
{tab.label}
|
| 712 |
-
</button>
|
| 713 |
-
);
|
| 714 |
-
})}
|
| 715 |
</div>
|
| 716 |
|
| 717 |
{/* OVERVIEW TAB */}
|
|
|
|
| 28 |
Receipt,
|
| 29 |
Trash2,
|
| 30 |
CheckCircle,
|
| 31 |
+
XCircle,
|
| 32 |
+
BarChart3
|
| 33 |
} from 'lucide-react';
|
| 34 |
import { CustomModal } from '../components/CustomModal';
|
| 35 |
|
|
|
|
| 647 |
<div className="flex flex-col gap-lg w-full text-left font-body">
|
| 648 |
|
| 649 |
{/* Header Banner */}
|
| 650 |
+
<div className="flex flex-col md:flex-row md:items-center justify-between gap-md border-b border-outline-variant/60 pb-md">
|
| 651 |
<div>
|
| 652 |
+
<h1 className="font-extrabold text-on-surface tracking-tight text-[24px] m-0 flex items-center gap-1.5">
|
| 653 |
+
Support Engineer <span className="text-primary">Operations</span>
|
| 654 |
+
</h1>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 655 |
<p className="font-body-md text-on-surface-variant text-[13.5px] mt-1 m-0">
|
| 656 |
+
Client environment inspection, troubleshooting assistance, and system logs.
|
| 657 |
</p>
|
| 658 |
</div>
|
| 659 |
|
| 660 |
<div className="flex flex-wrap items-center gap-2">
|
| 661 |
<button
|
| 662 |
onClick={fetchStats}
|
| 663 |
+
className="flex items-center gap-1.5 px-3.5 py-1.5 bg-surface-container border border-outline-variant hover:bg-surface-container-high text-on-surface rounded-lg font-bold text-[12.5px] cursor-pointer transition-all shadow-2xs"
|
| 664 |
>
|
| 665 |
+
<RefreshCw className={`w-3.5 h-3.5 text-primary ${loading ? 'animate-spin' : ''}`} />
|
| 666 |
Sync Metrics
|
| 667 |
</button>
|
| 668 |
<button
|
| 669 |
onClick={() => navigate('/dashboard')}
|
| 670 |
+
className="flex items-center gap-1.5 px-3.5 py-1.5 bg-surface-container border border-outline-variant hover:bg-surface-container-high text-on-surface rounded-lg font-bold text-[12.5px] cursor-pointer transition-all shadow-2xs"
|
| 671 |
>
|
| 672 |
+
<BarChart3 className="w-3.5 h-3.5 text-primary" />
|
| 673 |
Org Dashboard
|
| 674 |
</button>
|
| 675 |
<button
|
| 676 |
onClick={() => navigate('/super-admin/logs')}
|
| 677 |
+
className="flex items-center gap-1.5 px-3.5 py-1.5 bg-surface-container border border-outline-variant hover:bg-surface-container-high text-on-surface rounded-lg font-bold text-[12.5px] cursor-pointer transition-all shadow-2xs"
|
| 678 |
>
|
| 679 |
+
<Activity className="w-3.5 h-3.5 text-primary" />
|
| 680 |
Logs & Threats
|
| 681 |
</button>
|
| 682 |
</div>
|
| 683 |
</div>
|
| 684 |
|
| 685 |
+
{/* Tabs Navigation (Pill Design matching screenshot) */}
|
| 686 |
+
<div className="flex items-center gap-2 border-b border-outline-variant/60 pb-3 overflow-x-auto hide-scrollbar">
|
| 687 |
{[
|
| 688 |
+
{ id: 'overview', label: 'Overview' },
|
| 689 |
+
{ id: 'organizations', label: 'Organizations' },
|
| 690 |
+
{ id: 'members', label: 'Members' },
|
| 691 |
+
{ id: 'audit', label: 'Audit Logs' },
|
| 692 |
+
{ id: 'bookings', label: 'Bookings' },
|
| 693 |
+
{ id: 'emails', label: 'Emails' }
|
| 694 |
+
].map(tab => (
|
| 695 |
+
<button
|
| 696 |
+
key={tab.id}
|
| 697 |
+
onClick={() => setActiveTab(tab.id)}
|
| 698 |
+
className={`px-4 py-2 font-bold text-[13.5px] rounded-lg transition-all cursor-pointer border-0 ${
|
| 699 |
+
activeTab === tab.id
|
| 700 |
+
? 'bg-primary text-white shadow-sm'
|
| 701 |
+
: 'text-on-surface-variant hover:text-on-surface bg-transparent hover:bg-surface-container/50'
|
| 702 |
+
}`}
|
| 703 |
+
>
|
| 704 |
+
{tab.label}
|
| 705 |
+
</button>
|
| 706 |
+
))}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 707 |
</div>
|
| 708 |
|
| 709 |
{/* OVERVIEW TAB */}
|