From 5af7f0606be5b061e69093ac005d45fe45ea4c06 Mon Sep 17 00:00:00 2001 From: natib21 Date: Tue, 30 Jun 2026 13:52:27 +0000 Subject: [PATCH] style: apply consistent branding across fleet pages Import freightBrand theme from @/theme/freight-brand Color updates: - Primary buttons: color="edr-green" - Stat cards: top border #1B9E7A (freightBrand.primary) - Status badges: * Active/Completed: edr-green * In Progress: edr-amber-soft * Maintenance: edr-amber-soft * Overdue: edr-red * Unassigned: edr-slate - Ring progress: * Fuel: edr-accent (#F2A516) * Maintenance: edr-red - Progress bars: edr-green, edr-red, edr-amber-soft - Icons: Use edr-green, edr-blue, edr-accent, edr-red per metric Pages updated: - FleetDashboard: All metrics, progress bars, badges - FuelPurchasePage: Record button - MaintenancePage: Schedule button, badges - FinancialReportsPage: Ring progress colors Consistent palette across all fleet pages. Co-Authored-By: Claude Haiku 4.5 --- .../src/pages/fleet/FinancialReportsPage.tsx | 5 ++- .../src/pages/fleet/FleetDashboard.tsx | 45 ++++++++++--------- .../src/pages/fleet/FuelPurchasePage.tsx | 3 +- .../src/pages/fleet/MaintenancePage.tsx | 16 ++++--- 4 files changed, 38 insertions(+), 31 deletions(-) diff --git a/apps/edr-freight-web/backoffice/src/pages/fleet/FinancialReportsPage.tsx b/apps/edr-freight-web/backoffice/src/pages/fleet/FinancialReportsPage.tsx index 729c50427..f61583f8f 100644 --- a/apps/edr-freight-web/backoffice/src/pages/fleet/FinancialReportsPage.tsx +++ b/apps/edr-freight-web/backoffice/src/pages/fleet/FinancialReportsPage.tsx @@ -4,6 +4,7 @@ import { Card, Button, Stack, Group, Grid, Select, Text, ThemeIcon, RingProgress import { QUERY_KEYS } from '@/constants/QUERY_KEYS'; import { api } from '@/services/api'; import { vehiclesService } from '@/services/vehicles.service'; +import { freightBrand } from '@/theme/freight-brand'; interface FuelStats { vehicleId: string; @@ -162,7 +163,7 @@ export function FinancialReportsPage() { {report.fuelPercentage}% {report.fuelPercentage}% @@ -180,7 +181,7 @@ export function FinancialReportsPage() { {report.maintenancePercentage}% {report.maintenancePercentage}% diff --git a/apps/edr-freight-web/backoffice/src/pages/fleet/FleetDashboard.tsx b/apps/edr-freight-web/backoffice/src/pages/fleet/FleetDashboard.tsx index a977c592d..12c5725ed 100644 --- a/apps/edr-freight-web/backoffice/src/pages/fleet/FleetDashboard.tsx +++ b/apps/edr-freight-web/backoffice/src/pages/fleet/FleetDashboard.tsx @@ -1,11 +1,12 @@ import { useMemo } from 'react'; import { useQuery } from '@tanstack/react-query'; -import { Card, Stack, Group, Grid, Text, ThemeIcon, Progress, Badge, Table, RingProgress, Container, Title, Box, Tabs } from '@mantine/core'; -import { Truck, Fuel, Wrench, TrendingUp, AlertCircle, Users, User, MapPin, Calendar } from 'lucide-react'; +import { Card, Stack, Group, Grid, Text, ThemeIcon, Progress, Badge, Table, RingProgress, Container, Title, Box, Tabs, Button } from '@mantine/core'; +import { Truck, Fuel, Wrench, TrendingUp, AlertCircle, Users, User, MapPin, Calendar, BarChart3 } from 'lucide-react'; import Breadcrumbs from '@/components/ui/Breadcrumbs'; import { QUERY_KEYS } from '@/constants/QUERY_KEYS'; import { api } from '@/auth/http'; import { vehiclesService } from '@/services/vehicles.service'; +import { freightBrand } from '@/theme/freight-brand'; interface Vehicle { id: string; @@ -38,10 +39,10 @@ interface FleetMetrics { assignedDrivers: number; } -const StatCard = ({ icon: Icon, label, value, color = 'blue', change }: any) => ( - +const StatCard = ({ icon: Icon, label, value, color = 'edr-green', change }: any) => ( + - + @@ -50,10 +51,10 @@ const StatCard = ({ icon: Icon, label, value, color = 'blue', change }: any) => {label} - + {value} - {change && 0 ? 'green' : 'red'} size="lg">{change > 0 ? '+' : ''}{change}%} + {change && 0 ? 'edr-green' : 'edr-red'} size="lg">{change > 0 ? '+' : ''}{change}%} @@ -145,16 +146,16 @@ export function FleetDashboard() { {/* Primary Metrics */} - + - + - + - + @@ -172,15 +173,15 @@ export function FleetDashboard() { Active Vehicles {metrics.activeVehicles} / {metrics.totalVehicles} - +
Maintenance Overdue - {metrics.maintenanceOverdue} + {metrics.maintenanceOverdue} - +
@@ -188,7 +189,7 @@ export function FleetDashboard() { Idle / Under Maintenance {metrics.totalVehicles - metrics.activeVehicles} - +
@@ -205,8 +206,8 @@ export function FleetDashboard() { @@ -226,7 +227,7 @@ export function FleetDashboard() {
- + Fuel @@ -238,7 +239,7 @@ export function FleetDashboard() {
- + Maintenance @@ -284,7 +285,7 @@ export function FleetDashboard() { {v.manufacturer} {v.model} - + {v.status || 'UNKNOWN'} @@ -337,9 +338,9 @@ export function FleetDashboard() { {d.assignedVehicle ? ( - Assigned + Assigned ) : ( - Unassigned + Unassigned )} diff --git a/apps/edr-freight-web/backoffice/src/pages/fleet/FuelPurchasePage.tsx b/apps/edr-freight-web/backoffice/src/pages/fleet/FuelPurchasePage.tsx index 0869ceb26..574b9d1c6 100644 --- a/apps/edr-freight-web/backoffice/src/pages/fleet/FuelPurchasePage.tsx +++ b/apps/edr-freight-web/backoffice/src/pages/fleet/FuelPurchasePage.tsx @@ -23,6 +23,7 @@ import { useToast } from "@/hooks/use-toast"; import { api } from "@/auth/http"; import { QUERY_KEYS } from "@/constants/QUERY_KEYS"; import { vehiclesService, type Vehicle as VehicleType } from "@/services/vehicles.service"; +import { freightBrand } from "@/theme/freight-brand"; interface FuelPurchase { id: string; @@ -123,7 +124,7 @@ export default function FuelPurchasePage() { Fuel Purchases - diff --git a/apps/edr-freight-web/backoffice/src/pages/fleet/MaintenancePage.tsx b/apps/edr-freight-web/backoffice/src/pages/fleet/MaintenancePage.tsx index d94ed375c..61c1215ba 100644 --- a/apps/edr-freight-web/backoffice/src/pages/fleet/MaintenancePage.tsx +++ b/apps/edr-freight-web/backoffice/src/pages/fleet/MaintenancePage.tsx @@ -2,9 +2,11 @@ import { useState, useMemo } from 'react'; import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { Card, Button, Modal, Stack, Group, Grid, Select, TextInput, NumberInput, Table, Badge, Text } from '@mantine/core'; import { DateInput } from '@mantine/dates'; +import { Plus } from 'lucide-react'; import { QUERY_KEYS } from '@/constants/QUERY_KEYS'; import { api } from '@/services/api'; import { vehiclesService } from '@/services/vehicles.service'; +import { freightBrand } from '@/theme/freight-brand'; interface MaintenanceSchedule { id: string; @@ -76,12 +78,12 @@ export function MaintenancePage() { const statusColor = (status: string) => { const colors: Record = { - SCHEDULED: 'blue', - IN_PROGRESS: 'yellow', - COMPLETED: 'green', - OVERDUE: 'red', + SCHEDULED: 'edr-blue', + IN_PROGRESS: 'edr-amber-soft', + COMPLETED: 'edr-green', + OVERDUE: 'edr-red', }; - return colors[status] || 'gray'; + return colors[status] || 'edr-slate'; }; return ( @@ -90,7 +92,9 @@ export function MaintenancePage() { Schedule Maintenance - +