The maintenance components have been reorganized into a more structured hierarchy based on user roles and functionality.
src/components/Maintenance/
├── Admin/
│ ├── MaintenanceTable.jsx # Admin table with edit/delete capabilities
│ ├── EditMaintenancePopup.jsx # Admin-only edit popup
│ └── index.js # Admin components exports
├── User/
│ ├── AddMaintenancePopup.jsx # User create maintenance popup
│ ├── MaintenanceTableUser.jsx # User read-only table
│ └── index.js # User components exports
├── shared/
│ ├── DeleteConfirmDialog.jsx # Shared delete confirmation
│ ├── MaintenanceHomeCard.jsx # Navigation card component
│ ├── MaintenanceNotificationCard.jsx # Notification display card
│ ├── PaginationComponent.jsx # Pagination utility component
│ ├── MaintenanceDialog.css # Shared dialog styles
│ ├── MaintenancePopup.css # Shared popup styles (empty)
│ └── index.js # Shared components exports
└── index.js # Main exports file
- MaintenanceTable.jsx: Full-featured table with edit, delete, and notification capabilities
- EditMaintenancePopup.jsx: Modal for editing maintenance requests with status updates
- AddMaintenancePopup.jsx: Modal for users to create new maintenance requests
- MaintenanceTableUser.jsx: Read-only table view for users to see their requests
- DeleteConfirmDialog.jsx: Reusable confirmation dialog for delete operations
- MaintenanceHomeCard.jsx: Card component for maintenance category navigation
- MaintenanceNotificationCard.jsx: Component for displaying maintenance notifications
- PaginationComponent.jsx: Pagination utility for maintenance notification lists
- MaintenanceDialog.css: Shared styling for all maintenance dialogs
- MaintenancePopup.css: Additional popup styles (currently empty)
import { MaintenanceTable } from '../../../components/Maintenance/MaintenanceTable.jsx';
import { AddMaintenancePopup } from '../../../components/Maintenance/AddMaintenancePopup.jsx';
import MaintenenHomeCard from '../../../components/Maintenance/MaintenanceHomeCard';import { MaintenanceTable } from '../../../components/Maintenance/Admin';
import { AddMaintenancePopup } from '../../../components/Maintenance/User';
import { MaintenanceHomeCard } from '../../../components/Maintenance/shared';import { MaintenanceTable } from '../../../components/Maintenance/Admin/MaintenanceTable.jsx';
import { AddMaintenancePopup } from '../../../components/Maintenance/User/AddMaintenancePopup.jsx';
import { MaintenanceHomeCard } from '../../../components/Maintenance/shared/MaintenanceHomeCard.jsx';MaintenanceTable.jsx→Admin/MaintenanceTable.jsxEditMaintenancePopup.jsx→Admin/EditMaintenancePopup.jsxAddMaintenancePopup.jsx→User/AddMaintenancePopup.jsxMaintenanceTableUser.jsx→User/MaintenanceTableUser.jsxDeleteConfirmDialog.jsx→shared/DeleteConfirmDialog.jsxMaintenanceHomeCard.jsx→shared/MaintenanceHomeCard.jsxMaintenanceNotificationCard.jsx→shared/MaintenanceNotificationCard.jsxPaginationComponent.jsx→shared/PaginationComponent.jsxMaintenanceDialog.css→shared/MaintenanceDialog.cssMaintenancePopup.css→shared/MaintenancePopup.css
src/pages/User/Maintenance/MaintenanceDetailsUser.jsxsrc/pages/Admin/Maintenance/MaintenanceHome.jsxsrc/pages/Admin/Maintenance/MaintenanceDetails.jsxsrc/components/Maintenance/Admin/MaintenanceTable.jsxsrc/components/Maintenance/Admin/EditMaintenancePopup.jsxsrc/components/Maintenance/User/AddMaintenancePopup.jsxsrc/components/Maintenance/shared/DeleteConfirmDialog.jsx
src/components/Maintenance/index.js- Main exportssrc/components/Maintenance/Admin/index.js- Admin component exportssrc/components/Maintenance/User/index.js- User component exportssrc/components/Maintenance/shared/index.js- Shared component exports
- Clear Separation of Concerns: Components are organized by user role and functionality
- Better Maintainability: Related components are grouped together
- Cleaner Imports: Index files provide cleaner import statements
- Scalability: New components can be easily added to appropriate folders
- Role-based Access: Clear distinction between admin and user components
- Shared Resources: Common components and styles are properly shared