|
|
c4e301a84c
|
fix: address code review findings - memory leaks and redundant queries (#192)
Fixed 5 critical issues from code review:
1. **GlobalSearchTrigger hook listener leak**
- Added destroyed() callback to remove click listener
- Prevents memory leak on LiveView unmount
2. **NetworkMap/WeathermapViewer hook listener leaks**
- Store zoom/fit button handlers as properties
- Remove DOM event listeners in destroyed() callback
- Fixes leak on every LiveView remount
3. **SitesMap uses undocumented window.liveSocket.execJS**
- Changed to proper LiveView pattern using pushEvent
- Attach listener via Leaflet's popupopen event
4. **handle_info(:refresh_data) double DB fetch**
- Removed redundant Devices.get_device call
- Reuse device from assign_base_data
5. **Redundant DB queries in DeviceLive.Show overview**
- Changed load_sensor_chart_data to accept snmp_device
- Changed load_overall_traffic_chart_data to accept snmp_device
- Eliminated 4 redundant Snmp.get_device_with_associations calls
Also removed unused functions:
- load_equipment_data/2
- reload_active_tab_data/1
- assign_subscriber_impact/1
Note: DeviceLive.Show module size (2252 lines) is acknowledged but
deferred as it requires larger architectural refactoring.
Reviewed-on: graham/towerops-web#192
|
2026-03-27 16:34:42 -05:00 |
|