feat: comprehensive mobile optimization, role-based AI chatbot, and multi-role dashboard enhancements
- Rewrote AI chatbot context system with deep role-aware data injection for all 7 roles (Owner, Admin, Field Agent, Contractor, Subcontractor, Vendor, Customer) plus guest fallback - Added mobile-responsive bottom-sheet modals across all roles (ChangeOrderDrawer, InvoiceDetailModal, FinancialSummaryModal, VendorFinancialSummaryModal, FinancialDetailsModal) - Converted Owner Project List and Vendor Orders tables to mobile card views with touch-friendly layouts - Optimized Vendor Management and People Directory with mobile list/detail toggle and back navigation - Fixed Document Control mobile view: horizontally scrollable filter tabs, proper overflow chain for document visibility - Added responsive padding, text scaling, and flex-wrap across StatCard, TaskDetailsModal, OwnerSnapshot, OwnerProjectDetail, VendorDashboard, and DocumentManagement - Expanded mock data store with richer vendor invoices, orders, documents, and compliance records - Enhanced Owner Snapshot with financial KPI cards, urgent items panel, and Action Center modal - Built Contractor Dashboard with task management, financial summary, and performance metrics - Built Subcontractor Dashboard with clock-in tracking, task assignments, and invoice management - Enhanced Vendor Dashboard with earnings summary, active orders, compliance status, and performance rating - Added icon-only tab navigation on mobile for OwnerProjectDetail - Extended attribution signatures across all platform pages
This commit is contained in:
+21
-3
@@ -17,6 +17,8 @@ import OwnerSnapshot from './pages/owner/OwnerSnapshot';
|
||||
import PeopleDirectory from './pages/owner/PeopleDirectory';
|
||||
import VendorDirectory from './pages/owner/VendorDirectory';
|
||||
import DocumentManagement from './pages/owner/DocumentManagement';
|
||||
import OwnerProjectList from './pages/owner/OwnerProjectList';
|
||||
import OwnerProjectDetail from './pages/owner/OwnerProjectDetail';
|
||||
import PlaceholderDashboard from './pages/PlaceholderDashboard';
|
||||
import ProjectList from './pages/contractor/ProjectList';
|
||||
import AiAssistantPage from './pages/AiAssistantPage';
|
||||
@@ -107,11 +109,19 @@ function App() {
|
||||
<DocumentManagement />
|
||||
</ProtectedRoute>
|
||||
} />
|
||||
<Route path="/owner/projects" element={
|
||||
<ProtectedRoute allowedRoles={['OWNER']}>
|
||||
<OwnerProjectList />
|
||||
</ProtectedRoute>
|
||||
} />
|
||||
<Route path="/owner/projects/:projectId" element={
|
||||
<ProtectedRoute allowedRoles={['OWNER']}>
|
||||
<OwnerProjectDetail />
|
||||
</ProtectedRoute>
|
||||
} />
|
||||
<Route path="/owner/maps" element={
|
||||
<ProtectedRoute allowedRoles={['OWNER']}>
|
||||
<div className="h-full w-full bg-zinc-900 flex items-center justify-center text-white">
|
||||
<span className="text-xl">Detailed Market Intelligence Map (Coming Soon)</span>
|
||||
</div>
|
||||
<Maps />
|
||||
</ProtectedRoute>
|
||||
} />
|
||||
|
||||
@@ -141,6 +151,14 @@ function App() {
|
||||
</ProtectedRoute>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/admin/maps"
|
||||
element={
|
||||
<ProtectedRoute allowedRoles={['ADMIN', 'OWNER']}>
|
||||
<Maps />
|
||||
</ProtectedRoute>
|
||||
}
|
||||
/>
|
||||
|
||||
{/* Contractor Routes */}
|
||||
<Route path="/contractor/dashboard" element={
|
||||
|
||||
Reference in New Issue
Block a user