Skip to content

Convert SummaryPanel and ActionBar to functional components#9635

Open
camd wants to merge 1 commit into
masterfrom
camd/functional-summary-actionbar
Open

Convert SummaryPanel and ActionBar to functional components#9635
camd wants to merge 1 commit into
masterfrom
camd/functional-summary-actionbar

Conversation

@camd

@camd camd commented Jun 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

Converts the SummaryPanel and ActionBar class components in the job-view details panel to functional components with hooks. This is a pure refactor with no behavior change.

  • SummaryPanel becomes a memoized function component.
  • ActionBar moves its lifecycle window-event listeners (openLogviewer, openRawLog, openGeckoProfile, jobRetrigger) into a useEffect, and reads decisionTaskMap directly from the pushes store, so the class-to-store wrapper is no longer needed. The named export is now the function itself; the default export remains a memoized wrapper for compatibility.

Notes

This PR is now independent of the expired-task handling work (previously stacked on camd/expired-jobs-details-panel). It targets master directly so it can be merged on its own. The two changes touch overlapping regions of ActionBar.jsx/SummaryPanel.jsx, so a small merge conflict is expected when the second of the two lands — but either can go first.

@codecov-commenter

codecov-commenter commented Jun 20, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 46.66667% with 72 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.93%. Comparing base (28b8e00) to head (2b7905c).

Files with missing lines Patch % Lines
ui/job-view/details/summary/ActionBar.jsx 46.42% 58 Missing and 2 partials ⚠️
ui/job-view/details/summary/SummaryPanel.jsx 47.82% 10 Missing and 2 partials ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##           master    #9635    +/-   ##
========================================
  Coverage   82.92%   82.93%            
========================================
  Files         618      618            
  Lines       36164    36145    -19     
  Branches     3239     3292    +53     
========================================
- Hits        29989    29976    -13     
+ Misses       6025     5791   -234     
- Partials      150      378   +228     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@camd camd force-pushed the camd/expired-jobs-details-panel branch from 65a4570 to d4d7afc Compare June 22, 2026 16:32
@camd camd self-assigned this Jun 27, 2026
@camd camd added the front-end label Jun 27, 2026
@camd camd force-pushed the camd/functional-summary-actionbar branch from a88953c to 2b7905c Compare June 27, 2026 18:58
@camd camd requested review from a team, beatrice-acasandrei and esanuandra as code owners June 27, 2026 18:58
@camd camd changed the base branch from camd/expired-jobs-details-panel to master June 27, 2026 18:58
Convert the SummaryPanel and ActionBar class components to functional
components with hooks:

- SummaryPanel becomes a memoized function component.
- ActionBar moves its lifecycle window-event listeners into a useEffect
  and reads decisionTaskMap directly from the pushes store, so the class
  wrapper is no longer needed. Its export becomes the function itself
  (the default export remains a memoized wrapper for compatibility).

No behavior change.
@camd camd force-pushed the camd/functional-summary-actionbar branch from 2b7905c to 993b26f Compare June 29, 2026 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants