From 248f35b78efd79f6b2a1267147b3211cf86d7a77 Mon Sep 17 00:00:00 2001 From: Jahziel Villasana-Espinoza Date: Fri, 6 Mar 2026 12:11:37 -0500 Subject: [PATCH] refactor path generation (#41126) **Related issue:** Resolves #38965 # Checklist for submitter If some of the following don't apply, delete the relevant line. - [x] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files) for more information. ## Testing - [x] QA'd all new/changed functionality manually --- changes/38965-preserve-team-context | 1 + .../HostSoftwareLibrary.tsx | 34 ++++++++++--------- 2 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 changes/38965-preserve-team-context diff --git a/changes/38965-preserve-team-context b/changes/38965-preserve-team-context new file mode 100644 index 0000000000..1a423ba4dd --- /dev/null +++ b/changes/38965-preserve-team-context @@ -0,0 +1 @@ +- Fixed an issue where iOS/iPadOS hosts couldn't add app store apps from the host library page. diff --git a/frontend/pages/hosts/details/cards/HostSoftwareLibrary/HostSoftwareLibrary.tsx b/frontend/pages/hosts/details/cards/HostSoftwareLibrary/HostSoftwareLibrary.tsx index 9918f9386f..dbe5847680 100644 --- a/frontend/pages/hosts/details/cards/HostSoftwareLibrary/HostSoftwareLibrary.tsx +++ b/frontend/pages/hosts/details/cards/HostSoftwareLibrary/HostSoftwareLibrary.tsx @@ -369,23 +369,25 @@ const HostSoftwareLibrary = ({ const onAddSoftware = useCallback(() => { // "Add Software" path dependent on host's platform - const addSoftwarePathForHostPlatform = () => { - if (isIPadOrIPhoneHost || isAndroidHost) { - return getPathWithQueryParams(PATHS.SOFTWARE_ADD_APP_STORE, { - platform: isAndroidHost ? "android" : "apple", - }); - } - if (isMacOSHost || isWindowsHost) { - return PATHS.SOFTWARE_ADD_FLEET_MAINTAINED; - } - return PATHS.SOFTWARE_ADD_PACKAGE; - }; + let path = ""; + const params: { + fleet_id: number; + platform?: string; + } = { fleet_id: hostTeamId }; - router.push( - getPathWithQueryParams(addSoftwarePathForHostPlatform(), { - fleet_id: hostTeamId, - }) - ); + switch (true) { + case isIPadOrIPhoneHost || isAndroidHost: + path = PATHS.SOFTWARE_ADD_APP_STORE; + params.platform = isAndroidHost ? "android" : "apple"; + break; + case isMacOSHost || isWindowsHost: + path = PATHS.SOFTWARE_ADD_FLEET_MAINTAINED; + break; + default: + path = PATHS.SOFTWARE_ADD_PACKAGE; + } + + router.push(getPathWithQueryParams(path, params)); }, [ hostTeamId, isIPadOrIPhoneHost,