feat: Prevent full-page loading state during background refetch - #264
Conversation
Update the loading logic to only display a full-page spinner on initial load. Subsequent fetches (searching, filtering, or sorting) now preserve the existing UI and display a subtle inline indicator to prevent focus loss and layout shifts.
|
🚅 Deployed to the reqcore-pr-264 environment in applirank
|
|
Warning Review limit reached
Next review available in: 1 minute You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThe dashboard now distinguishes initial loading from background application refetches. Existing data remains visible during searches, sorting, filtering, and stage changes. Refreshes show an inline spinner and a faded candidate list. ChangesApplication refresh handling
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@app/pages/dashboard/jobs/`[id]/index.vue:
- Line 1458: Update the dashboard error-rendering logic around the job error
condition so appError is surfaced even when appData remains available. Keep the
existing candidate content mounted for stale data, and add a non-blocking error
message with a retry action for failed background search, filter, sort, or stage
requests, reusing the page’s existing retry mechanism.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 9a02e7d9-a8ca-42f6-bdde-73b115d79862
📒 Files selected for processing (1)
app/pages/dashboard/jobs/[id]/index.vue
| <!-- Error --> | ||
| <div | ||
| v-else-if="jobError || appError" | ||
| v-else-if="(jobError && !jobData) || (appError && !appData)" |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Surface failed background refetches without hiding stale data.
When appError exists and appData is still present, this condition is false. The previous candidate list remains visible with no error or retry action. After a failed search, filter, sort, or stage request, the controls can describe data that was not loaded. A user can act on stale candidates without knowing the refresh failed.
Keep the previous content mounted, but show a non-blocking error message with a retry action when appError && appData.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@app/pages/dashboard/jobs/`[id]/index.vue at line 1458, Update the dashboard
error-rendering logic around the job error condition so appError is surfaced
even when appData remains available. Keep the existing candidate content mounted
for stale data, and add a non-blocking error message with a retry action for
failed background search, filter, sort, or stage requests, reusing the page’s
existing retry mechanism.
- Extract job-specific questions and automation rules into dedicated configuration files. - Extend automation coverage to include all five demo jobs. - Update seed script to utilize the centralized automation data. - Add unit tests to validate rule integrity, question references, and trigger conditions.
- Retain previous candidate detail in view during navigation to prevent layout tearing, replacing the skeleton with a dimming effect. - Cache conversation previews in the messaging panel to show content immediately upon candidate selection. - Limit demo database to top 3 applications per pipeline status to reduce seed size and focus on relevant records.
Update the loading logic to only display a full-page spinner on initial load. Subsequent fetches (searching, filtering, or sorting) now preserve the existing UI and display a subtle inline indicator to prevent focus loss and layout shifts.
Summary
Type of change
Validation
DCO
Signed-off-by) viagit commit -sSummary by CodeRabbit