Location: /src/components/sites/
Main Components
1. SitesManager (/src/components/sites/SitesManager/SitesManager.js)
- Main container component for the sites management page
- Manages site list view with active/blocked tabs
- Handles pagination and sorting
- Integrates with Redux for state management
- Shows activity history modal for individual sites
- Contains tabs for Active and Blocked sites
2. SitesList (/src/components/sites/SitesList/SitesList.js)
- Renders the list/table of sites
- Displays site information in rows
- Handles site selection and actions
3. SitesListHeader (/src/components/sites/SitesListHeader/SitesListHeader.js)
- Header component for the sites list
- Contains search, filters, and bulk action buttons
4. Site (/src/components/sites/Site/)
Site.ts- Site type definitionsSiteContainer.tsx- Container component for individual siteutils/fetchSiteData.ts- Utility for fetching site datautils/storeAs.ts- Storage utility
5. SiteDetails (/src/components/sites/SiteDetails/)
- Detailed view/edit form for individual sites
SiteDetails.ts- Type definitionsSiteDetailsContainer.tsx- Main container with form logic (2000+ lines)SiteDetailsInputMultipleUsers.tsx- Multi-user input component- Components:
AssignedDepartment.tsx- Department assignmentFormControl.tsx- Form control wrapperLabel.tsx- Label component
- Hooks:
useRadiusList.ts- Radius list managementuseSiteActivityHistory.ts- Activity history tracking
6. SiteSchedule (/src/components/sites/SiteSchedule/)
- Complex scheduling functionality for sites
SiteScheduleContainer.tsx- Main [schedule](../Schedule/Schedule Listing/ScheduleListingOverview.md) containerSiteScheduleSingle.tsx- Single site schedulingSiteScheduleTeam.tsx- Team schedulingSiteScheduleAddQuestionnaireModal.tsx- Add questionnaire modal- Multiple tab components for [schedule](../Schedule/Schedule Listing/ScheduleListingOverview.md) selection
- Extensive utility functions for [schedule](../Schedule/Schedule Listing/ScheduleListingOverview.md) validation and management
7. SiteTabNavigation (/src/components/sites/SiteTabNavigation.tsx)
- Navigation tabs for site pages
Modal Components
1. SitesBulkModal (/src/components/sites/SitesBulkModal/)
- Bulk site upload functionality
SitesBulkModal.tsx- Main modal component (469 lines)generateSitesExcel.ts- Generate Excel templateuploadBulkSites.ts- Handle bulk upload- 4-step process: Download template, fill data, select file, upload
2. SiteBulkScheduleModal (/src/components/sites/SiteBulkScheduleModal/)
- Bulk [schedule](../Schedule/Schedule Listing/ScheduleListingOverview.md) upload for multiple sites
SiteBulkScheduleModal.tsx- Main modal (554 lines)- Utils:
generateExcelTemplate.tsuploadBulkSchedule.ts
- Includes replace [schedule](../Schedule/Schedule Listing/ScheduleListingOverview.md) option
3. SiteBulkScheduleEditModal (/src/components/sites/SiteBulkScheduleEditModal/)
- Edit [schedules](../Schedule/Schedule Listing/ScheduleListingOverview.md) in bulk
SiteBulkScheduleEditModal.tsx- Utils:
downloadBulkScheduleTemplate.tsdownloadBulkScheduleUploadTemplate.tsuploadBulkScheduleEdit.ts
4. SitesQuickScheduleModal (/src/components/sites/SitesQuickScheduleModal/)
- Quick scheduling interface
SitesQuickScheduleModal.tsSitesQuickScheduleModalContainer.js
5. SiteAddSKUModal (/src/components/sites/SiteAddSKUModal/)
- Add SKU to sites functionality
SiteAddSKUModal.js
6. SiteBlockConfirmationModal (/src/components/sites/SiteBlockConfirmationModal/)
- Confirmation dialog for blocking sites
SiteBlockConfirmationModal.tsxSiteBlockConfirmationModal.test_deprecated.tsx
7. SiteSaveTemplateModal (/src/components/sites/SiteSaveTemplateModal/)
- Save site configuration as template
SiteSaveTemplateModal.tsx
8. SiteImportTemplateModal (/src/components/sites/SiteImportTemplateModal/)
- Import site configuration from template
SiteImportTemplateModal.tsSiteImportTemplateModalContainer.tsx
9. SiteSupervisorModal (/src/components/sites/SiteSupervisorModal/)
- Manage site supervisors
SiteSupervisorModal.tsx
10. SiteRemoveAuditorModal (/src/components/sites/SiteRemoveAuditorModal/)
- Remove auditor from site
SiteRemoveAuditorModal.tsx
Supporting Components
1. SiteGroupManager (/src/components/sites/SiteGroupManager/)
- Site group management functionality
SiteGroupManager.tsxSiteGroupManagerHeader.tsxSiteGroupEditor/- Edit site groupsSiteGroupEditor.tsxSiteGroupEditor.Container.tsxSiteGroupEditor.Styles.tsSiteGroupEditor.Types.d.ts
SiteGroupList/- List site groupsSiteGroupList.tsxSiteGroupListItem.tsx
2. SiteScheduleActivity (/src/components/sites/SiteScheduleActivity/)
- Activity tracking for [schedules](../Schedule/Schedule Listing/ScheduleListingOverview.md)
SiteScheduleActivity.tsxSiteScheduleActivityFilters.tsxSiteScheduleActivityTable.tsx
3. SiteOffDays (/src/components/sites/SiteOffDays/)
- Manage site off days/holidays
SiteOffDays.tsxSiteOffDaysContainer.tsxSiteOffDays.test.tsx- Hook:
useSiteOffDays.ts
4. SiteReports (/src/components/sites/SiteReports/)
- Site reporting functionality
SiteReports.tsxSiteReports.test.tsx
5. SiteReportsFilter (/src/components/sites/SiteReportsFilter/)
- Report filters
SiteReportsFilter.tsx
6. SitePOList (/src/components/sites/SitePOList/)
- Purchase order list for sites
SitePOList.jsSitePOListContainer.js
7. SiteSKUList (/src/components/sites/SiteSKUList/)
- SKU list management for sites
SiteSKUList.jsSiteSKUListContainer.js
8. Site Editor Components
SiteEditorQuestionnaireConfig/- Questionnaire configurationSiteEditorQuestionnaireConfig.cssSiteEditorQuestionnaireConfig.js
SiteEditorQuestionnaireDeadline/- Deadline managementSiteEditorQuestionnaireDeadline.tsxActiveSchedulePeriod.tsx
SiteEditorQuestionnaireSchedule/- [Schedule](../Schedule/Schedule Listing/ScheduleListingOverview.md) editorSiteEditorQuestionnaireSchedule.cssSiteEditorQuestionnaireSchedule.js
SiteEditorQuestionnaireTable/- Questionnaire table viewSiteEditorQuestionnaireTable.cssSiteEditorQuestionnaireTable.js
9. Deprecated/Legacy
DEPRECATED_ScheduleFormField/- Legacy [schedule](../Schedule/Schedule Listing/ScheduleListingOverview.md) form fieldScheduleFormField.cssScheduleFormField.js
SiteMapsFormField/- Maps integrationSiteMapsFormField.js
Utility Functions and Hooks
Global Hooks (/src/components/sites/hooks/)
useOngoingReports.ts- Track ongoing reportsuseQuestionnaireList.js- Questionnaire list management
Global Utils (/src/components/sites/utils/)
generateCreateButton.tsx- Generate create button component
Key Features Summary
- Site Management: Create, edit, view, and manage sites
- [Bulk Operationss](../Bulk Operation/BulkOperationOverview.md): Upload sites and [schedules](../Schedule/Schedule Listing/ScheduleListingOverview.md) in bulk via Excel
- Scheduling: Complex scheduling system with multiple questionnaires
- Team Management: Assign auditors and supervisors to sites
- Templates: Save and import site configurations
- Activity Tracking: Monitor site activity and changes
- Reporting: Generate and filter site reports
- Group Management: Organize sites into groups
- Off Days: Configure site-specific holidays/off days
- SKU/PO Management: Track SKUs and purchase orders per site
Component Architecture Notes
- Mixed File Types: Components use both
.jsand.tsxextensions - Test Coverage: Some components have associated test files
- Styling: Mix of CSS files and styled-components
- Containers: Separation between container and presentation components
- Legacy Code: Some deprecated components still exist
- Complex Components: SiteDetails and SiteSchedule are particularly large and complex