chore(predict): implement sequential refresh pattern for order preview #22499
+140
−13
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.



Description
Changes the auto-refresh behavior in usePredictOrderPreview from interval-based
to sequential pattern. The timer now waits for the preview response before
starting the timeout countdown, preventing overlapping requests.
Key changes:
This ensures the autoRefreshTimeout is a delay AFTER each response
completes, rather than a fixed interval that could cause overlapping
requests when API response times exceed the timeout value.
Changelog
CHANGELOG entry: null
Related issues
Fixes: PRED-299
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist
Note
Replaces interval-based auto-refresh with response-triggered sequential timeouts in
usePredictOrderPreview, adds cleanup on param changes/unmount, and updates tests accordingly.usePredictOrderPreview:setIntervalauto-refresh with sequentialsetTimeoutscheduled viascheduleNextRefreshafter each response (success or error).refreshTimerRef,calculatePreviewRef,scheduleNextRefreshRef.calculatePreviewRef.current?.().usePredictOrderPreview.test.ts:Written by Cursor Bugbot for commit 2c9fb28. This will update automatically on new commits. Configure here.