diff --git a/changes/37012-host-details-activity-upcoming-count b/changes/37012-host-details-activity-upcoming-count new file mode 100644 index 00000000000..210b6c67072 --- /dev/null +++ b/changes/37012-host-details-activity-upcoming-count @@ -0,0 +1 @@ +- Fixed an issue where the upcoming activity count on the host details page was not updated after installing or uninstalling software. diff --git a/frontend/pages/hosts/details/cards/HostSoftwareLibrary/HostSoftwareLibrary.tsx b/frontend/pages/hosts/details/cards/HostSoftwareLibrary/HostSoftwareLibrary.tsx index 0e4ce215102..0a4edeaeb58 100644 --- a/frontend/pages/hosts/details/cards/HostSoftwareLibrary/HostSoftwareLibrary.tsx +++ b/frontend/pages/hosts/details/cards/HostSoftwareLibrary/HostSoftwareLibrary.tsx @@ -7,7 +7,7 @@ import React, { useEffect, } from "react"; import { InjectedRouter } from "react-router"; -import { useQuery } from "react-query"; +import { useQuery, useQueryClient } from "react-query"; import { AxiosError } from "axios"; import hostAPI, { @@ -139,6 +139,8 @@ const HostSoftwareLibrary = ({ currentUser, } = useContext(AppContext); + const queryClient = useQueryClient(); + const isUnsupported = isAndroid(platform); // no Android software const isWindowsHost = platform === "windows"; const isIPadOrIPhoneHost = isIPadOrIPhone(platform); @@ -500,6 +502,9 @@ const HostSoftwareLibrary = ({ if (isMountedRef.current) { onInstallOrUninstall(); } + queryClient.invalidateQueries({ + queryKey: [{ scope: "upcoming-activities" }], + }); const message = () => { switch (true) { @@ -524,7 +529,7 @@ const HostSoftwareLibrary = ({ renderFlash("error", getInstallErrorMessage(e)); } }, - [id, renderFlash, onInstallOrUninstall, isHostOnline] + [id, renderFlash, onInstallOrUninstall, isHostOnline, queryClient] ); const onClickUninstallAction = useCallback( @@ -534,6 +539,9 @@ const HostSoftwareLibrary = ({ if (isMountedRef.current) { onInstallOrUninstall(); } + queryClient.invalidateQueries({ + queryKey: [{ scope: "upcoming-activities" }], + }); renderFlash( "success", <> @@ -548,7 +556,7 @@ const HostSoftwareLibrary = ({ renderFlash("error", getUninstallErrorMessage(e)); } }, - [id, renderFlash, onInstallOrUninstall, isHostOnline] + [id, renderFlash, onInstallOrUninstall, isHostOnline, queryClient] ); const tableConfig = useMemo(() => {