Gas Station Feature

This commit is contained in:
Eric Gullickson
2025-11-04 18:46:46 -06:00
parent d8d0ada83f
commit 5dc58d73b9
61 changed files with 12952 additions and 52 deletions

View File

@@ -26,6 +26,8 @@ const FuelLogsPage = lazy(() => import('./features/fuel-logs/pages/FuelLogsPage'
const DocumentsPage = lazy(() => import('./features/documents/pages/DocumentsPage').then(m => ({ default: m.DocumentsPage })));
const DocumentDetailPage = lazy(() => import('./features/documents/pages/DocumentDetailPage').then(m => ({ default: m.DocumentDetailPage })));
const MaintenancePage = lazy(() => import('./features/maintenance/pages/MaintenancePage').then(m => ({ default: m.MaintenancePage })));
const StationsPage = lazy(() => import('./features/stations/pages/StationsPage').then(m => ({ default: m.StationsPage })));
const StationsMobileScreen = lazy(() => import('./features/stations/mobile/StationsMobileScreen').then(m => ({ default: m.default })));
const VehiclesMobileScreen = lazy(() => import('./features/vehicles/mobile/VehiclesMobileScreen').then(m => ({ default: m.VehiclesMobileScreen })));
const VehicleDetailMobile = lazy(() => import('./features/vehicles/mobile/VehicleDetailMobile').then(m => ({ default: m.VehicleDetailMobile })));
const DocumentsMobileScreen = lazy(() => import('./features/documents/mobile/DocumentsMobileScreen'));
@@ -148,7 +150,7 @@ const LogFuelScreen: React.FC = () => {
return (
<div className="space-y-4">
<MobileErrorBoundary screenName="FuelLogForm" key="fuel-form">
<MobileErrorBoundary screenName="FuelLogForm">
<FuelLogForm onSuccess={() => {
// Refresh dependent data
try {
@@ -163,7 +165,7 @@ const LogFuelScreen: React.FC = () => {
}
}} />
</MobileErrorBoundary>
<MobileErrorBoundary screenName="FuelLogsSection" key="fuel-section">
<MobileErrorBoundary screenName="FuelLogsSection">
<GlassCard>
<div className="py-2">
{isLoading ? (
@@ -181,7 +183,7 @@ const LogFuelScreen: React.FC = () => {
</GlassCard>
</MobileErrorBoundary>
<MobileErrorBoundary screenName="FuelLogEditDialog" key="fuel-edit-dialog">
<MobileErrorBoundary screenName="FuelLogEditDialog">
<FuelLogEditDialog
open={!!editingLog}
log={editingLog}
@@ -308,6 +310,7 @@ function App() {
{ key: "Dashboard", label: "Dashboard", icon: <HomeRoundedIcon /> },
{ key: "Vehicles", label: "Vehicles", icon: <DirectionsCarRoundedIcon /> },
{ key: "Log Fuel", label: "Log Fuel", icon: <LocalGasStationRoundedIcon /> },
{ key: "Stations", label: "Stations", icon: <LocalGasStationRoundedIcon /> },
{ key: "Documents", label: "Documents", icon: <DescriptionRoundedIcon /> },
{ key: "Settings", label: "Settings", icon: <SettingsRoundedIcon /> },
];
@@ -479,6 +482,31 @@ function App() {
</MobileErrorBoundary>
</motion.div>
)}
{activeScreen === "Stations" && (
<motion.div
key="stations"
initial={{opacity:0, y:8}}
animate={{opacity:1, y:0}}
exit={{opacity:0, y:-8}}
transition={{ duration: 0.2, ease: "easeOut" }}
>
<MobileErrorBoundary screenName="Stations">
<React.Suspense fallback={
<div className="space-y-4">
<GlassCard>
<div className="p-4">
<div className="text-slate-500 py-6 text-center">
Loading stations screen...
</div>
</div>
</GlassCard>
</div>
}>
<StationsMobileScreen />
</React.Suspense>
</MobileErrorBoundary>
</motion.div>
)}
</AnimatePresence>
<DebugInfo />
</Layout>
@@ -523,7 +551,7 @@ function App() {
<Route path="/documents" element={<DocumentsPage />} />
<Route path="/documents/:id" element={<DocumentDetailPage />} />
<Route path="/maintenance" element={<MaintenancePage />} />
<Route path="/stations" element={<div>Stations (TODO)</div>} />
<Route path="/stations" element={<StationsPage />} />
<Route path="/settings" element={<SettingsPage />} />
<Route path="*" element={<Navigate to="/vehicles" replace />} />
</Routes>