Skip to content

UI housekeeping: Update Modal.children from JSX.Element to React.ReactNode, remove empty fragment wrappers - #41394

Merged
jacobshandling merged 7 commits into
mainfrom
update-modal-children-type
Mar 10, 2026
Merged

UI housekeeping: Update Modal.children from JSX.Element to React.ReactNode, remove empty fragment wrappers#41394
jacobshandling merged 7 commits into
mainfrom
update-modal-children-type

Conversation

@jacobshandling

@jacobshandling jacobshandling commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Refactor
    • Simplified modal structures across multiple dialog components for improved code maintainability.
    • Enhanced modal component's flexibility to support broader content types.

@jacobshandling

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Mar 10, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request refactors modal component JSX structures across the frontend codebase by removing unnecessary React Fragment wrappers. The Modal component's children prop type is broadened from JSX.Element to React.ReactNode to accommodate the simplified structures. Modal content and action buttons are moved from fragment-wrapped groups to direct children within Modal elements. Additionally, the Passwords.tsx component is completely removed from the OS Settings section. No functional behavior or control flow changes occur; all modifications are structural improvements to component markup.

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning No pull request description was provided by the author, but the template requires multiple sections for database changes, testing, and other considerations. Add a comprehensive PR description including checklist items, testing notes, and any relevant context about the changes made.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the two main changes: updating Modal.children type and removing fragment wrappers, directly matching the file summaries.
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 update-modal-children-type

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (4)
frontend/pages/hosts/details/HostDetailsPage/modals/RecoveryLockPasswordModal/RecoveryLockPasswordModal.tsx (1)

52-75: LGTM! Clean refactoring of the conditional rendering.

The logic correctly handles all three states: loading, error, and success. The Fragment on lines 59-73 is appropriately retained since it wraps multiple sibling elements.

One optional readability improvement: a chained ternary would make the mutual exclusivity of states explicit:

♻️ Optional: Chained ternary for clearer state handling
-      {isLoading && <Spinner />}
-      {recoveryLockPasswordError ? (
+      {isLoading ? (
+        <Spinner />
+      ) : recoveryLockPasswordError ? (
         <DataError
           description={getErrorReason(recoveryLockPasswordError) || undefined}
         />
       ) : (
-        !isLoading && (
-          <>
-            <InputFieldHiddenContent value={recoveryLockPassword ?? ""} />
-            <p>
-              Use this to unlock and regain access to the host if the end user
-              forgets their local password.{" "}
-              <CustomLink
-                newTab
-                url={`${LEARN_MORE_ABOUT_BASE_LINK}/startup-security-macos`}
-                text="Learn more"
-              />
-            </p>
-            <div className="modal-cta-wrap">
-              <Button onClick={onCancel}>Done</Button>
-            </div>
-          </>
-        )
+        <>
+          <InputFieldHiddenContent value={recoveryLockPassword ?? ""} />
+          <p>
+            Use this to unlock and regain access to the host if the end user
+            forgets their local password.{" "}
+            <CustomLink
+              newTab
+              url={`${LEARN_MORE_ABOUT_BASE_LINK}/startup-security-macos`}
+              text="Learn more"
+            />
+          </p>
+          <div className="modal-cta-wrap">
+            <Button onClick={onCancel}>Done</Button>
+          </div>
+        </>
       )}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@frontend/pages/hosts/details/HostDetailsPage/modals/RecoveryLockPasswordModal/RecoveryLockPasswordModal.tsx`
around lines 52 - 75, Refactor the JSX conditional in RecoveryLockPasswordModal
to use a chained ternary expression to make the three mutually-exclusive states
explicit: check isLoading first to render Spinner, then check
recoveryLockPasswordError to render DataError (using
getErrorReason(recoveryLockPasswordError) as description), otherwise render the
success block containing InputFieldHiddenContent (value={recoveryLockPassword ??
""}), the explanatory paragraph with CustomLink and the Done Button
(onClick={onCancel}); update references to Spinner, DataError,
InputFieldHiddenContent, CustomLink and Button in the JSX so the mutual
exclusivity of states is clear and equivalent to the current behavior.
frontend/pages/admin/IntegrationsPage/cards/MdmSettings/VppPage/components/EditTeamsVppModal/EditTeamsVppModal.tsx (1)

283-286: Optional: Fragment wrapper could be removed for consistency with PR objectives.

The tooltip prop accepts React.ReactNode, so the fragment wrapper around the text content is unnecessary.

🔧 Proposed simplification
             tooltip={
               isDropdownDisabled ? undefined : (
-                <>
-                  Each fleet can have only one VPP token. Fleets that already
-                  have a VPP token won&apos;t show up here.
-                </>
+                "Each fleet can have only one VPP token. Fleets that already have a VPP token won't show up here."
               )
             }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@frontend/pages/admin/IntegrationsPage/cards/MdmSettings/VppPage/components/EditTeamsVppModal/EditTeamsVppModal.tsx`
around lines 283 - 286, The tooltip prop in EditTeamsVppModal is receiving an
unnecessary React fragment around plain text; remove the fragment wrapper so the
tooltip prop receives the text node directly (e.g., replace the <>Each fleet...
</> fragment with the raw string or a single JSX text node) in the
EditTeamsVppModal component where tooltip is passed.
frontend/pages/ManageControlsPage/Scripts/components/CancelScriptBatchModal/CancelScriptBatchModal.tsx (1)

28-51: Consider removing the wrapper div to reduce DOM nesting.

The Modal component wraps children in <div className="modal__content">. This component further wraps content in <div className="cancel-script-batch-modal__content">, creating unnecessary double-wrapping. Since no styles target the cancel-script-batch-modal__content class, the inner wrapper can be removed—children can be rendered directly as Modal's direct children.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@frontend/pages/ManageControlsPage/Scripts/components/CancelScriptBatchModal/CancelScriptBatchModal.tsx`
around lines 28 - 51, The inner wrapper div with class `${baseClass}__content`
inside the CancelScriptBatchModal component is redundant because Modal already
renders a wrapper; remove that div and render its children (paragraphs and the
`.modal-cta-wrap` block with the Buttons) directly as Modal's children, keeping
all existing elements, props (isLoading, disabled, onClick handlers) and the
`baseClass` constant for any remaining per-component classes if needed; ensure
there are no remaining references to `cancel-script-batch-modal__content` and
run the app to verify styling/behavior unchanged.
frontend/pages/hosts/details/HostDetailsPage/modals/RunScriptModal/RunScriptModal.tsx (1)

78-80: Missing setPage in dependency array.

While setPage from useState is typically stable across renders, ESLint's exhaustive-deps rule would flag this. Adding it to the dependency array follows React best practices.

Suggested fix
   const onQueryChange = useCallback(({ pageIndex }: ITableQueryData) => {
     setPage(pageIndex);
-  }, []);
+  }, [setPage]);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@frontend/pages/hosts/details/HostDetailsPage/modals/RunScriptModal/RunScriptModal.tsx`
around lines 78 - 80, The onQueryChange callback created with useCallback omits
setPage from its dependency array, which will trigger exhaustive-deps lint
warnings; update the declaration of onQueryChange to include setPage in the
dependency array so useCallback depends on setPage (i.e., useCallback(({
pageIndex }: ITableQueryData) => { setPage(pageIndex); }, [setPage])) ensuring
the callback list references the stable state setter used inside it.
🤖 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/hosts/details/cards/Software/SelfService/components/UninstallSoftwareModal/UninstallSoftwareModal.tsx`:
- Around line 51-54: The confirmation copy uses the optional prop softwareName
which can be undefined; change the paragraph to use the fallback value
displaySoftwareName (the same value used in the modal title) instead of
softwareName so the body never renders "undefined data" and remains consistent
with the title in UninstallSoftwareModal (referencing the softwareName and
displaySoftwareName variables).

In
`@frontend/pages/hosts/details/DeviceUserPage/BitLockerPinModal/BitLockerPinModal.tsx`:
- Around line 25-58: The JSX in BitLockerPinModal (BitLockerPinModal.tsx) wraps
an <ol> inside a <p>, which is invalid; remove the enclosing <p> that contains
the <ol> and instead render the <ol> directly (or wrap the list in a suitable
block-level container like a <div> if additional grouping or styling is needed)
so the ordered list is not nested inside a paragraph and spacing/styling remain
correct.

In
`@frontend/pages/hosts/ManageHostsPage/components/RunScriptBatchModal/RunScriptBatchModal.tsx`:
- Around line 364-372: The "Cancel" Button currently calls
setSelectedScript(undefined) but does not dismiss the modal via onCancel, so
either rename the button to reflect it returns to the previous step (e.g.,
"Back" or "Previous") or change its handler to call onCancel to actually close
the modal; locate the Button in RunScriptBatchModal.tsx that uses
setSelectedScript and update its label and/or onClick to call the modal-dismiss
handler onCancel (or both if you want to clear selectedScript then close).

---

Nitpick comments:
In
`@frontend/pages/admin/IntegrationsPage/cards/MdmSettings/VppPage/components/EditTeamsVppModal/EditTeamsVppModal.tsx`:
- Around line 283-286: The tooltip prop in EditTeamsVppModal is receiving an
unnecessary React fragment around plain text; remove the fragment wrapper so the
tooltip prop receives the text node directly (e.g., replace the <>Each fleet...
</> fragment with the raw string or a single JSX text node) in the
EditTeamsVppModal component where tooltip is passed.

In
`@frontend/pages/hosts/details/HostDetailsPage/modals/RecoveryLockPasswordModal/RecoveryLockPasswordModal.tsx`:
- Around line 52-75: Refactor the JSX conditional in RecoveryLockPasswordModal
to use a chained ternary expression to make the three mutually-exclusive states
explicit: check isLoading first to render Spinner, then check
recoveryLockPasswordError to render DataError (using
getErrorReason(recoveryLockPasswordError) as description), otherwise render the
success block containing InputFieldHiddenContent (value={recoveryLockPassword ??
""}), the explanatory paragraph with CustomLink and the Done Button
(onClick={onCancel}); update references to Spinner, DataError,
InputFieldHiddenContent, CustomLink and Button in the JSX so the mutual
exclusivity of states is clear and equivalent to the current behavior.

In
`@frontend/pages/hosts/details/HostDetailsPage/modals/RunScriptModal/RunScriptModal.tsx`:
- Around line 78-80: The onQueryChange callback created with useCallback omits
setPage from its dependency array, which will trigger exhaustive-deps lint
warnings; update the declaration of onQueryChange to include setPage in the
dependency array so useCallback depends on setPage (i.e., useCallback(({
pageIndex }: ITableQueryData) => { setPage(pageIndex); }, [setPage])) ensuring
the callback list references the stable state setter used inside it.

In
`@frontend/pages/ManageControlsPage/Scripts/components/CancelScriptBatchModal/CancelScriptBatchModal.tsx`:
- Around line 28-51: The inner wrapper div with class `${baseClass}__content`
inside the CancelScriptBatchModal component is redundant because Modal already
renders a wrapper; remove that div and render its children (paragraphs and the
`.modal-cta-wrap` block with the Buttons) directly as Modal's children, keeping
all existing elements, props (isLoading, disabled, onClick handlers) and the
`baseClass` constant for any remaining per-component classes if needed; ensure
there are no remaining references to `cancel-script-batch-modal__content` and
run the app to verify styling/behavior unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 57c7cde1-cbee-4ef7-b29e-c7d56496cfb2

📥 Commits

Reviewing files that changed from the base of the PR and between 27a0438 and d8727cb.

📒 Files selected for processing (75)
  • frontend/components/ActivityDetails/InstallDetails/SoftwareInstallDetailsModal/SoftwareInstallDetailsModal.tsx
  • frontend/components/ActivityDetails/InstallDetails/SoftwareIpaInstallDetailsModal/SoftwareIpaInstallDetailsModal.tsx
  • frontend/components/ActivityDetails/InstallDetails/SoftwareScriptDetailsModal/SoftwareScriptDetailsModal.tsx
  • frontend/components/ActivityDetails/InstallDetails/SoftwareUninstallDetailsModal/SoftwareUninstallDetailsModal.tsx
  • frontend/components/ActivityDetails/InstallDetails/VppInstallDetailsModal/VppInstallDetailsModal.tsx
  • frontend/components/Modal/Modal.tsx
  • frontend/pages/AccountPage/AccountPage.tsx
  • frontend/pages/DashboardPage/cards/ActivityFeed/components/AppStoreDetailsModal/AppStoreDetailsModal.tsx
  • frontend/pages/DashboardPage/cards/ActivityFeed/components/LibrarySoftwareDetailsModal/LibrarySoftwareDetailsModal.tsx
  • frontend/pages/DashboardPage/cards/ActivityFeed/components/RunScriptDetailsModal/RunScriptDetailsModal.tsx
  • frontend/pages/DashboardPage/components/MdmSolutionModal/MdmSolutionModal.tsx
  • frontend/pages/ManageControlsPage/OSSettings/cards/Certificates/components/DeleteCertificateModal/DeleteCertificateModal.tsx
  • frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ConfigProfileStatusModal/ConfigProfileStatusModal.tsx
  • frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ProfileUploader/components/AddProfileModal/AddProfileModal.tsx
  • frontend/pages/ManageControlsPage/OSSettings/cards/CustomSettings/components/ResendConfigProfileModal/ResendConfigProfileModal.tsx
  • frontend/pages/ManageControlsPage/OSSettings/cards/Passwords/Passwords.tsx
  • frontend/pages/ManageControlsPage/Scripts/components/CancelScriptBatchModal/CancelScriptBatchModal.tsx
  • frontend/pages/ManageControlsPage/Scripts/components/EditScriptModal/EditScriptModal.tsx
  • frontend/pages/ManageControlsPage/Scripts/components/ScriptUploadModal/ScriptUploadModal.tsx
  • frontend/pages/ManageControlsPage/Secrets/components/DeleteSecretModal/DeleteSecretModal.tsx
  • frontend/pages/ManageControlsPage/SetupExperience/cards/RunScript/components/DeleteSetupExperienceScriptModal/DeleteSetupExperienceScriptModal.tsx
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/DeleteAutoEnrollmentProfile/DeleteAutoEnrollmentProfile.tsx
  • frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareFleetMaintained/FleetMaintainedAppDetailsPage/AddFleetAppSoftwareModal/AddFleetAppSoftwareModal.tsx
  • frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareFleetMaintained/FleetMaintainedAppDetailsPage/FleetAppDetailsModal/FleetAppDetailsModal.tsx
  • frontend/pages/SoftwarePage/SoftwareTitleDetailsPage/AdvancedOptionsModal/AdvancedOptionsModal.tsx
  • frontend/pages/SoftwarePage/SoftwareTitleDetailsPage/DeleteSoftwareModal/DeleteSoftwareModal.tsx
  • frontend/pages/SoftwarePage/SoftwareTitleDetailsPage/EditAutoUpdateConfigModal/EditAutoUpdateConfigModal.tsx
  • frontend/pages/SoftwarePage/SoftwareTitleDetailsPage/EditConfigurationModal/EditConfigurationModal.tsx
  • frontend/pages/SoftwarePage/SoftwareTitleDetailsPage/EditIconModal/EditIconModal.tsx
  • frontend/pages/SoftwarePage/SoftwareTitleDetailsPage/ViewYamlModal/ViewYamlModal.tsx
  • frontend/pages/SoftwarePage/components/modals/CategoriesEndUserExperienceModal/CategoriesEndUserExperienceModal.tsx
  • frontend/pages/SoftwarePage/components/modals/PreviewTicketModal/PreviewTicketModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/CertificateAuthorities/components/AddCertAuthorityModal/AddCertAuthorityModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/CertificateAuthorities/components/DeleteCertificateAuthorityModal/DeleteCertificateAuthorityModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/ConditionalAccess/ConditionalAccess.tsx
  • frontend/pages/admin/IntegrationsPage/cards/ConditionalAccess/components/EntraConditionalAccessModal/EntraConditionalAccessModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/ConditionalAccess/components/OktaConditionalAccessModal/OktaConditionalAccessModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AndroidMdmPage/components/TurnOffAndroidMdmModal/TurnOffAndroidMdmModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/AddAbmModal/AddAbmModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/DeleteAbmModal/DeleteAbmModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/AppleBusinessManagerPage/components/EditTeamsAbmModal/EditTeamsAbmModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/VppPage/components/AddVppModal/AddVppModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/VppPage/components/DeleteVppModal/DeleteVppModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/VppPage/components/EditTeamsVppModal/EditTeamsVppModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/VppPage/components/RenewVppModal/RenewVppModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/components/AddEntraTenantModal/AddEntraTenantModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/components/DeleteEntraTenantModal/DeleteEntraTenantModal.tsx
  • frontend/pages/admin/IntegrationsPage/cards/MdmSettings/components/ExampleWebhookUrlPayloadModal/ExampleWebhookUrlPayloadModal.tsx
  • frontend/pages/admin/TeamManagementPage/TeamDetailsWrapper/UsersPage/components/RemoveUserModal/RemoveUserModal.tsx
  • frontend/pages/admin/TeamManagementPage/components/DeleteTeamModal/DeleteTeamModal.tsx
  • frontend/pages/admin/components/HostStatusWebhookPreviewModal/HostStatusWebhookPreviewModal.tsx
  • frontend/pages/hosts/ManageHostsPage/components/DeleteLabelModal/DeleteLabelModal.tsx
  • frontend/pages/hosts/ManageHostsPage/components/RunScriptBatchModal/RunScriptBatchModal.tsx
  • frontend/pages/hosts/components/CommandDetailsModal/CommandDetailsModal.tsx
  • frontend/pages/hosts/components/DeleteHostModal/DeleteHostModal.tsx
  • frontend/pages/hosts/components/ScriptDetailsModal/ScriptDetailsModal.tsx
  • frontend/pages/hosts/components/TransferHostModal/TransferHostModal.tsx
  • frontend/pages/hosts/details/DeviceUserPage/BitLockerPinModal/BitLockerPinModal.tsx
  • frontend/pages/hosts/details/DeviceUserPage/BypassModal/BypassModal.tsx
  • frontend/pages/hosts/details/HostDetailsPage/modals/BootstrapPackageModal/BootstrapPackageModal.tsx
  • frontend/pages/hosts/details/HostDetailsPage/modals/CancelActivityModal/CancelActivityModal.tsx
  • frontend/pages/hosts/details/HostDetailsPage/modals/LockModal/LockModal.tsx
  • frontend/pages/hosts/details/HostDetailsPage/modals/RecoveryLockPasswordModal/RecoveryLockPasswordModal.tsx
  • frontend/pages/hosts/details/HostDetailsPage/modals/RunScriptModal/RunScriptModal.tsx
  • frontend/pages/hosts/details/HostDetailsPage/modals/SelectQueryModal/SelectQueryModal.tsx
  • frontend/pages/hosts/details/HostDetailsPage/modals/UnlockModal/UnlockModal.tsx
  • frontend/pages/hosts/details/HostDetailsPage/modals/WipeModal/WipeModal.tsx
  • frontend/pages/hosts/details/OSSettingsModal/OSSettingsModal.tsx
  • frontend/pages/hosts/details/cards/Software/SelfService/components/OpenSoftwareModal/OpenSoftwareModal.tsx
  • frontend/pages/hosts/details/cards/Software/SelfService/components/SoftwareUpdateModal/SoftwareUpdateModal.tsx
  • frontend/pages/hosts/details/cards/Software/SelfService/components/UninstallSoftwareModal/UninstallSoftwareModal.tsx
  • frontend/pages/hosts/details/modals/CertificateDetailsModal/CertificateDetailsModal.tsx
  • frontend/pages/hosts/details/modals/InventoryVersionsModal/InventoryVersionsModal.tsx
  • frontend/pages/hosts/details/modals/LocationModal/LocationModal.tsx
  • frontend/pages/policies/ManagePoliciesPage/components/CalendarEventPreviewModal/CalendarEventPreviewModal.tsx
💤 Files with no reviewable changes (1)
  • frontend/pages/ManageControlsPage/OSSettings/cards/Passwords/Passwords.tsx

@codecov

codecov Bot commented Mar 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 30.93525% with 96 lines in your changes missing coverage. Please review.
✅ Project coverage is 66.35%. Comparing base (94288fd) to head (e2e5498).
⚠️ Report is 19 commits behind head on main.

Files with missing lines Patch % Lines
...ertificateDetailsModal/CertificateDetailsModal.tsx 0.00% 39 Missing ⚠️
...tailsPage/modals/RunScriptModal/RunScriptModal.tsx 0.00% 12 Missing ⚠️
...darEventPreviewModal/CalendarEventPreviewModal.tsx 33.33% 4 Missing and 4 partials ⚠️
...eryLockPasswordModal/RecoveryLockPasswordModal.tsx 0.00% 7 Missing ⚠️
...perienceModal/CategoriesEndUserExperienceModal.tsx 0.00% 6 Missing ⚠️
...components/EditTeamsAbmModal/EditTeamsAbmModal.tsx 0.00% 5 Missing ⚠️
...ents/AppStoreDetailsModal/AppStoreDetailsModal.tsx 0.00% 4 Missing ⚠️
...components/EditTeamsVppModal/EditTeamsVppModal.tsx 0.00% 3 Missing ⚠️
...ils/HostDetailsPage/modals/WipeModal/WipeModal.tsx 0.00% 3 Missing ⚠️
...reTitleDetailsPage/EditIconModal/EditIconModal.tsx 50.00% 1 Missing and 1 partial ⚠️
... and 6 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #41394      +/-   ##
==========================================
- Coverage   66.35%   66.35%   -0.01%     
==========================================
  Files        2480     2480              
  Lines      198570   198569       -1     
  Branches     8772     8885     +113     
==========================================
- Hits       131765   131764       -1     
  Misses      54904    54904              
  Partials    11901    11901              
Flag Coverage Δ
frontend 54.31% <30.93%> (-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.

@jacobshandling
jacobshandling marked this pull request as draft March 10, 2026 21:05
@jacobshandling
jacobshandling marked this pull request as ready for review March 10, 2026 22:04
</li>
<li>
<span>5.</span>
<span>Enter a name for the server such as &quot;Fleet&quot;.</span>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like there are other changes here besides the ReactNode stuff

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

An initial pass with Sonnet made some counterproductive substitutions of "s for smart quotes which broke a couple things. I ran a couple follow-up passes with Opus 4.6 to address that, and this was something it flagged. I wasn't sure whether or not this was a change the initial pass had made, so went ahead with this, though now see that it is an update relative to main

@getvictor getvictor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM
There were some additional whitespace, wrapping, quoting changes here. Would have been nice to not have them in this large PR.

@jacobshandling
jacobshandling merged commit 0db86ef into main Mar 10, 2026
19 checks passed
@jacobshandling
jacobshandling deleted the update-modal-children-type branch March 10, 2026 22:30
@jacobshandling

Copy link
Copy Markdown
Contributor Author

whitespace, wrapping

@getvictor these were a byproduct of the reduced nesting that removing the wrapper fragments generated, since lines that previously were too long to fit into one now fit on a single line. Linting would not pass without them. I commented on the quote changes here

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.

2 participants