feat: Backup & Restore - Manual backup tested complete.

This commit is contained in:
Eric Gullickson
2025-12-25 10:50:09 -06:00
parent 8ef6b3d853
commit 0357ce391f
38 changed files with 5734 additions and 1415447 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,61 +0,0 @@
/**
* @ai-summary Mobile admin screen for gas station management
* @ai-context CRUD operations for global station data with mobile UI
*/
import React from 'react';
import { Navigate } from 'react-router-dom';
import { GlassCard } from '../../../shared-minimal/components/mobile/GlassCard';
import { MobileContainer } from '../../../shared-minimal/components/mobile/MobileContainer';
import { useAdminAccess } from '../../../core/auth/useAdminAccess';
export const AdminStationsMobileScreen: React.FC = () => {
const { isAdmin, loading } = useAdminAccess();
if (loading) {
return (
<MobileContainer>
<div className="flex items-center justify-center min-h-[400px]">
<div className="text-center">
<div className="text-slate-500 mb-2">Loading admin access...</div>
<div className="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto"></div>
</div>
</div>
</MobileContainer>
);
}
if (!isAdmin) {
return <Navigate to="/garage/settings" replace />;
}
return (
<MobileContainer>
<div className="space-y-4 pb-20 p-4">
<div className="text-center mb-6">
<h1 className="text-2xl font-bold text-slate-800">Station Management</h1>
<p className="text-slate-500 mt-2">Manage gas station data</p>
</div>
<GlassCard padding="md">
<div>
<h2 className="text-lg font-semibold text-slate-800 mb-4">Gas Stations</h2>
<p className="text-sm text-slate-600 mb-4">
Station management interface coming soon.
</p>
<div className="space-y-2 text-sm text-slate-600">
<p className="font-semibold">Features:</p>
<ul className="list-disc pl-5 space-y-1">
<li>View all gas stations</li>
<li>Create new stations</li>
<li>Update station information</li>
<li>Delete stations</li>
<li>View station usage statistics</li>
</ul>
</div>
</div>
</GlassCard>
</div>
</MobileContainer>
);
};