diff --git a/changes/issue-3064-duplicate-hosts b/changes/issue-3064-duplicate-hosts new file mode 100644 index 0000000000..54f41379ae --- /dev/null +++ b/changes/issue-3064-duplicate-hosts @@ -0,0 +1 @@ +* Fix duplicate hosts on render when host_id URL params are present diff --git a/frontend/pages/queries/QueryPage/QueryPage.tsx b/frontend/pages/queries/QueryPage/QueryPage.tsx index e79f60a618..49399448f2 100644 --- a/frontend/pages/queries/QueryPage/QueryPage.tsx +++ b/frontend/pages/queries/QueryPage/QueryPage.tsx @@ -56,6 +56,9 @@ const QueryPage = ({ setLastEditedQueryObserverCanRun, } = useContext(QueryContext); + const [queryParamHostsAdded, setQueryParamHostsAdded] = useState( + false + ); const [step, setStep] = useState(QUERIES_PAGE_STEPS[1]); const [selectedTargets, setSelectedTargets] = useState([]); const [isLiveQueryRunnable, setIsLiveQueryRunnable] = useState(true); @@ -94,7 +97,7 @@ const QueryPage = ({ "hostFromURL", () => hostAPI.load(parseInt(URLQuerySearch.host_ids as string, 10)), { - enabled: !!URLQuerySearch.host_ids, + enabled: !!URLQuerySearch.host_ids && !queryParamHostsAdded, select: (data: IHostResponse) => data.host, onSuccess: (data) => { const targets = selectedTargets; @@ -104,6 +107,10 @@ const QueryPage = ({ targets.push(hostTarget as IHost); setSelectedTargets([...targets]); + + if (!queryParamHostsAdded) { + setQueryParamHostsAdded(true); + } }, } );