Skip to content

Fleet UI: Fix gitops mode wonkiness#43428

Merged
RachelElysia merged 6 commits intomainfrom
43341-gitops-mode-wonkiness
Apr 14, 2026
Merged

Fleet UI: Fix gitops mode wonkiness#43428
RachelElysia merged 6 commits intomainfrom
43341-gitops-mode-wonkiness

Conversation

@RachelElysia
Copy link
Copy Markdown
Member

@RachelElysia RachelElysia commented Apr 10, 2026

Issue

Closes #43341

Description

  • Fixes tooltips on buttons that are too low
  • Fixes a form field that is narrow width
  • Fixes some form field label tooltips that aren't viewable in gitops mode

Screenrecording of fixes

Screen.Recording.2026-04-13.at.9.23.10.AM.mov

Checklist for submitter

If some of the following don't apply, delete the relevant line.

  • Changes file added for user-visible changes in changes/, orbit/changes/ or ee/fleetd-chrome/changes.
    See Changes files for more information.

Testing

  • Added/updated automated tests
  • QA'd all new/changed functionality manually

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed styling inconsistencies in GitOps mode UI across settings pages.
  • New Features

    • Enhanced GitOps mode tooltip handling for input fields with improved positioning and visual styling.

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 10, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.86%. Comparing base (0bf48d3) to head (68f7876).
⚠️ Report is 80 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #43428      +/-   ##
==========================================
- Coverage   66.86%   66.86%   -0.01%     
==========================================
  Files        2586     2588       +2     
  Lines      207452   207477      +25     
  Branches     9284     9288       +4     
==========================================
+ Hits       138714   138730      +16     
- Misses      56111    56121      +10     
+ Partials    12627    12626       -1     
Flag Coverage Δ
frontend 54.78% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 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.

/>
<form onSubmit={onFormSubmit} autoComplete="off">
{/* "form" class applies global form styling to fields for free */}
<div
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just removed this wrapper and used disabled states per field

@RachelElysia RachelElysia marked this pull request as ready for review April 13, 2026 13:42
@RachelElysia RachelElysia requested a review from a team as a code owner April 13, 2026 13:42
Copilot AI review requested due to automatic review settings April 13, 2026 13:42
Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses UI layout/styling issues when GitOps mode is enabled, focusing on tooltip positioning/appearance and disabled-state behavior across multiple settings pages.

Changes:

  • Removes custom tipOffset overrides across many GitOpsModeTooltipWrapper usages to standardize tooltip positioning.
  • Updates GitOps tooltip wrapper styling to better support full-width form controls.
  • Refactors Org settings “Info” and “Advanced” cards to avoid “disabled wrapper” behavior that prevented tooltips from showing, and adds a small OrgSettingsPage-specific styling hook.

Reviewed changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
frontend/pages/ManageControlsPage/OSSettings/cards/DiskEncryption/DiskEncryption.tsx Removes GitOps tooltip offset override on a button wrapper.
frontend/pages/admin/TeamManagementPage/TeamDetailsWrapper/TeamSettings/TeamSettings.tsx Removes GitOps tooltip offset override on a submit button wrapper.
frontend/pages/admin/OrgSettingsPage/cards/WebAddress/WebAddress.tsx Removes GitOps tooltip offset override on a submit button wrapper.
frontend/pages/admin/OrgSettingsPage/cards/Statistics/Statistics.tsx Removes GitOps tooltip offset override on a submit button wrapper.
frontend/pages/admin/OrgSettingsPage/cards/Smtp/Smtp.tsx Removes GitOps tooltip offset override on a submit control wrapper.
frontend/pages/admin/OrgSettingsPage/cards/Info/Info.tsx Refactors org info fields to use per-field disabled instead of disabling the whole form wrapper.
frontend/pages/admin/OrgSettingsPage/cards/FleetDesktop/FleetDesktop.tsx Removes GitOps tooltip offset override on a submit button wrapper.
frontend/pages/admin/OrgSettingsPage/cards/Agents/Agents.tsx Removes GitOps tooltip offset override on a submit button wrapper.
frontend/pages/admin/OrgSettingsPage/cards/Advanced/Advanced.tsx Adds a wrapper for a tooltip-wrapped input and restructures the form layout.
frontend/pages/admin/OrgSettingsPage/_styles.scss Adds a local width override for tooltip-wrapped input fields in Org settings.
frontend/pages/admin/IntegrationsPage/cards/Sso/Sso.tsx Removes GitOps tooltip offset override on a submit button wrapper.
frontend/pages/admin/IntegrationsPage/cards/IdentityProviders/components/EndUserAuthSection/EndUserAuthSection.tsx Removes GitOps tooltip offset override on a submit control wrapper.
frontend/pages/admin/IntegrationsPage/cards/GlobalHostStatusWebhook/GlobalHostStatusWebhook.tsx Removes GitOps tooltip offset override on a submit button wrapper.
frontend/components/GitOpsModeTooltipWrapper/GitOpsModeTooltipWrapper.tsx Adds inline documentation for position usage.
frontend/components/GitOpsModeTooltipWrapper/_styles.scss Overrides TooltipWrapper layout so wrapped block-level form elements can stretch.
changes/43341-gitops-mode-wonkiness Adds a release note entry for the GitOps mode styling fix.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 213 to 216
<form onSubmit={onFormSubmit} autoComplete="off">
<div className="form">
{/* Wrapper used to ensure input field has 100% width without adverse effects to gitops tooltips elsewhere */}
<div className={`${baseClass}__gitops-inputfield-wrapper`}>
<GitOpsModeTooltipWrapper
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This card previously relied on the global .form class for consistent vertical spacing and width behavior of its children. Replacing it with only app-config-form__gitops-inputfield-wrapper removes that shared layout styling and may cause the advanced settings controls to render without expected gaps/alignments. Suggest wrapping the whole set of fields in a <div className="form"> (and keep the narrower __gitops-inputfield-wrapper inside it for the specific tooltip-width fix).

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<form> already wraps it which gives it a className="form" already.

Comment on lines 131 to 133
<form onSubmit={onFormSubmit} autoComplete="off">
{/* "form" class applies global form styling to fields for free */}
<div
className={`form ${
gitOpsModeEnabled ? "disabled-by-gitops-mode" : ""
}`}
>
<div className={`${cardClass}__logo-field-set`}>
<InputField
label="Logo URL for dark background"
onChange={onInputChange}
name="orgLogoURL"
value={orgLogoURL}
parseTarget
onBlur={validateForm}
error={formErrors.org_logo_url}
inputWrapperClass={`${cardClass}__logo-field`}
tooltip="Logo is displayed in Fleet on top of dark backgrounds."
/>
<div
className={`${cardClass}__icon-preview ${cardClass}__dark-background`}
>
<OrgLogoIcon
className={`${cardClass}__icon-img`}
src={orgLogoURL}
/>
</div>
</div>
<div className={`${cardClass}__logo-field-set`}>
<InputField
label="Logo URL for light background"
onChange={onInputChange}
name="orgLogoURLLightBackground"
value={orgLogoURLLightBackground}
parseTarget
onBlur={validateForm}
error={formErrors.org_logo_url_light_background}
inputWrapperClass={`${cardClass}__logo-field`}
tooltip="Logo is displayed in Fleet on top of light backgrounds.
"
/>
<div
className={`${cardClass}__icon-preview ${cardClass}__light-background`}
>
<OrgLogoIcon
className={`${cardClass}__icon-img`}
src={orgLogoURLLightBackground}
/>
</div>
</div>
<div className={`${cardClass}__logo-field-set`}>
<InputField
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The .form wrapper (used across settings pages) provides global form layout (flex column + consistent gap + > * { width: 100% }). Removing it here will likely regress spacing/alignment for the org info fields. Consider reintroducing a <div className="form"> wrapper (without disabled-by-gitops-mode) and keep the per-field disabled={gitOpsModeEnabled} approach to preserve tooltips while maintaining layout consistency.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since there's already a <form> element, the global form styles already apply to it.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 13, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8ee0e505-0a1f-49b4-9641-7f0143a865c7

📥 Commits

Reviewing files that changed from the base of the PR and between abc673b and 68f7876.

📒 Files selected for processing (3)
  • frontend/components/GitOpsModeTooltipWrapper/GitOpsModeTooltipWrapper.tsx
  • frontend/components/GitOpsModeTooltipWrapper/_styles.scss
  • frontend/pages/admin/OrgSettingsPage/cards/Advanced/Advanced.tsx
✅ Files skipped from review due to trivial changes (1)
  • frontend/components/GitOpsModeTooltipWrapper/_styles.scss
🚧 Files skipped from review as they are similar to previous changes (2)
  • frontend/components/GitOpsModeTooltipWrapper/GitOpsModeTooltipWrapper.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/Advanced/Advanced.tsx

Walkthrough

This pull request addresses styling inconsistencies in GitOps mode UI. The changes modify the GitOpsModeTooltipWrapper component to accept optional position and isInputField props, add corresponding SCSS styling for the input field variant, and remove manual tipOffset props from multiple button usages across admin settings pages. Additionally, some pages restructure their form layouts to better integrate GitOps mode disabled states with input fields instead of using wrapper divs.

Possibly related PRs

  • #30555: Wraps a delete button with GitOpsModeTooltipWrapper to disable it in GitOps mode, demonstrating another use case for the same wrapper component.
  • #42486: Modifies GitOpsModeTooltipWrapper.tsx by adding new props and adjusting wrapper behavior for GitOps UI gating.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Fleet UI: Fix gitops mode wonkiness' is clear and directly related to the main changes in the PR which address GitOps mode UI styling issues across multiple components.
Description check ✅ Passed The PR description addresses the linked issue and explains what was fixed (tooltips, form field width, label tooltips), includes a screen recording, and has the required checklist items present in the template.
Linked Issues check ✅ Passed The PR successfully addresses both objectives from issue #43341: removes tipOffset props that positioned tooltips incorrectly, adds isInputField prop to fix form field width, and modifies form structures to ensure label tooltips remain visible in GitOps mode.
Out of Scope Changes check ✅ Passed All changes directly address the linked issue #43341: removing tipOffset props from GitOpsModeTooltipWrapper components, adding isInputField styling, and restructuring forms to fix tooltip visibility. No out-of-scope changes detected.
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
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 43341-gitops-mode-wonkiness

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.

❤️ Share

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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@frontend/pages/admin/OrgSettingsPage/_styles.scss`:
- Around line 83-88: The current selector (&__gitops-inputfield-wrapper
.component__tooltip-wrapper__element) only affects descendants of
app-config-form__gitops-inputfield-wrapper and misses other GitOps-wrapped
inputs; update the shared styling so any InputField wrapped by
GitOpsModeTooltipWrapper gets full width. Add or change a global/reusable
selector (e.g., .gitops-inputfield-wrapper or the GitOpsModeTooltipWrapper root
class) to target .component__tooltip-wrapper__element { width: 100%; } so the
Apple MDM server URL and Host expiry window fields (and any other GitOps-wrapped
InputField) receive the same full-width rule instead of being scoped to
app-config-form.
🪄 Autofix (Beta)

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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: dc04c21f-2c80-48dc-b253-dd5d80553c2a

📥 Commits

Reviewing files that changed from the base of the PR and between d90f8df and abc673b.

📒 Files selected for processing (16)
  • changes/43341-gitops-mode-wonkiness
  • frontend/components/GitOpsModeTooltipWrapper/GitOpsModeTooltipWrapper.tsx
  • frontend/components/GitOpsModeTooltipWrapper/_styles.scss
  • frontend/pages/ManageControlsPage/OSSettings/cards/DiskEncryption/DiskEncryption.tsx
  • frontend/pages/admin/IntegrationsPage/cards/GlobalHostStatusWebhook/GlobalHostStatusWebhook.tsx
  • frontend/pages/admin/IntegrationsPage/cards/IdentityProviders/components/EndUserAuthSection/EndUserAuthSection.tsx
  • frontend/pages/admin/IntegrationsPage/cards/Sso/Sso.tsx
  • frontend/pages/admin/OrgSettingsPage/_styles.scss
  • frontend/pages/admin/OrgSettingsPage/cards/Advanced/Advanced.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/Agents/Agents.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/FleetDesktop/FleetDesktop.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/Info/Info.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/Smtp/Smtp.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/Statistics/Statistics.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/WebAddress/WebAddress.tsx
  • frontend/pages/admin/TeamManagementPage/TeamDetailsWrapper/TeamSettings/TeamSettings.tsx
💤 Files with no reviewable changes (10)
  • frontend/pages/admin/OrgSettingsPage/cards/WebAddress/WebAddress.tsx
  • frontend/pages/ManageControlsPage/OSSettings/cards/DiskEncryption/DiskEncryption.tsx
  • frontend/pages/admin/TeamManagementPage/TeamDetailsWrapper/TeamSettings/TeamSettings.tsx
  • frontend/pages/admin/IntegrationsPage/cards/GlobalHostStatusWebhook/GlobalHostStatusWebhook.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/Statistics/Statistics.tsx
  • frontend/pages/admin/IntegrationsPage/cards/IdentityProviders/components/EndUserAuthSection/EndUserAuthSection.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/FleetDesktop/FleetDesktop.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/Smtp/Smtp.tsx
  • frontend/pages/admin/IntegrationsPage/cards/Sso/Sso.tsx
  • frontend/pages/admin/OrgSettingsPage/cards/Agents/Agents.tsx

@RachelElysia RachelElysia marked this pull request as draft April 13, 2026 14:44
@RachelElysia RachelElysia marked this pull request as ready for review April 13, 2026 15:09
@RachelElysia RachelElysia requested a review from Copilot April 13, 2026 15:09
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 15 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@RachelElysia RachelElysia merged commit 53d6597 into main Apr 14, 2026
19 checks passed
@RachelElysia RachelElysia deleted the 43341-gitops-mode-wonkiness branch April 14, 2026 13:31
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.

Fleet UI: GitOps mode styling wonkiness

3 participants