Refactor: modularize components and add centralized config #31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR refactors the bikemap codebase to improve maintainability and prepare for future multi-geography support. The changes reduce complexity in large components while preserving all existing functionality.
Key Changes
1. Centralized Configuration (
src/config/map.config.ts)2. Modularized Sidebar Components (
src/components/sidebar/)BikeRoutes,MapLayers,AttractionsList,BikeResourcesList,BikeRentalListSidebarHeader,InformationSection,Footer,ToggleSwitchtypes.tsand barrel export inindex.ts3. Custom Hooks (
src/hooks/)useToast- Toast notifications with auto-dismiss and fade-outuseMapResize- Window and sidebar resize handlinguseLocationTracking- GPS location tracking (extracted)4. Utilities Consolidation
utils/utils.ts→utils/map.tsfor clarity5. CSS Cleanup
globals.css(map container, location markers, pulse animation)map-legend.css6. Bug Fix: Bidirectional Route Selection
7. New Tests
map.config.test.ts- 7 tests for configurationuseToast.test.ts- 6 tests for toast hookBikeRoutes.test.tsx- 6 tests for route selection component8. Documentation
Test Plan
pnpm test:run)pnpm lint)