Skip to content

ENG-2909: Disable web monitor config form while system is loading#7591

Open
nrxsmith wants to merge 4 commits intomainfrom
nsmith/disable-web-monitor-modal-while-loading
Open

ENG-2909: Disable web monitor config form while system is loading#7591
nrxsmith wants to merge 4 commits intomainfrom
nsmith/disable-web-monitor-modal-while-loading

Conversation

@nrxsmith
Copy link
Contributor

@nrxsmith nrxsmith commented Mar 6, 2026

Ticket ENG-2909

Description Of Changes

Disable the ConfigureWebsiteMonitorForm while the system data is loading to prevent users from interacting with the form before initial values (like data stewards) are populated. Without this, submitting the form before the system query resolves could send incomplete data. The form already calls resetFields() when isLoadingSystem changes, but fields were still interactive during that loading window.

This was something the Cardea tests ran into intermittently; I ran them again locally after the fix, and it's passing consistently again.

Code Changes

  • clients/admin-ui/src/features/integrations/configure-monitor/ConfigureWebsiteMonitorForm.tsx - Add disabled={isLoadingSystem} prop to the Ant Design <Form> component

Steps to Confirm

  1. Navigate to an integration with a website monitor configured
  2. Open the monitor configuration modal
  3. Verify form fields are disabled while the system data is loading
  4. Once loaded, verify form fields become interactive and pre-populated with correct values (e.g. data stewards from the system)

Pre-Merge Checklist

  • Issue requirements met
  • All CI pipelines succeeded
  • CHANGELOG.md updated
    • Add a db-migration This indicates that a change includes a database migration label to the entry if your change includes a DB migration
    • Add a high-risk This issue suggests changes that have a high-probability of breaking existing code label to the entry if your change includes a high-risk change (i.e. potential for performance impact or unexpected regression) that should be flagged
    • Updates unreleased work already in Changelog, no new entry necessary
  • UX feedback:
    • All UX related changes have been reviewed by a designer
    • No UX review needed
  • Followup issues:
    • Followup issues created
    • No followup issues
  • Database migrations:
    • Ensure that your downrev is up to date with the latest revision on main
    • Ensure that your downgrade() migration is correct and works
      • If a downgrade migration is not possible for this change, please call this out in the PR description!
    • No migrations
  • Documentation:
    • Documentation complete, PR opened in fidesdocs
    • Documentation issue created in fidesdocs
    • If there are any new client scopes created as part of the pull request, remember to update public-facing documentation that references our scope registry
    • No documentation updates required

Summary by CodeRabbit

  • Bug Fixes
    • Web monitor configuration form is now disabled while the system loads, preventing unintended interaction before all necessary data becomes available.

Prevents users from interacting with the form before initial values
are populated, which could lead to submitting incomplete data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@nrxsmith nrxsmith requested a review from a team as a code owner March 6, 2026 22:38
@nrxsmith nrxsmith requested review from lucanovera and removed request for a team March 6, 2026 22:38
@vercel
Copy link
Contributor

vercel bot commented Mar 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated (UTC)
fides-plus-nightly Ignored Ignored Preview Mar 9, 2026 1:21pm
fides-privacy-center Ignored Ignored Mar 9, 2026 1:21pm

Request Review

@coderabbitai
Copy link

coderabbitai bot commented Mar 6, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: be98b82d-7c07-454d-8020-a01d30b5fdd8

📥 Commits

Reviewing files that changed from the base of the PR and between 8e40b98 and 6ce0fc6.

📒 Files selected for processing (2)
  • changelog/7591-disable-web-monitor-form-while-loading.yaml
  • clients/admin-ui/src/features/integrations/configure-monitor/ConfigureWebsiteMonitorForm.tsx

📝 Walkthrough

Walkthrough

A form disabling mechanism was implemented for the web monitor configuration interface. While system data loads, the form becomes non-interactive. A changelog entry documents this fix in PR 7591.

Changes

Cohort / File(s) Summary
Changelog Entry
changelog/7591-disable-web-monitor-form-while-loading.yaml
New changelog entry recording a fix where the web monitor config form is disabled during system data loading.
Web Monitor Form Component
clients/admin-ui/src/features/integrations/configure-monitor/ConfigureWebsiteMonitorForm.tsx
Added disabled={isLoadingSystem} prop to Form component to prevent user interaction while system data loads.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Suggested reviewers

  • thabofletcher

Poem

🐰 A form that waits with patient grace,
While data loads at measured pace,
No clicks allowed till all is done—
Then config flows like morning sun!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: disabling the web monitor config form during system loading, matching the primary code change.
Description check ✅ Passed The description comprehensively covers all required sections: ticket reference, clear explanation of changes and rationale, specific code modifications, detailed confirmation steps, and completed pre-merge checklist items.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch nsmith/disable-web-monitor-modal-while-loading

Comment @coderabbitai help to get the list of available commands and usage tips.

@nrxsmith nrxsmith changed the title Disable web monitor config form while system is loading ENG-2909: Disable web monitor config form while system is loading Mar 6, 2026
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Mar 6, 2026

Greptile Summary

This PR is a minimal, targeted fix that adds disabled={isLoadingSystem} to the Ant Design Form component in ConfigureWebsiteMonitorForm.tsx. It prevents user interaction with the form fields before the system data (used to populate steward defaults) has loaded, closing the race condition where an early submit could send incomplete data.

The fix correctly leverages the existing isLoadingSystem flag derived from useGetSystemByFidesKeyQuery. The existing useEffect pattern (lines 187–190) that calls form.resetFields() when isLoadingSystem changes ensures the form is re-initialized once the data arrives. The form's disabled state correctly prevents field interaction until the system data loads.

Confidence Score: 5/5

  • Single-line change that correctly disables the form during data loading with no identified issues.
  • This is a straightforward, minimal fix that correctly addresses the race condition by disabling form interaction while system data loads. The form reset logic ensures re-initialization once data arrives. No functional gaps or edge cases were found that would prevent the fix from working as intended.
  • No files require special attention

Last reviewed commit: 6ce0fc6

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.

1 participant