Skip to content

UI: Linux setup experience - End user - #32639

Merged
jacobshandling merged 11 commits into
mainfrom
32037-end-user
Sep 5, 2025
Merged

UI: Linux setup experience - End user#32639
jacobshandling merged 11 commits into
mainfrom
32037-end-user

Conversation

@jacobshandling

@jacobshandling jacobshandling commented Sep 5, 2025

Copy link
Copy Markdown
Contributor

PR 2/2 for #32037

  • Implements update for the Linux setup experience from the end-user's point of view (the "My device" page).
  • Works in concert with the new endpoints implemented in API endpoints for Linux setup experience #32493
  • My device page calls a new endpoint to get in-progress setup experience software installations. If there are any, the page is replaced with a "Setting up your device" page
  • The UI polls this endpoint until all such installations are either successful or failed (including canceled)
  • Setting up your device page includes a table displaying the name and status of each software installation
  • Once all installations are finished (succeed/fail), renders the regular My device page
  • Add a handler for the new API call for relevant tests

ezgif-6b54f32a7103ec

Testing

Can use this branch with fake data to help test this PR

  • Changes file added for user-visible changes in changes/
  • Added/updated automated tests - additional tests coming in follow-up
  • QA'd all new/changed functionality manually

@jacobshandling
jacobshandling marked this pull request as ready for review September 5, 2025 17:36
@jacobshandling
jacobshandling requested a review from a team as a code owner September 5, 2025 17:36
@codecov

codecov Bot commented Sep 5, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 58.55856% with 46 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.99%. Comparing base (86fcdde) to head (d261d5a).
⚠️ Report is 28 commits behind head on main.

Files with missing lines Patch % Lines
...etupSoftwareStatusCell/SetupSoftwareStatusCell.tsx 15.78% 16 Missing ⚠️
...es/hosts/details/DeviceUserPage/DeviceUserPage.tsx 74.54% 13 Missing and 1 partial ⚠️
...wareStatusTable/SetupSoftwareStatusTableConfig.tsx 14.28% 6 Missing ⚠️
...upSoftwareStatusTable/SetupSoftwareStatusTable.tsx 33.33% 4 Missing ⚠️
...upSoftwareProcessCell/SetupSoftwareProcessCell.tsx 40.00% 3 Missing ⚠️
...onents/SettingUpYourDevice/SettingUpYourDevice.tsx 50.00% 2 Missing ⚠️
...tend/pages/hosts/details/DeviceUserPage/helpers.ts 80.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #32639      +/-   ##
==========================================
- Coverage   64.02%   63.99%   -0.04%     
==========================================
  Files        2002     2011       +9     
  Lines      198219   198515     +296     
  Branches     6440     6552     +112     
==========================================
+ Hits       126907   127035     +128     
- Misses      61324    61490     +166     
- Partials     9988     9990       +2     
Flag Coverage Δ
frontend 52.46% <58.55%> (-0.15%) ⬇️

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 linked an issue Sep 5, 2025 that may be closed by this pull request

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

code looks good, nuthin but nits so far :neckbeard:

attempting a test run now!

"running",
"success",
"failure",
"cancelled", // server should be aggregating cancelled installs with failed, check here just in case

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.

damn, team canceLed takes a hit

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.

There was nothing I could do 😕

SetupExperienceStatusCancelled SetupExperienceStatusResultStatus = "cancelled"

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.

i know, don't think i didn't look already 🙃

)}
</Tabs>
</TabNav>
{showInfoModal && <InfoModal onCancel={toggleInfoModal} />}

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.

Just curious what the impact of moving this is? Just easier to find in the markup?

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.

the child is not necessarily rendered

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.

in the SettingUpYourDevice case, the previous location of this line would not be rendered, so modal would not be rendered

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.

arguably all of the modals should be moved similarly, but that would blow this up a bit

Comment thread frontend/pages/hosts/details/DeviceUserPage/components/InfoButton/InfoButton.tsx Outdated
disablePagination
pageSize={statuses.length}
emptyComponent={() => (
// will never be empty

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.

bold

isAllPagesSelected={false}
disableTableHeader={false}
disablePagination
pageSize={statuses.length}

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.

i'm assuming this page scrolls?

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.

Yea, figured so since pagination was never mentioned

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

tested 👍 , great job!

@jacobshandling
jacobshandling merged commit 32c60fe into main Sep 5, 2025
15 checks passed
@jacobshandling
jacobshandling deleted the 32037-end-user branch September 5, 2025 22:53
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.

Linux setup - Frontend

2 participants