Skip to content

Fix - Resolve operations energy report miner type unit charts#21

Merged
boris91 merged 3 commits into
tetherto:stagingfrom
paragmore:fix/resolve-operations-energy-report-miner-type-unit-charts
Feb 12, 2026
Merged

Fix - Resolve operations energy report miner type unit charts#21
boris91 merged 3 commits into
tetherto:stagingfrom
paragmore:fix/resolve-operations-energy-report-miner-type-unit-charts

Conversation

@paragmore

Copy link
Copy Markdown
Contributor

No description provided.

@paragmore paragmore changed the title Fix/resolve operations energy report miner type unit charts Fix - Resolve operations energy report miner type unit charts Feb 12, 2026
@boris91 boris91 merged commit 47a52d8 into tetherto:staging Feb 12, 2026
5 checks passed
@arif-dewi arif-dewi mentioned this pull request Feb 17, 2026
boris91 pushed a commit that referenced this pull request Feb 17, 2026
* chore: initial import (#1) (#3)

Co-authored-by: tekwani <tekwani.hemant@gmail.com>

* Initial MOS commit + fix + dependencies updates (#2)

* chore: initial import (#1)

* chore: remove Storybook configuration and files

Remove all Storybook-related code including story files, data files, and configuration references.

- Delete .storybook directory (main.js, preview.js)
- Remove 7 story files (.stories.tsx)
- Remove 2 story data files (storiesData.tsx, logsCardStoriesData.tsx)
- Clean up ESLint config (remove .storybook/ and stories/ ignores)
- Clean up Vitest config (remove .stories.js/.jsx coverage exclusions)

* chore: fix npm install deprecation warnings

Update dependencies and add overrides to eliminate deprecation warnings during npm install.

- Upgrade jsdom from ^26.0.0 to ^28.0.0 (fixes whatwg-encoding deprecation)
- Add glob override to ^10.0.0 (fixes glob@7.2.3 deprecation)
- Add inflight override to @aashutoshrathi/inflight (fixes inflight memory leak warning)

All deprecation warnings are now resolved.

* chore: add missing qs dependency

Add qs package which is required by src/app/services/api.ts for query string formatting.

---------

Co-authored-by: tekwani <tekwani.hemant@gmail.com>
Co-authored-by: Arif Dewi <arif@dolasoft.co>

* chore(ci): add GitHub Actions CI pipeline (#8)

Add comprehensive CI workflow with security checks, linting, type checking, testing, and build verification.

Co-authored-by: Arif Dewi <arif@dolasoft.co>

* Merge MOS to MOS (#10)

* Merge MOS to MOS

* chore: remove Storybook story files

Re-apply Storybook removal after moria-app-ui sync.

- Remove 7 story files (.stories.tsx)
- Remove 2 story data files (storiesData.tsx, logsCardStoriesData.tsx)

These files were previously removed in b5d0ed7 but came back during
the src sync from moria-app-ui. Removing them again to maintain
the intentional exclusion of Storybook from this repository.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Arif Dewi <arif@dolasoft.co>
Co-authored-by: Cursor <cursoragent@cursor.com>

* comment modal: fix button wrapping when clicked (#11)

* Apply timezone handling improvements from fork (#12)

- Update getRangeTimestamps to properly handle timezone conversions using fromZonedTime
- Add preserveUTC parameter to preserve pre-calculated UTC timestamps
- Fix HistoricalAlerts date picker to use currentValue instead of defaultValue
- Reorder date range handler to update picker dates before calculating timestamps
- Add cleanup logic to prevent stale state updates in useFetchHistoricalLogsPaginatedData
- Update timezone integration tests with fromZonedTime mock
- Add comprehensive test coverage for timezone-aware date range handling

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix: power mode by miner type and mining unit power summary is incorrect in operations reports (#13)

* Bugfix/infinite loop (#14)

* Fix infinite loop in API calls

* Fix dispatching permissions

* Fix formatting

---------

Co-authored-by: Arif Dewi <arif@dolasoft.co>

* Header Stats, Provide Miners Total Amount (#17)

* Fix page reload issues by preventing premature redirects during permission loading (#18)

Wait for permissions to load before redirecting in GateKeeper, and show
loading state in Reports layouts while feature config is being fetched.

Co-authored-by: Arif Dewi <arif@dolasoft.co>
Co-authored-by: Cursor <cursoragent@cursor.com>

* Bugfix/loops (#20)

* Fix TypeScript declaration error in DangerActionButton

Add declare keyword to const export in .d.ts file to properly define ambient declaration for Vite compilation.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix persistent loading state in container widget cards

- MinersActivityChart: Only show loading skeleton when actively fetching data, not when data is empty after load
- ContainerWidgetCard: Set isLoading to false once minerTailLogItem data arrives, preventing infinite loading state

This resolves the issue where container cards showed perpetual loading spinners despite no pending API calls.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix infinite loop in PduGrid and improve permission/feature loading states

- Fix maximum update depth error in PduGrid by wrapping registerSelectablesContainer in useCallback
- Add permission loading check in GateKeeper to prevent premature redirects
- Add feature config loading checks in ReportsLayout components to prevent flickering

Co-authored-by: Cursor <cursoragent@cursor.com>

* Rename JSX files from .js to .jsx extension to fix Vite parse errors

Co-authored-by: Cursor <cursoragent@cursor.com>

* Rename all chart component .js files to .jsx to fix Vite parse errors

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix infinite loop in TimeframeControls by memoizing weeksCache

Co-authored-by: Cursor <cursoragent@cursor.com>

* Improve repair history loading state with animated skeleton

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix unnecessary loading spinners on Pool Manager dashboard

Co-authored-by: Cursor <cursoragent@cursor.com>

* Remove loading spinners from Pool Manager dashboard navigation

Co-authored-by: Cursor <cursoragent@cursor.com>

* Skip unnecessary alerts query on Pool Manager dashboard to reduce API calls

Co-authored-by: Cursor <cursoragent@cursor.com>

* Disable polling for alerts query on Pool Manager dashboard

Co-authored-by: Cursor <cursoragent@cursor.com>

* Always show Recent Alerts section on Pool Manager dashboard

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix alerts extraction logic on Pool Manager dashboard

Co-authored-by: Cursor <cursoragent@cursor.com>

* Show all recent alerts on Pool Manager dashboard, prioritize pool-related ones

Co-authored-by: Cursor <cursoragent@cursor.com>

* Query critical alerts and extract correct code field on Pool Manager dashboard

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix Pool Manager alerts by requesting serialNum field and filtering critical alerts

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add console logging to debug Pool Manager alerts

Co-authored-by: Cursor <cursoragent@cursor.com>

* Show all recent alerts on Pool Manager dashboard sorted by date

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix infinite loop in Miner Explorer by memoizing onFiltersChange

Wrap onFiltersChange in useCallback to prevent it from being recreated
on every render, which was causing an infinite loop when used as a
dependency in MinerExplorer's useEffect.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix miners status chart not loading in demo mode

Use fixedDateRange instead of dateRange for miners query to ensure
data is fetched from the correct time range where mock data exists.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix miners status chart not loading on miners report page in demo mode

Add demo mode check to useMinersStatusChartData to use fixed date range
when displaying mock data, similar to the operations dashboard fix.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Refactor: Use centralized isDemoMode utility instead of inline checks

Replace inline environment variable checks with the centralized isDemoMode
function from api.utils for better maintainability.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix demo mode for operations and financial reports

- Use centralized isDemoMode constant instead of inline env checks
- Fix miners status charts on operations dashboard and miners report to use fixed date range in demo mode
- Initialize financial reports with fixed date range in demo mode
- Hide error messages in demo mode for financial reports (EBITDA, Energy Balance, Subsidy/Fee)
- Show clean "No data available" message when mock data is missing

* Fix ESLint parsing errors and remove unused import

- Update eslint.config.cjs to properly parse TypeScript test files
- Add TypeScript parser configuration for test file patterns
- Remove unused _isEmpty import from MinersActivityChart
- Remove react-gauge-chart.d.ts (moved to root project)

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add react-gauge-chart type declaration and exclude .d.ts from ESLint

Co-authored-by: Cursor <cursoragent@cursor.com>

* Remove unused type React import

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Arif Dewi <arif@dolasoft.co>
Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix - Resolve operations energy report miner type unit charts (#21)

* Fix: energy charts by miner type and mining unit in operations reports

* Fix lint

* fix: get list things paginated hook doesn't run on query change (#23)

* (improvement) Views - Alerts, Current Alerts Critical Load Enhancement Based on Query (#24)

* Views - Alets, Current Alerts Critical Load Enhancement Based on Query

* Views - Alets, Current Alerts Critical Code Change

* docs: update CHANGELOG link to upstream repository

Co-authored-by: Cursor <cursoragent@cursor.com>

* Cleanup

* fix: resolve remaining merge conflict in eslint.config.cjs

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: resolve all remaining merge conflicts in eslint.config.cjs

- Fixed conflict at line 297 (test file configurations)
- Kept develop branch version with separate JS and TS test configs
- All conflict markers removed

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Eugene Glova <eugene.glova@gmail.com>
Co-authored-by: tekwani <tekwani.hemant@gmail.com>
Co-authored-by: Arif Dewi <arif@dolasoft.co>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Shrutesh Pachineela <sruteshp@gmail.com>
Co-authored-by: Roberto Di Lillo <dilillo.roberto@gmail.com>
Co-authored-by: Parag More <34959548+paragmore@users.noreply.github.com>
Co-authored-by: habrahamyanbf <145970023+habrahamyanbf@users.noreply.github.com>
Retropex pushed a commit to Retropex/miningos-app-ui that referenced this pull request Apr 1, 2026
* chore: initial import (tetherto#1) (tetherto#3)

Co-authored-by: tekwani <tekwani.hemant@gmail.com>

* Initial MOS commit + fix + dependencies updates (tetherto#2)

* chore: initial import (tetherto#1)

* chore: remove Storybook configuration and files

Remove all Storybook-related code including story files, data files, and configuration references.

- Delete .storybook directory (main.js, preview.js)
- Remove 7 story files (.stories.tsx)
- Remove 2 story data files (storiesData.tsx, logsCardStoriesData.tsx)
- Clean up ESLint config (remove .storybook/ and stories/ ignores)
- Clean up Vitest config (remove .stories.js/.jsx coverage exclusions)

* chore: fix npm install deprecation warnings

Update dependencies and add overrides to eliminate deprecation warnings during npm install.

- Upgrade jsdom from ^26.0.0 to ^28.0.0 (fixes whatwg-encoding deprecation)
- Add glob override to ^10.0.0 (fixes glob@7.2.3 deprecation)
- Add inflight override to @aashutoshrathi/inflight (fixes inflight memory leak warning)

All deprecation warnings are now resolved.

* chore: add missing qs dependency

Add qs package which is required by src/app/services/api.ts for query string formatting.

---------

Co-authored-by: tekwani <tekwani.hemant@gmail.com>
Co-authored-by: Arif Dewi <arif@dolasoft.co>

* chore(ci): add GitHub Actions CI pipeline (tetherto#8)

Add comprehensive CI workflow with security checks, linting, type checking, testing, and build verification.

Co-authored-by: Arif Dewi <arif@dolasoft.co>

* Merge MOS to MOS (tetherto#10)

* Merge MOS to MOS

* chore: remove Storybook story files

Re-apply Storybook removal after moria-app-ui sync.

- Remove 7 story files (.stories.tsx)
- Remove 2 story data files (storiesData.tsx, logsCardStoriesData.tsx)

These files were previously removed in b5d0ed7 but came back during
the src sync from moria-app-ui. Removing them again to maintain
the intentional exclusion of Storybook from this repository.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Arif Dewi <arif@dolasoft.co>
Co-authored-by: Cursor <cursoragent@cursor.com>

* comment modal: fix button wrapping when clicked (tetherto#11)

* Apply timezone handling improvements from fork (tetherto#12)

- Update getRangeTimestamps to properly handle timezone conversions using fromZonedTime
- Add preserveUTC parameter to preserve pre-calculated UTC timestamps
- Fix HistoricalAlerts date picker to use currentValue instead of defaultValue
- Reorder date range handler to update picker dates before calculating timestamps
- Add cleanup logic to prevent stale state updates in useFetchHistoricalLogsPaginatedData
- Update timezone integration tests with fromZonedTime mock
- Add comprehensive test coverage for timezone-aware date range handling

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix: power mode by miner type and mining unit power summary is incorrect in operations reports (tetherto#13)

* Bugfix/infinite loop (tetherto#14)

* Fix infinite loop in API calls

* Fix dispatching permissions

* Fix formatting

---------

Co-authored-by: Arif Dewi <arif@dolasoft.co>

* Header Stats, Provide Miners Total Amount (tetherto#17)

* Fix page reload issues by preventing premature redirects during permission loading (tetherto#18)

Wait for permissions to load before redirecting in GateKeeper, and show
loading state in Reports layouts while feature config is being fetched.

Co-authored-by: Arif Dewi <arif@dolasoft.co>
Co-authored-by: Cursor <cursoragent@cursor.com>

* Bugfix/loops (tetherto#20)

* Fix TypeScript declaration error in DangerActionButton

Add declare keyword to const export in .d.ts file to properly define ambient declaration for Vite compilation.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix persistent loading state in container widget cards

- MinersActivityChart: Only show loading skeleton when actively fetching data, not when data is empty after load
- ContainerWidgetCard: Set isLoading to false once minerTailLogItem data arrives, preventing infinite loading state

This resolves the issue where container cards showed perpetual loading spinners despite no pending API calls.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix infinite loop in PduGrid and improve permission/feature loading states

- Fix maximum update depth error in PduGrid by wrapping registerSelectablesContainer in useCallback
- Add permission loading check in GateKeeper to prevent premature redirects
- Add feature config loading checks in ReportsLayout components to prevent flickering

Co-authored-by: Cursor <cursoragent@cursor.com>

* Rename JSX files from .js to .jsx extension to fix Vite parse errors

Co-authored-by: Cursor <cursoragent@cursor.com>

* Rename all chart component .js files to .jsx to fix Vite parse errors

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix infinite loop in TimeframeControls by memoizing weeksCache

Co-authored-by: Cursor <cursoragent@cursor.com>

* Improve repair history loading state with animated skeleton

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix unnecessary loading spinners on Pool Manager dashboard

Co-authored-by: Cursor <cursoragent@cursor.com>

* Remove loading spinners from Pool Manager dashboard navigation

Co-authored-by: Cursor <cursoragent@cursor.com>

* Skip unnecessary alerts query on Pool Manager dashboard to reduce API calls

Co-authored-by: Cursor <cursoragent@cursor.com>

* Disable polling for alerts query on Pool Manager dashboard

Co-authored-by: Cursor <cursoragent@cursor.com>

* Always show Recent Alerts section on Pool Manager dashboard

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix alerts extraction logic on Pool Manager dashboard

Co-authored-by: Cursor <cursoragent@cursor.com>

* Show all recent alerts on Pool Manager dashboard, prioritize pool-related ones

Co-authored-by: Cursor <cursoragent@cursor.com>

* Query critical alerts and extract correct code field on Pool Manager dashboard

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix Pool Manager alerts by requesting serialNum field and filtering critical alerts

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add console logging to debug Pool Manager alerts

Co-authored-by: Cursor <cursoragent@cursor.com>

* Show all recent alerts on Pool Manager dashboard sorted by date

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix infinite loop in Miner Explorer by memoizing onFiltersChange

Wrap onFiltersChange in useCallback to prevent it from being recreated
on every render, which was causing an infinite loop when used as a
dependency in MinerExplorer's useEffect.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix miners status chart not loading in demo mode

Use fixedDateRange instead of dateRange for miners query to ensure
data is fetched from the correct time range where mock data exists.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix miners status chart not loading on miners report page in demo mode

Add demo mode check to useMinersStatusChartData to use fixed date range
when displaying mock data, similar to the operations dashboard fix.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Refactor: Use centralized isDemoMode utility instead of inline checks

Replace inline environment variable checks with the centralized isDemoMode
function from api.utils for better maintainability.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix demo mode for operations and financial reports

- Use centralized isDemoMode constant instead of inline env checks
- Fix miners status charts on operations dashboard and miners report to use fixed date range in demo mode
- Initialize financial reports with fixed date range in demo mode
- Hide error messages in demo mode for financial reports (EBITDA, Energy Balance, Subsidy/Fee)
- Show clean "No data available" message when mock data is missing

* Fix ESLint parsing errors and remove unused import

- Update eslint.config.cjs to properly parse TypeScript test files
- Add TypeScript parser configuration for test file patterns
- Remove unused _isEmpty import from MinersActivityChart
- Remove react-gauge-chart.d.ts (moved to root project)

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add react-gauge-chart type declaration and exclude .d.ts from ESLint

Co-authored-by: Cursor <cursoragent@cursor.com>

* Remove unused type React import

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Arif Dewi <arif@dolasoft.co>
Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix - Resolve operations energy report miner type unit charts (tetherto#21)

* Fix: energy charts by miner type and mining unit in operations reports

* Fix lint

* fix: get list things paginated hook doesn't run on query change (tetherto#23)

* (improvement) Views - Alerts, Current Alerts Critical Load Enhancement Based on Query (tetherto#24)

* Views - Alets, Current Alerts Critical Load Enhancement Based on Query

* Views - Alets, Current Alerts Critical Code Change

* docs: update CHANGELOG link to upstream repository

Co-authored-by: Cursor <cursoragent@cursor.com>

* Cleanup

* fix: resolve remaining merge conflict in eslint.config.cjs

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: resolve all remaining merge conflicts in eslint.config.cjs

- Fixed conflict at line 297 (test file configurations)
- Kept develop branch version with separate JS and TS test configs
- All conflict markers removed

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Eugene Glova <eugene.glova@gmail.com>
Co-authored-by: tekwani <tekwani.hemant@gmail.com>
Co-authored-by: Arif Dewi <arif@dolasoft.co>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Shrutesh Pachineela <sruteshp@gmail.com>
Co-authored-by: Roberto Di Lillo <dilillo.roberto@gmail.com>
Co-authored-by: Parag More <34959548+paragmore@users.noreply.github.com>
Co-authored-by: habrahamyanbf <145970023+habrahamyanbf@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants