Dynamic position block - #23
Conversation
There was a problem hiding this comment.
Pull request overview
This PR implements a "Dynamic position block" feature that automatically adjusts position limits based on open deals, along with comprehensive theming support (light/dark mode) and several UI/UX improvements.
Key Changes:
- New dynamic position blocking system with automatic limit adjustments
- Dark/light theme support throughout the application with CSS variables
- Refactored deals refresh interval to be globally configurable
- Enhanced active deals tracking with executed orders history
- Bulk bot editing functionality
- Centralized URL building with multi-origin support
Reviewed changes
Copilot reviewed 60 out of 60 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
extension/ui/src/types/positionConstraints.ts |
New type definitions for position constraints and dynamic block configuration |
extension/ui/src/storage/themePreferences.ts |
Theme mode persistence utilities |
extension/ui/src/storage/dynamicPositionBlocksStore.ts |
IndexedDB storage for dynamic block configurations with validation |
extension/ui/src/storage/dealsRefreshStore.ts |
Centralized deals refresh interval storage |
extension/ui/src/storage/activeDealsHistoryStore.ts |
Enhanced history storage with executed orders tracking |
extension/ui/src/services/positionConstraints.ts |
Service layer for position constraints API |
extension/ui/src/services/backtestInfos.ts |
Added max duration calculation |
extension/ui/src/pages/DynamicBlocksPage.tsx |
New page for dynamic position block management |
extension/ui/src/pages/SettingsPage.tsx |
Added deals refresh interval settings |
extension/ui/src/pages/ActiveDealsPage.tsx |
Enhanced with algorithm filter and history compression |
extension/ui/src/lib/chartOptions.ts |
Added theme mode support for all chart types |
extension/ui/src/lib/cabinetUrls.ts |
Centralized URL building with multi-origin support |
extension/ui/src/lib/botUpdatePayload.ts |
Bot update payload builder with deep cloning |
extension/ui/src/lib/activeDealsHistory.ts |
Executed orders tracking and history compression |
extension/ui/src/context/ThemeContext.tsx |
Theme mode context provider |
extension/ui/src/context/DynamicBlocksContext.tsx |
Dynamic blocks feature state management |
extension/ui/src/context/DealsRefreshContext.tsx |
Global deals refresh interval context |
extension/ui/src/context/ActiveDealsContext.tsx |
Enhanced with executed orders and compression |
extension/ui/src/components/bots/BulkEditBotsModal.tsx |
New bulk edit modal for updating bot parameters |
extension/ui/src/components/charts/*.tsx |
Theme mode integration for all chart components |
extension/ui/src/api/constraints.ts |
API client for position constraints |
extension/ui/src/styles.css |
Comprehensive CSS variable refactoring for theming |
extension/ui/src/App.tsx |
Theme provider integration and routing updates |
The changes are well-structured, follow established patterns, and include proper error handling and validation. The feature is comprehensive with proper UI, storage, and automation logic.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| bot.symbols.forEach((symbol) => { | ||
| const trimmed = symbol.trim(); | ||
| if (trimmed) { | ||
| const [base, quote] = trimmed.split('/'); |
There was a problem hiding this comment.
Unused variable quote.
| const [base, quote] = trimmed.split('/'); | |
| const [base] = trimmed.split('/'); |
1d8762d to
ab6cd41
Compare
|
🎉 This PR is included in version 2.2.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
No description provided.