Skip to content

UDAE: fetch and allow download default setup assistant profile - #44253

Merged
MagnusHJensen merged 2 commits into
mainfrom
43790-download-default-profile
Apr 28, 2026
Merged

UDAE: fetch and allow download default setup assistant profile#44253
MagnusHJensen merged 2 commits into
mainfrom
43790-download-default-profile

Conversation

@MagnusHJensen

@MagnusHJensen MagnusHJensen commented Apr 27, 2026

Copy link
Copy Markdown
Member

Needs #44236

Related issue: Resolves #43790

image

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. Added in backend PR

  • Input data is properly validated, SELECT * is avoided, SQL injection is prevented (using placeholders for values in statements), JS inline code is prevented especially for url redirects, and untrusted data interpolated into shell scripts/commands is validated against shell metacharacters.

  • Timeouts are implemented and retries are limited to avoid infinite loops

  • If paths of existing endpoints are modified without backwards compatibility, checked the frontend/CLI for any necessary changes

Testing

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

Summary by CodeRabbit

  • New Features

    • Setup Assistant now fetches and shows a default Apple enrollment profile when a team profile is missing, including its loading state before showing the uploader.
  • User-facing behavior

    • Default profile can be viewed and downloaded immediately; download uses a fixed filename and formatted JSON.
  • Documentation

    • Added a "Learn more" link to the Setup Assistant section.
  • Style

    • Default profile card uses a distinct background, smaller description text, and hides the delete action.

Copilot AI review requested due to automatic review settings April 27, 2026 20:37
@MagnusHJensen
MagnusHJensen requested a review from a team as a code owner April 27, 2026 20:37

@claude claude Bot left a comment

Copy link
Copy Markdown

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.

@codecov

codecov Bot commented Apr 27, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 66.77%. Comparing base (b3172f3) to head (a646b20).
⚠️ Report is 5 commits behind head on main.

Files with missing lines Patch % Lines
frontend/services/entities/mdm.ts 0.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #44253      +/-   ##
==========================================
- Coverage   66.77%   66.77%   -0.01%     
==========================================
  Files        2630     2630              
  Lines      211248   211251       +3     
  Branches     9428     9547     +119     
==========================================
  Hits       141071   141071              
- Misses      57354    57357       +3     
  Partials    12823    12823              
Flag Coverage Δ
frontend 54.74% <0.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.

@coderabbitai

coderabbitai Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

The PR adds UI and service support for Fleet’s default Apple automatic enrollment profile. The SetupAssistant component detects a missing team profile (404) and conditionally fetches the default profile; when present it renders a default-profile variant before the uploader and updates the section description with a “Learn more” link. SetupAssistantProfileCard gained a defaultProfile mode that changes styling, label, download filename/format, serializes JSON with indentation, and hides the delete action. Services and types include mdmService.getDefaultSetupEnrollmentProfile() and IDefaultAppleSetupEnrollmentProfileResponse. Endpoint constants were updated to fleet/enrollment_profiles/automatic and fleet/enrollment_profiles/automatic/default.

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding functionality to fetch and enable downloading the default setup assistant profile.
Description check ✅ Passed The description provides a related issue link and includes most required checklist items, though some are unchecked or marked as handled elsewhere (changes file in backend PR, automated tests not yet added).
Linked Issues check ✅ Passed The PR implements core requirements from #43790: displays default profile with Download (no Delete), hides it when custom profile exists, wires Download to the new endpoint, adds 'Learn more' link, and preserves empty states.
Out of Scope Changes check ✅ Passed All changes directly support #43790 objectives: UI components display default/custom profiles correctly, service layer adds the new endpoint integration, and styles support the new profile card variant.
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 43790-download-default-profile

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: 4

🧹 Nitpick comments (2)
frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/SetupAssistantProfileCard.tsx (2)

12-22: Tighten the prop typing for defaultProfile mode.

profile is required and typed as IAppleSetupEnrollmentProfileResponse, but in defaultProfile mode the caller in SetupAssistant.tsx casts an IDefaultAppleSetupEnrollmentProfileResponse (which has no name/uploaded_at) — and may even pass undefined while the default-profile query is in flight or has errored. The component currently dodges the missing fields via the defaultProfile branch in JSX, but onDownload still does profile.enrollment_profile, which will throw if profile is undefined.

A discriminated union avoids the unsafe cast at the call site and makes the contract explicit:

♻️ Suggested typing
-interface ISetupAssistantProfileCardProps {
-  profile: IAppleSetupEnrollmentProfileResponse;
-  onDelete?: () => void;
-  defaultProfile?: boolean;
-}
+type ISetupAssistantProfileCardProps =
+  | {
+      defaultProfile: true;
+      profile: IDefaultAppleSetupEnrollmentProfileResponse;
+      onDelete?: never;
+    }
+  | {
+      defaultProfile?: false;
+      profile: IAppleSetupEnrollmentProfileResponse;
+      onDelete: () => void;
+    };
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/SetupAssistantProfileCard.tsx`
around lines 12 - 22, The component's prop typing allows unsafe casts: when
defaultProfile mode is used the caller may pass an
IDefaultAppleSetupEnrollmentProfileResponse or undefined, but
SetupAssistantProfileCard still types profile as
IAppleSetupEnrollmentProfileResponse and onDownload accesses
profile.enrollment_profile which can throw; change
ISetupAssistantProfileCardProps into a discriminated union (e.g. {
defaultProfile: true; profile?: IDefaultAppleSetupEnrollmentProfileResponse } |
{ defaultProfile?: false; profile: IAppleSetupEnrollmentProfileResponse }) and
update the SetupAssistantProfileCard signature accordingly, then guard all uses
(especially onDownload and any profile.name/ uploaded_at accesses) for the
defaultProfile branch or undefined profile, and update the call sites in
SetupAssistant.tsx to match the new union.

23-37: LGTM, with one optional polish.

Pretty-printing the JSON and the conditional filename look good. Optional nit: the default-profile download produces a filename like 2026-04-27_default-automatic-enrollment.json (the date is prefixed before what is already a file name). If the intent (per Figma) is the user gets default-automatic-enrollment.json exactly, drop the date prefix in the default branch.

♻️ Optional refactor
   const onDownload = () => {
-    const date = new Date();
-    const filename = `${date.toISOString().split("T")[0]}_${
-      defaultProfile ? "default-automatic-enrollment.json" : profile.name
-    }`;
+    const filename = defaultProfile
+      ? "default-automatic-enrollment.json"
+      : `${new Date().toISOString().split("T")[0]}_${profile.name}`;
     const file = new global.window.File(
       [JSON.stringify(profile.enrollment_profile, null, 2)],
       filename
     );
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/SetupAssistantProfileCard.tsx`
around lines 23 - 37, The download filename currently always prefixes the date
but the review requests that when defaultProfile is true the file be named
exactly "default-automatic-enrollment.json" (no date); update the onDownload
function to build filename conditionally: if defaultProfile then set filename to
"default-automatic-enrollment.json" else keep the existing date-prefixed
`${dateISOString}_${profile.name}` logic; modify the reference in
SetupAssistantProfileCard's onDownload (where defaultProfile, profile.name and
FileSaver.saveAs are used) so the FileSaver.saveAs call receives the corrected
filename.
🤖 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/ManageControlsPage/SetupExperience/cards/SetupAssistant/SetupAssistant.tsx`:
- Around line 126-138: The default-profile branch can render with
defaultEnrollmentProfileData === undefined and crash; update the render logic in
SetupAssistant (the conditional that currently checks enrollmentProfileNotFound
|| !enrollmentProfileData) to only render SetupAssistantProfileCard when
defaultEnrollmentProfileData is actually present (e.g., require
defaultEnrollmentProfileData truthy before casting) and keep
SetupAssistantProfileUploader separate; additionally, detect and surface non-404
errors from the team profile query (do not let non-404 errors fall through to
the default branch) so that enrollmentProfileData/error state renders an
explicit error UI instead of the default card, and remove the unsafe cast to
IAppleSetupEnrollmentProfileResponse so the component only receives a valid
profile object for download actions (ensure download handler also guards
profile.enrollment_profile).
- Around line 69-82: The current logic only enables the default-profile fetch
when enrollmentProfileNotFound (404), causing other errors to skip fetching and
fall through to the default-profile UI; update the useQuery enabled predicate to
trigger when either a 404 or any enrollmentProfileError exists (e.g., enabled:
enrollmentProfileNotFound || !!enrollmentProfileError) and/or adjust the render
branch that checks enrollmentProfileNotFound || !enrollmentProfileData to
instead branch explicitly on enrollmentProfileError vs missing data so non-404
errors preserve the intended empty/disabled states; locate and change the
symbols enrollmentProfileNotFound, enrollmentProfileError, the useQuery call for
defaultEnrollmentProfileData, and the render condition that references
enrollmentProfileNotFound || !enrollmentProfileData.

In `@frontend/services/entities/mdm.ts`:
- Around line 71-75: The interface IDefaultAppleSetupEnrollmentProfileResponse
currently declares an unused/incorrect optional field updated_at which
mismatches the component expectation (SetupAssistantProfileCard expects
IAppleSetupEnrollmentProfileResponse with uploaded_at); remove updated_at from
IDefaultAppleSetupEnrollmentProfileResponse to avoid casting and dead fields, or
if the backend actually provides a timestamp named uploaded_at, replace
updated_at with uploaded_at and align the type with
IAppleSetupEnrollmentProfileResponse so the component can consume the field
without casting — update any call sites that cast between these interfaces
accordingly.

In `@frontend/utilities/endpoints.ts`:
- Line 188: The frontend adds MDM_APPLE_DEFAULT_SETUP_ENROLLMENT_PROFILE and
SetupAssistant.tsx calls getDefaultSetupEnrollmentProfile(), but the backend
currently lacks a GET handler for the /enrollment_profiles/automatic/default
route; add a GET route handler that responds to GET
/enrollment_profiles/automatic/default (alongside the existing base
/enrollment_profiles/automatic handlers) and ensure the response JSON matches
IDefaultAppleSetupEnrollmentProfileResponse with keys updated_at (optional) and
enrollment_profile so the frontend receives the expected shape.

---

Nitpick comments:
In
`@frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/SetupAssistantProfileCard.tsx`:
- Around line 12-22: The component's prop typing allows unsafe casts: when
defaultProfile mode is used the caller may pass an
IDefaultAppleSetupEnrollmentProfileResponse or undefined, but
SetupAssistantProfileCard still types profile as
IAppleSetupEnrollmentProfileResponse and onDownload accesses
profile.enrollment_profile which can throw; change
ISetupAssistantProfileCardProps into a discriminated union (e.g. {
defaultProfile: true; profile?: IDefaultAppleSetupEnrollmentProfileResponse } |
{ defaultProfile?: false; profile: IAppleSetupEnrollmentProfileResponse }) and
update the SetupAssistantProfileCard signature accordingly, then guard all uses
(especially onDownload and any profile.name/ uploaded_at accesses) for the
defaultProfile branch or undefined profile, and update the call sites in
SetupAssistant.tsx to match the new union.
- Around line 23-37: The download filename currently always prefixes the date
but the review requests that when defaultProfile is true the file be named
exactly "default-automatic-enrollment.json" (no date); update the onDownload
function to build filename conditionally: if defaultProfile then set filename to
"default-automatic-enrollment.json" else keep the existing date-prefixed
`${dateISOString}_${profile.name}` logic; modify the reference in
SetupAssistantProfileCard's onDownload (where defaultProfile, profile.name and
FileSaver.saveAs are used) so the FileSaver.saveAs call receives the corrected
filename.
🪄 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: e012a8eb-3021-43e1-b2aa-19f0382bd3b7

📥 Commits

Reviewing files that changed from the base of the PR and between a97a223 and ea1d078.

📒 Files selected for processing (5)
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/SetupAssistant.tsx
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/SetupAssistantProfileCard.tsx
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/_styles.scss
  • frontend/services/entities/mdm.ts
  • frontend/utilities/endpoints.ts

Comment thread frontend/services/entities/mdm.ts
Comment thread frontend/utilities/endpoints.ts

Copilot AI 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.

Pull request overview

Updates the Setup Assistant (automatic enrollment) UI to show a Fleet-provided default enrollment profile (with Download action) when no custom profile exists, and wires the download behavior to a new API endpoint.

Changes:

  • Updated MDM automatic enrollment profile API endpoints and added a new “default profile” endpoint constant.
  • Added an MDM service method to fetch the default Setup Assistant enrollment profile.
  • Updated the Setup Assistant UI/card to render a default-profile variant (download-only) and support downloading formatted JSON.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
frontend/utilities/endpoints.ts Switches automatic enrollment profile endpoint to the non-deprecated route and adds a constant for the default-profile download endpoint.
frontend/services/entities/mdm.ts Adds the default-profile response type and a getDefaultSetupEnrollmentProfile API method.
frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/_styles.scss Extends card styling to support a “default profile” visual variant and description text.
frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/SetupAssistantProfileCard.tsx Adds default-profile rendering (no delete action) and downloads prettified JSON with improved filename formatting.
frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/SetupAssistant.tsx Fetches and displays the default profile card when a custom profile is absent, and adds the “Learn more” link per design.

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

Comment thread frontend/utilities/endpoints.ts
Comment thread frontend/services/entities/mdm.ts

@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.

♻️ Duplicate comments (1)
frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/SetupAssistant.tsx (1)

126-140: ⚠️ Potential issue | 🟠 Major

Non-404 enrollment-profile failures still fall through to the default/uploader UI.

At Line 126, enrollmentProfileNotFound || !enrollmentProfileData treats any failed fetch with empty data (e.g. 403/500/network) as “no profile,” so this branch renders instead of an explicit error/empty-state path. That can hide the intended gated states and make failures look like normal upload state. Please branch non-404 errors explicitly before the default-profile path.

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

In
`@frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/SetupAssistant.tsx`
around lines 126 - 140, The current conditional (enrollmentProfileNotFound ||
!enrollmentProfileData) treats any missing data as "not found" and lets non-404
failures fall through to the default profile/uploader UI; update the branch to
detect non-404 errors explicitly (e.g., an enrollmentProfileError or status !==
404) and render an explicit error/empty-state path before falling back to the
defaultProfile/uploader; specifically, modify the logic surrounding
enrollmentProfileNotFound and enrollmentProfileData in SetupAssistant.tsx so
that if there is an error that is not a 404 you render an error UI (or early
return) instead of rendering
SetupAssistantProfileCard/SetupAssistantProfileUploader with
defaultEnrollmentProfileData.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In
`@frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/SetupAssistant.tsx`:
- Around line 126-140: The current conditional (enrollmentProfileNotFound ||
!enrollmentProfileData) treats any missing data as "not found" and lets non-404
failures fall through to the default profile/uploader UI; update the branch to
detect non-404 errors explicitly (e.g., an enrollmentProfileError or status !==
404) and render an explicit error/empty-state path before falling back to the
defaultProfile/uploader; specifically, modify the logic surrounding
enrollmentProfileNotFound and enrollmentProfileData in SetupAssistant.tsx so
that if there is an error that is not a 404 you render an error UI (or early
return) instead of rendering
SetupAssistantProfileCard/SetupAssistantProfileUploader with
defaultEnrollmentProfileData.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: b54f8490-af56-4d31-9bb3-16c7216e3556

📥 Commits

Reviewing files that changed from the base of the PR and between ea1d078 and a1a35a5.

📒 Files selected for processing (2)
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/SetupAssistant.tsx
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/SetupAssistantProfileCard.tsx
✅ Files skipped from review due to trivial changes (1)
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/SetupAssistantProfileCard.tsx

@MagnusHJensen
MagnusHJensen force-pushed the 43790-download-default-profile branch from a1a35a5 to a646b20 Compare April 28, 2026 16:38

@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: 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/ManageControlsPage/SetupExperience/cards/SetupAssistant/SetupAssistant.tsx`:
- Line 70: The detection of a 404 uses enrollmentProfileError?.status which can
be undefined for network errors; update the check where
enrollmentProfileNotFound is defined to use
enrollmentProfileError?.response?.status === 404 (referencing the
enrollmentProfileError variable and enrollmentProfileNotFound constant in
SetupAssistant.tsx) so the code correctly detects HTTP 404 responses only when a
response exists and doesn't mis-handle network errors.
🪄 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: f07c25bf-3112-4a67-ac05-a524108bf35c

📥 Commits

Reviewing files that changed from the base of the PR and between a1a35a5 and a646b20.

📒 Files selected for processing (5)
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/SetupAssistant.tsx
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/SetupAssistantProfileCard.tsx
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/_styles.scss
  • frontend/services/entities/mdm.ts
  • frontend/utilities/endpoints.ts
✅ Files skipped from review due to trivial changes (1)
  • frontend/services/entities/mdm.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • frontend/utilities/endpoints.ts
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/_styles.scss
  • frontend/pages/ManageControlsPage/SetupExperience/cards/SetupAssistant/components/SetupAssistantProfileCard/SetupAssistantProfileCard.tsx

@MagnusHJensen
MagnusHJensen merged commit eb661f9 into main Apr 28, 2026
19 checks passed
@MagnusHJensen
MagnusHJensen deleted the 43790-download-default-profile branch April 28, 2026 17:23

@nulmete nulmete 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. Saw it's been merged before I was able to submit my comments but I think they're worth tackling as a follow-up 😄

Comment on lines +35 to +37
const baseClass = `setup-assistant-profile-card${
props.defaultProfile ? "-default-profile" : ""
}`;

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.

since we're following the BEM convention, I think we should always have setup-assistant-profile-card as the base class, and append setup-assistant-profile-card--default-profile if it's a default profile (--default-profile would act as a modifier IMO)

TL;DR:

  • if default profile -> class="setup-assistant-profile-card setup-assistant-profile-card--default-profile"
  • otherwise -> class="setup-assistant-profile-card"

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.

Got it, will followup wasn't aware of the BEM convention

@@ -1,4 +1,4 @@
.setup-assistant-profile-card {
.setup-assistant-profile-card, .setup-assistant-profile-card-default-profile {

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.

following my comment related to the BEM convention, I think this could be nested like:

.setup-assistant-profile-card {
  &--default-profile { ... }
}

Comment on lines +35 to +37
.setup-assistant-profile-card-default-profile {
background-color: $ui-off-white;
} No newline at end of file

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.

this could also be part of the same block above

MagnusHJensen added a commit that referenced this pull request Apr 28, 2026
Follow up from comments on: #44253

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Refactor**
* Improved component styling architecture to follow modern CSS naming
conventions, enhancing code maintainability and consistency across the
setup assistant profile card. No changes to user-facing functionality or
appearance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
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.

UDAE: UI changes for downloading default profile

4 participants