merge: integrate subcontractor, org-settings & commission features from project-refinement

# Conflicts:
#	src/App.jsx
#	src/components/Layout.jsx
#	src/data/mockStore.jsx
#	src/pages/LeadsListPage.jsx
#	src/pages/owner/OwnerProjectDetail.jsx
#	src/pages/owner/OwnerSnapshot.jsx
This commit is contained in:
Satyam Rastogi
2026-05-29 01:11:03 +05:30
13 changed files with 5564 additions and 229 deletions
+22
View File
@@ -20,6 +20,7 @@ import DocumentManagement from './pages/owner/DocumentManagement';
import OwnerProjectList from './pages/owner/OwnerProjectList';
import OwnerProjectDetail from './pages/owner/OwnerProjectDetail';
import OrgSettings from './pages/owner/OrgSettings';
import SubcontractorTasksPage from './pages/owner/SubcontractorTasksPage';
import PlaceholderDashboard from './pages/PlaceholderDashboard';
import ProCanvas from './pages/ProCanvas';
import ProjectList from './pages/contractor/ProjectList';
@@ -30,6 +31,7 @@ import VendorDashboard from './pages/vendor/VendorDashboard';
import VendorOrders from './pages/vendor/VendorOrders';
import ContractorDashboard from './pages/contractor/ContractorDashboard';
import SubContractorDashboard from './pages/subcontractor/SubContractorDashboard';
import SubcontractorTaskDetailPage from './pages/subcontractor/SubcontractorTaskDetailPage';
import CreateLeadPage from './pages/CreateLeadPage';
import LeadsListPage from './pages/LeadsListPage';
import LynkDispatchPage from './pages/LynkDispatchPage';
@@ -221,6 +223,21 @@ function App() {
<OrgSettings />
</ProtectedRoute>
} />
<Route path="/admin/settings" element={
<ProtectedRoute allowedRoles={['ADMIN']}>
<OrgSettings />
</ProtectedRoute>
} />
<Route path="/owner/subcontractor-tasks" element={
<ProtectedRoute allowedRoles={['OWNER']}>
<SubcontractorTasksPage />
</ProtectedRoute>
} />
<Route path="/admin/subcontractor-tasks" element={
<ProtectedRoute allowedRoles={['ADMIN', 'OWNER']}>
<SubcontractorTasksPage />
</ProtectedRoute>
} />
{/* Protected Admin Routes — Owner has full admin access */}
<Route
@@ -372,6 +389,11 @@ function App() {
<ProjectList />
</ProtectedRoute>
} />
<Route path="/subcontractor/tasks/:taskId" element={
<ProtectedRoute allowedRoles={['SUBCONTRACTOR']}>
<SubcontractorTaskDetailPage />
</ProtectedRoute>
} />
</Route>
{/* Catch all */}