- Extract ad utilities to separate files for better code organization
- Create adUtils.js with generateAdId, copy/refresh handlers
- Create zoomUtils.js with useZoomState custom hook
- Create tabUtils.js with buildTabsFromCategories function
- Replace static message API with App.useApp() hook to fix context warnings
- Implement factory pattern for utility functions with callback support
- Improve code separation, testability and maintainability
- Remove direct antd context dependencies from utility functions
Components now follow single responsibility principle with clean separation
between business logic and UI concerns.