Open
Conversation
…t Router v6 hooks Migrate 6 class components that still used props.location/props.navigate to functional components using useLocation()/useNavigate() hooks directly. Also fix bugs in Health.jsx: leaked notificationsId interval, undefined this.props.history reference in filter(), and references to undefined methods. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Health and MyPushes now call useLocation/useNavigate internally, so the test wrappers that passed these as props are no longer needed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… migration - Fix perfherder nav links broken by v7_relativeSplatPath (use absolute paths) - Fix ErrorMessages using reactstrap Alert props (isOpen/toggle -> show/onClose/dismissible) - Fix intermittent-failures Layout missing updateState prop from MainView and BugDetailsView - Remove dead history/location propTypes from Layout - Fix nested <a> tags in Breadcrumb components (use href/linkAs props instead) - Replace reactstrap listClassName with className on Breadcrumb - Remove dead location/navigate props passed from withValidation HOC - Fix Victory flyoutComponent passing non-DOM props to <div> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Phase 1: Migrate notifications store to Zustand
* Create notificationStore.js with notify action
* Update all components to import from new store
- Phase 2: Migrate pinnedJobs store to Zustand
* Create pinnedJobsStore.js with pinned jobs and pin board visibility
* Update PinBoard, DetailsPanel, and related components
- Phase 3: Migrate selectedJob store to Zustand (PRESERVING CRITICAL FIXES)
* Create selectedJobStore.js with job selection logic
* IMPORTANT: Preserve URL-first architecture from camd/fix-job-click-clear-bug:
- selectJobViaUrl() for URL-first job selection
- clearJobViaUrl() for clearing via URL
- syncSelectionFromUrl() for syncing state from URL
- wasJobJustSelected() to prevent race condition when clicking jobs
* These functions ensure:
- Jobs scroll into view on page load
- Legacy selectedJob URL parameter is supported
- Clicking different jobs no longer closes the details panel
* Remove Redux connect from PushJobs (now uses Zustand directly)
* Update PushList and DetailsPanel to use new store
Note: Phase 4 (push store migration) is NOT included in this commit.
The push store remains in Redux to minimize risk and preserve stability.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Complete the Redux-to-Zustand migration by converting the last remaining store (pushes). This removes all Redux dependencies from the project. - Create Zustand pushesStore with all state, actions, and async thunks - Update 16 consumer components to use usePushesStore hooks - Wrap class components (ActionBar, PerformanceTab, CustomJobActions) with function components to inject Zustand state as props - Remove Redux Provider, configureStore, and redux/ directory - Remove redux, react-redux, redux-thunk, redux-debounce, redux-mock-store - Update all 23 test files to use Zustand setState/getState patterns Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
792c0cc to
6cf03c0
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #9275 +/- ##
==========================================
- Coverage 82.76% 82.36% -0.41%
==========================================
Files 609 608 -1
Lines 34293 34389 +96
Branches 3233 3293 +60
==========================================
- Hits 28383 28324 -59
- Misses 5785 5934 +149
- Partials 125 131 +6 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This completes migration to Zustand from Redux by converting pushes handling.